Age | Commit message (Collapse) | Author |
|
|
|
When this option is used no include file is generated.
Therefore don't error out if no include file can be found.
|
|
|
|
|
|
When the $(MAKE) is inside an $(eval $(call ...)) then it needs
to be escaped as $$(MAKE).
When the $(MAKE) is inside a $(call ...) then I did not figure
out a way other than passing it as an argument.
When the $(MAKE) is inside many levels of $(call $(call ...))
it's easier to avoid it if at all possible, so I replaced the
rebar $(MAKE) call with ./bootstrap. I confirmed it works fine
on Windows as well.
|
|
Also remove the last instance of an "eval export" that pollutes
the environment and use the new core_render for it instead.
core_render does not include $(verbose) as this needs to be
different depending on who calls it. It's now set explicitly
everywhere required.
|
|
Fetching rebar is conditional depending on the project
being built, and if two projects require it and -j is
used this could mean the fetching happens at the same
time and one would fail.
|
|
I've reworked how the multi-apps projects are built. In particular
I've made sure the test build is made from the top-level once, and
then only tests are run on this build. It used to build multiple
times and some builds would not include test mode, not good. I've
also fixed issues with running tests in parallel.
All tests now pass with -j8 on my machine. It's possible more
issues remain that are not covered by tests yet though.
|
|
This avoids the issue where clean will remove a file that was
otherwise generated and won't be regenerated. This might also
help with parallel building.
|
|
It clones and checkouts like the git fetch method, but
does so in the Erlang.mk temporary directory. It then
creates a symbolic link to the subfolder for the dependency.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also add a missing space character.
|
|
|
|
It's cheap, can be useful to detect issues, so why not?
|
|
|
|
|
|
|
|
|
|
|
|
I need this for CI because I want to run Dialyzer only against
the most recent OTP after tests have passed everywhere. Left
undocumented for now.
[ci skip]
|
|
|
|
|
|
This fixes hackney.
|
|
|
|
(i.e. not wrapped inside a list - rebar3 allows this as well)
|
|
|
|
Ew, rebar, again!
|
|
Ew rebar, geez!
|
|
|
|
This will support defining macro in `rebar.config.script`. An extra data type pattern matching is added in `dep_autopatch_rebar` function.
|
|
|
|
|
|
The output of kerl will now be printed, and the way we do
the recursive invocation for building the Erlang/OTP version
we want should be more solid.
|
|
Also add a user friendly message to inform the user of what
we are doing.
|
|
By defining the ERLANG_OTP or ERLANG_HIPE variable, you
can let Erlang.mk manage which version of Erlang/OTP will
be used for your project. It will build it if necessary,
and will activate it automatically when make is invoked.
|
|
|
|
|
|
This allows to ignore lines from the default build.config if needed.
For example to not include packages run make WITHOUT=index
|
|
If the application's Makefile specify either:
DEP_PLUGINS = $(PROJECT)
or e.g.:
DEP_PLUGINS = $(PROJECT)/mk/dist.mk
then load the plugin from the application instead of a dependency.
This helps when you have an application with common Erlang modules and
Erlang.mk plugins: your common application can load Erlang.mk plugins
exactly like other applications depending on the common application.
|
|
|
|
We do not touch the erlang.mk file anymore. We only patch the
Makefile to include the top-level Erlang.mk by changing the
'include erlang.mk' line to look for ERLANG_MK_FILENAME if it
is defined. The modified Makefile can be committed safely.
|
|
Regular plugins (`$(DEP_PLUGINS)`) are loaded near the end of Erlang.mk.
This is fine when you want to modify variables initialized earlier in
Erlang.mk or add new targets and variables.
However, it doesn't allow you to declare more dependencies because they
are loaded too late for that.
This commit introduces a new variable, `$(DEP_EARLY_PLUGINS)`, which can
be used to list plugins meant to be loaded near the beginning of
Erlang.mk. Those allow to append to the list of dependencies.
They work exactly like regular plugins otherwise. The default filename
loaded is `early-plugins.mk`.
|
|
Before this change, the build would continue, even if a dependency
failed to build. This could lead to obscure errors in the middle of a
testsuite for instance.
With this change, the build fails immediately, exactly like when a
regular dependency fails to build.
While here, replace most uses of `|| exit $$?` with `set -e`. This
simplifies error handling if we need to add more commands to each
blocks.
Also, echo error messages to stderr.
|
|
This silences warnings such as:
mv: rename file.app to file.app.src: No such file or directory
They are harmless really, but still annoying.
|