Age | Commit message (Collapse) | Author |
|
The previous approach spawned a shell for every single source files. As
we disable parallel make jobs, this is very time consuming.
The new approach uses an intermediate timestamp file in $(ERLANG_MK_TMP)
to record the last modification of any of $(MAKEFILE_LIST) and touch
all source files in one command. Then, the .app file depends on this
timestamp file.
We test the existence of this timestamp file: if if doesn't exist, don't
touch source files, they will be built anyway.
$(PROJECT).d now depends directly on $(MAKEFILE_LIST); before, this
dependency was indirect through $(ERL_FILES). Also, once $(ERL_FILES)
were touched, we do the same with $(PROJECT).d because there is no need
to regen it because of this.
|
|
|
|
|
|
This is a proof of concept at the moment. It only runs
the release in 'console' mode at the moment. I am expecting
users to want a mix of both self extracting (without removing
when done) and self running (with removal when done) archives.
There is currently no way to configure the behavior and so
the files get deleted when the release terminates (self running
use case).
The SFX archive will only be created when the SFX variable
is set (either in the Makefile or through the command-line).
There are currently no documentation. Just "make SFX=1".
|
|
|
|
|
|
We always want the most recent version and only this.
|
|
|
|
Safer than through insecure HTTPS.
|
|
|
|
|
|
DTL_SUFFIX:
- make sure it is actually used
- add a test for it (and one combined with other options)
DTL_PATH:
- handle correctly with or without trailing /
- don't hard-code the `doc_root` opt - the erlydtl default is better
|
|
|
|
We need to clean before attempting to wildcard ebin/test.
To do that, we need to invoke "make clean" separately.
|
|
https://github.com/rabbitmq/erlang.mk
|
|
Splitting arguments on `-` was dangerous: if a path contained such a
character, it would be split and the second half thrown away by the
filtering.
Now, `$(ERLC_OPTS)` is passed to erl(1) after `-extra`. Thus
arguments parsing is done by the shell and we only have to call
init:get_plain_arguments/0 to get them as a list.
|
|
|
|
|
|
Allow eunit test to access to project's priv_dir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Every .erl source file will need at least a -module and a single -export
definition. With the 'module' template a file can be quickly created that
already populates -module with the right value as well as an empty
export field.
|
|
* Include $(APPS_DIR)/*/ebin in CT_RUN
* test-build before ct-apps
* Test that my_lib is accessible from my-app ct
|
|
Considering we require this compiler, we should set a good
default for all sub-Makefiles.
|
|
I'm mostly trying to fix tests when ran in parallel, although
this is also a nice optimization for those who use multi-app
repositories.
|
|
I'm not sure how to reproduce the issue some people experienced
(OS, make version maybe? who knows) but I got a report that this
fixes it. It's also definitely the "right" way to do this.
|
|
Also fixes install-docs to allow installing regardless of being
root or a normal user. The current user/group will be used for
the installed files.
|
|
A change was made to the automatic EDoc generation when running
'make docs'. It is now only done if a doc/overview.edoc file
exists. This behavior can of course be enabled back by adding
it to the Makefile.
|
|
This is a breaking change for Elvis users, who should now
use the external plugin available at https://github.com/inaka/elvis.mk
|
|
Also fixes issues with multi application repositories,
and add support for running a specific group/case in a
given test suite.
|
|
At the same time update the Makefile templates which were
missing PROJECT_DESCRIPTION and PROJECT_VERSION fields.
|
|
|
|
Also includes a fix for multi-application repositories.
|
|
Issues were introduced by f58af72831338efba4d5e20898cf92c0ed9f1c0f.
In addition some rework has been done:
* We don't care about src/, only about templates/
* Fix a misplaced closing paren (why was it working before?)
* Move most of the rules and defines inside the ifdef
|
|
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.
|
|
|
|
We can write the file using the Makefile variables without going
through environment variables.
|
|
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.
|
|
Pushing this now so I can figure out Windows.
|
|
Fix possible division by zero in case if a module doesn't export any
functions
|
|
|
|
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.
|
|
|
|
'find', the underlying command of core_find, does not support multiple patterns
after -name. This patch fixes multi-pattern use in c_src.mk by calling core_find
once for each pattern.
|