Age | Commit message (Collapse) | Author |
|
We use $1 instead of $(1) or $p instead of $(p) when possible,
except when building variable names (pkg_$(p)_name for example,
but also $(dep_fetch_$(1))).
|
|
Instead of calling `find` we use $(wildcard ...) and some
logic on top to find all the files we are looking for.
This is more efficient and greatly helps reduce re-build
times when there's little to be done, particularly when
many dependencies are involved.
|
|
Also remove usage of grep for ignoring files since find
can do this directly.
|
|
|
|
This reverts commit 1762278d9654e5f90ab587cbde7bac0e2b220014.
|
|
|
|
In recent versions there has been issues with disabling +A
completely. Starting in OTP-23 the VM will automatically
use +A1 when the +A0 argument is given, as well.
|
|
|
|
|
|
|
|
$ must be escaped as $$ in templates.
|
|
|
|
|
|
|
|
This allows refreshing tools at the same time Erlang.mk
gets updated.
|
|
V=2 only works against target commands, V=3 will also work
against $(shell ...) commands.
|
|
|
|
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.
|
|
|
|
|
|
|
|
This allows to ignore lines from the default build.config if needed.
For example to not include packages run make WITHOUT=index
|
|
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.
|
|
The initial documentation is a bit rough. It's getting late and
I'd like to have this in sooner rather than later. :-)
|
|
After a lot of soul searching and experiments, I am opting
to using curl for fetching files. It works with very little
manipulation on all supported systems. Some might need it
installed, but most come with it.
While wget was working, it had TLS validation deactivated
because some users didn't have CA certificates on their
system or wget was not configured properly. This does not
seem to be a problem with curl as far as I tested, in
particular on OSX.
The fallback to use Erlang was also insecure, and probably
not the best idea. Let's keep things simple. Curl is required.
|
|
.. 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.
|
|
|
|
|
|
A warning will be displayed for the time being while we keep
compatibility.
Also improves installation docs for Unix.
|
|
Fix #587
|
|
Replicating the behavior for deps/*.
With refactoring from Loïc.
|
|
|
|
Rebuilding cleanly first prevented rebuilding in test-mode again.
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
|
|
|
|
Native find is much faster. As for future Windows work,
this is no problem, as the retained solution involves
using find.exe from GnuWin.
|
|
Two reasons for doing this:
* The current solution for enforcing sequential operations makes
a lot of things slower. Either we do it properly or we don't.
* Most of Erlang.mk is sequential by nature. There is very little
to gain from Make's own parallel building. Something more
interesting would be to enable fetching of dependencies
concurrently by other means, and enable compilation of
Erlang files concurrently (requires patching OTP).
|