Age | Commit message (Collapse) | Author |
|
|
|
... not the first.
dep_autopatch can be an expensive macro, in particular because it
executes Erlang. So if NO_AUTOPATCH is set, it's best to avoid calling
dep_autopatch as the result will be unused anyway.
While here, add a test for autopatched rebar-based dependencies.
|
|
|
|
We can now use 'make -j 32' again. All tests pass. There might
be some issues left with the areas that are not fully tested
yet (some plugins).
A few changes in behavior:
* 'make app' will also do 'make deps' unless SKIP_DEPS is set.
You can use 'make app-build' instead to just build the application.
* 'make rel' will also do 'make app' (and therefore deps). There
are no alternative target to keep the old behavior at this time.
|
|
https://github.com/rabbitmq/erlang.mk
|
|
If the local build.config has changes compared to upstream's
master branch, and $(ERLANG_MK_COMMIT) also brings changes to this
file, copying the local file to the checkout before switching to
$(ERLANG_MK_COMMIT) caused git-checkout(1) to abort with:
error: Your local changes to the following files would be overwritten by checkout:
build.config
Please, commit your changes or stash them before you can switch branches.
Aborting
While here, fix `core-upgrade-custom-repo` test case: without switching
back the alternate erlang.mk repository to its master branch, the clone
always got the test-copyright branch by default, making the
ERLANG_MK_COMMIT check ineffective.
|
|
The `-n` flag is not standard and not portable. It is supported by many
Bourne shell to suppress the trailing newline character. But some old
shells do not support this and "-n" is printed.
This is the case for instance on some old versions of Mac OS X where
`/bin/sh` is Bash 3.2.
|
|
|
|
Therefore, if neither $(dep_something) nor $(pkg_something_name) is
defined, $(dep_name) will return the name specified in the various
dependencies lists.
This fixes `core-app-pt-erlc-opts` and `core-deps-fetch-fail-unknown`
because now, the dependency is not "forgotten" anymore. Before,
the dependency directory was missing from $(ALL_DEPS_DIRS) because
$(dep_name) returned nothing.
|
|
Initially submitted by Daniel White.
|
|
|
|
Per request: https://github.com/ninenines/erlang.mk/issues/300
This commit also fixes issues with packages which have a different
name than the application name.
|
|
Everything will be rebuilt when the Makefile or any included
Makefile (like Erlang.mk or plugins) change.
Only the .app will be rebuilt when the .app.src file changes.
|
|
|
|
|
|
Some rebar.config.script files use the vsn key available
only after rebar is loaded.
|
|
Also don't delete DEPS_DIR if SKIP_DEPS is set.
|
|
|
|
|
|
|
|
This changes adds Rebar-like "apps/" functionality.
From this commit onward, Erlang.mk supports 4 types of repositories:
- Repo with an Erlang app at root level + deps/
- Repo with an Erlang app at root level + apps/ deps/
- Repo with no app at root level + deps/
- Repo with no app at root level + apps/ deps/
Example usage:
- make new-app in=webchat
- make new t=gen_server n=my_chat in=webchat
- make
Replace new-app with new-lib to create an OTP library instead of
an OTP application.
|
|
OSX find has this terrible behavior:
$ find test/core_app_asn1/src/ -type f -name \*
test/core_app_asn1/src//CAP.erl
test/core_app_asn1/src//Def.erl
test/core_app_asn1/src//use_cap.erl
test/core_app_asn1/src//use_def.erl
It's been long fixed everywhere else. Change the core_find function
to remove the trailing / if any before calling find.
|
|
Replacing $(newline) occurances with \n before passing it to printf
instead of echo ensures valid output accross different platforms.
|
|
|
|
The errors were happening in the rebar.config generation
code. In addition to the fix, three tests were added:
a project that uses a pt from its own code with -compile
directives, a project that uses a pt from a dep with the
pt set as ERLC_OPTS, and the inclusion of parse transform
options in the generated rebar.config when compatibility
is desired.
|
|
Fix IGNORE_DEPS not being propagated downward.
Fix IGNORE_DEPS handling with autopatched Rebar projects,
where the user defined value was overriden with the one
from autopatching.
|
|
Also improves the handling of the legacy fetch method. It is now
enabled only for dependencies, and not for the top-level application.
This should force Erlang.mk users to update their definitions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also fixes two bugs with the new "no .app.src" method.
All tests now pass with both methods.
We can now test specific cases with make check c=$CASE.
|
|
This way we can commit the .app file once and it won't
change until we actually change something. Much better
for "no .app.src" file method.
We are getting close to making this method the default!
|
|
This is a preliminary work, good enough to be used in some,
but not all, projects. Tests cover the current functionality.
Documentation has been written but will be committed at a
later stage, as it covers more than just this target (the
target is documented as part of a "Compatibility with other
build tools" chapter).
|
|
|
|
This makes a lot of Erlang.mk work on Windows under the msys2
environment. The msys2 environment is damn close to native,
so it will most likely be good enough for a lot of folks.
|
|
|
|
Removes $(ERLANG_MK_TMP) directory on distclean.
* add distclean-tmp target
* add core-clean-tmp test
|
|
|
|
We have nothing to hide.
|
|
|
|
|
|
|
|
This is useful only for projects that are stable and rarely
need to rebuild it. Check the guide additions for more info.
|
|
R16B03 in particular is missing epp:parse_file/2.
|
|
Fixes a bug detected with the test introduced in the previous commit.
|
|
Dirty, dirty files!
|