Age | Commit message (Collapse) | Author |
|
|
|
|
|
The initial documentation is a bit rough. It's getting late and
I'd like to have this in sooner rather than later. :-)
|
|
|
|
* relx-rel
+ check that relx gets downloaded when relx.config exists,
+ check structure of built release
+ check that _rel directory does not get delete by 'make clean'
* relx-run
+ build a simple release, check if it starts and stops normally
* relx-rel-tar
+ check if RELX_OPTS are respected via supplying the 'tar' target
* relx-distclean-relx
+ check that relx executable gets deleted
* relx-distclean-relx-rel
+ check that _rel directory gets deleted
* relx-relup
+ check if relup generation is possible and generated relup is working
add sleeps after calls to async actions of the relx boot script
|
|
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.
|
|
.. to fetch and list deps recurvively.
Therefore, they work on direct dependencies, dependencies' dependencies,
and so on. Nothing is built with those targets.
The following targets are also available to work on other kinds of
dependencies:
make fetch-doc-deps
make fetch-rel-deps
make fetch-test-deps
make fetch-shell-deps
make list-doc-deps
make list-rel-deps
make list-test-deps
make list-shell-deps
In all cases, they include "normal" and eg. "test" dependencies of the
top-level project, then only "normal" dependencies' dependencies.
It's possible to include several kinds in one go:
make fetch-deps DEP_TYPES='doc test'
make list-deps DEP_TYPES='doc test'
As it may be difficult to use the output of `make list-*` because
the list could appear after other targets output (like dependencies
fetching), the list is available in files pointed by the following
variables:
$(ERLANG_MK_RECURSIVE_DEPS_LIST)
$(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST)
$(ERLANG_MK_RECURSIVE_REL_DEPS_LIST)
$(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST)
$(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST)
Internally, `list-deps` is simply implemented on top of `fetch-deps`:
the latter fills a sorted log with all the directories it traversed.
`list-deps` finally just prints the log file to stdout.
Fixes #560.
|
|
This allows to add standard keys which do not have a corresponding
`PROJECT_` Makefile variable, as well as non-standard keys.
|
|
|
|
|
|
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
|
|
|
|
Fix #587
|
|
|
|
|
|
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.
|
|
Replicating the behavior for deps/*.
With refactoring from Loïc.
|
|
|
|
Erlc will not include_lib() apps that do not have an ebin/ directory. This test case demonstrates that.
|
|
|
|
This is a first step toward semi-automated version management.
Cowboy, Cowlib and Ranch still use tags for the time being.
We can make a better update to those when there's a lock
feature added.
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
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.
|
|
|
|
Also fixes issues with multi application repositories,
and add support for running a specific group/case in a
given test suite.
|
|
Not only simpler but also faster, especially on Windows.
|
|
|
|
Also includes a fix for multi-application repositories.
|
|
This isn't an Erlang application.
|
|
After careful checking, these values are not set because of
an issue in Erlang.mk's autopatch feature. There's no point
in cheating in the test suite. We need to know about it.
|
|
|
|
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.
|