Age | Commit message (Collapse) | Author |
|
|
|
We use the GNU Parallel program to create a mutex around
the Dialyzer calls.
|
|
This way if for some unknown reason $(APP_TO_CLEAN) isn't
defined, we don't delete the entire world.
|
|
Thanks to two users of the ninenines/esdl2 project,
a correct way to build NIFs on Windows has been found.
At the moment we require a specific compiler (MingW's
gcc). Maybe we can change this in the future and allow
Visual Studio and others.
Some small changes have been made to the documentation,
and the meaning of one configuration variable has changed
to not include the extension (which is decided automatically
by Erlang.mk; and configurable separately).
Enjoy!
|
|
One bug was fixed: now Erlang.mk will properly pass relevant
ERLC_OPTS values to Dialyzer.
One bug still exists when using multi-application repositories:
dependencies are not detected automatically. We need list-deps
before this can work.
|
|
They're not needed on master anymore.
|
|
|
|
... 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.
|
|
|
|
People who prefer spaces instead of tabs are now covered.
|
|
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.
|
|
|
|
Main test Makefile expects "c_src" but for convenience I also
allow "c-src" and use that one as the prefix for the tests.
|
|
Pushing this now so I can figure out Windows.
|
|
|
|
Initially submitted by Daniel White.
|
|
https://github.com/rabbitmq/erlang.mk
|
|
|
|
|
|
The previous code did:
if `<code that prints nothing on stdout>`; then ...
So the test failed but not for the good reason. The forked shell
printed:
/bin/sh: gmake[2]:: not found
Now, both "Run 'make ...'" tests are simplified and do not rely on
backticks and test(1) anymore. Either the output is inspected or the
exit code is checked.
|
|
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.
|
|
|
|
|
|
|
|
|
|
Better error reporting and can now build everything in parallel.
Failed builds are kept; others are deleted.
The following command builds everything and then gives a diff
of what got fixed/broken since last time ("> " is newly broken,
"< " is newly fixed).
make packages -j 32 -k; make summary
|
|
|
|
|
|
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.
|
|
Fixes a small warning printed on OSX, and don't run a specific
test on FreeBSD (compiles a C library not compatible with FreeBSD).
|
|
|
|
This fixes an issue on OSX where the OSX make 3.81 has a bug with
multilines single quoted arguments to commands: it strips the
backslash and newlines entirely. This makes it impossible to use
sed -i properly. Since this is the test suite, we can instead use
perl -ni, which can do the same and is available and work fine on
all tested platforms.
|
|
Some systems do not have subsecond file modification detection
capabilities. This is the case in OSX because the HFS+ file
system has 1 second resolution. This is also the case in other
OSes with particular file systems or even shells. For example,
the "test" command in Bash does not support subsecond file times,
while the ZSH one and the /usr/bin/test on my machine does. On
those systems, with Bash, find -newer will work, but not test -nt.
Tests were updated to reflect this. The test Makefile runs a
series of commands to determine if subsecond resolution is available.
When it is not, a sleep command will be executed before relevant
operations in the tests.
Because the Bash shell is often the default shell for Make, and
because users of ZSH may want to avoid sleeping for no reasons,
a new variable was introduced: ZSH=1. When provided when running
tests, the shell will be switched to ZSH, and subsecond resolution
will work as expected. Tests have been fixed to work with ZSH as
well.
All this only applies to tests, Erlang.mk itself is so far not
affected by this issue.
|
|
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.
|
|
|
|
|
|
Renamed dep-full to fetch-git to avoid having duplicate tests.
|
|
|
|
|
|
|