Age | Commit message (Collapse) | Author |
|
One case was added, where a -compile attribute specified a list
that included a parse_transform. This affected alog, for example.
The COMPILE_FIRST variable is now filled from a digraph. This
allows us to keep track of the dependency tree properly, rather
than rely on luck. This affected erlando.
With both of these changes in, a large chunk of the rebar
autopatch code can be removed, the part that concerned the
auto detection of file dependencies.
On the other hand, we still need to honor the erl_first_files
configuration value, otherwise the parse_trans project fails
to build. While it would be possible to detect these dependencies
automatically too, it's probably too complex to bother, at least
for now.
|
|
This allows us to avoid autopatching when the Makefile of an
Erlang.mk project contains the word "rebar".
Had to update elvis and xref_runner to master for now because
of incompatibilities. The problem went unnoticed for a while
because they were autopatched.
|
|
|
|
|
|
This fixes issues when including ErlyDTL in a release.
|
|
|
|
... 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.
|
|
|
|
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.
|
|
|
|
Therefore, if neither $(dep_something) nor $(pkg_something_name) is
defined, $(dep_name) will return the name specified in the various
dependencies lists.
This fixes `core-app-pt-erlc-opts` and `core-deps-fetch-fail-unknown`
because now, the dependency is not "forgotten" anymore. Before,
the dependency directory was missing from $(ALL_DEPS_DIRS) because
$(dep_name) returned nothing.
|
|
Initially submitted by Daniel White.
|
|
|
|
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.
|
|
|
|
Some rebar.config.script files use the vsn key available
only after rebar is loaded.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Plugins can automatically be fetched and included from
dependencies. All that is needed is to add either the
dependency name or the name + path of the plugin to the
DEP_PLUGINS variable.
Useful for allowing tools to easily add support for new
targets, adding templates or for putting the whole build
ecosystem in one common dependency.
|
|
Fixes riak_control generating JS files.
|
|
|
|
This commit does a few things:
* Fix svn and cp fetch methods
* Resolve what commands to run for fetching directly in make
* Make it easier to add fetch methods in the future
* Move legacy fetching into its own method for compatibility
* Don't require three words for hex; two are enough
|
|
|
|
|
|
Considering vmq_server is the first to use it, I suppose it's new.
Oh well that's just yet another way to specify deps in rebar.config.
:-)
|
|
I don't recommend relying on it in your applications just yet.
It's not finalized yet. Let's wait and see what happens.
|
|
If you were using the index file as a "lock file",
bear with me for a moment, equivalent functionality
will soon be added. :-)
|
|
|
|
Seems like it works fine for all packages and fix issues
with some that wouldn't compile properly otherwise.
|
|
$$$$ after replace by make is $$ and in bash it is pid of process.
|
|
|
|
|
|
The good news is that these changes work with FreeBSD,
as opposed to before the merges.
|
|
$(MAKE) works everywhere, including space.
|
|
$(MAKE) works everywhere, including FreeBSD.
|
|
|
|
... before writing to it.
This fixes the following error which is logged with a fresh checkout:
/bin/sh: cannot create (...)/.erlang.mk/deps.log: No such file or directory
|
|
Consider the following test:
elif [ 0 != `find ... | xargs grep -ci rebar` ]; then
find(1) may return no file at all and xargs has nothing on its stdin. In
this case, GNU xargs (from findutils) still executes the given command
and grep(1) returns 0.
However, FreeBSD's xargs for instance does not run the command at all if
there is nothing on stdin. Therefore nothing is printed on stdout and the
test becomes:
elif [ 0 != ]; then
This triggers a warning from the shell:
[: !=: argument expected
Prepending both operands with a literal 'x' fixes the problem.
For consistency's sake, I modified the two other tests as well, though
I didn't have any problem with them.
|
|
This will fix some issues where a symbolic link can link
to another symbolic link (Cowboy examples), and issues
where symbolic links can't be used (VirtualBox shared
folders).
|
|
|