aboutsummaryrefslogtreecommitdiffstats
path: root/core/deps.mk
AgeCommit message (Collapse)Author
2015-12-16Improve file dependency detectionLoïc Hoguin
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.
2015-12-15Detect Erlang.mk before RebarLoïc Hoguin
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.
2015-12-14Fix for bcrypt compilation on OSX El CapitanBrujo Benavides
2015-12-09autopatch: do not run autoreconf if configure script already existsJean Parpaillon
2015-12-04Autopatch: handle $(PROJECT).app.src.script filesLoïc Hoguin
This fixes issues when including ErlyDTL in a release.
2015-11-21Merge branch 'late-autopatch' of https://github.com/rabbitmq/erlang.mkLoïc Hoguin
2015-11-21deps.mk: In dep_target, call dep_autopatch during the second evalJean-Sébastien Pédron
... 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.
2015-11-20Merge branch 'set-x-on-verbose-2' of https://github.com/rabbitmq/erlang.mkLoïc Hoguin
2015-11-17Use `:` as a noop instead of `echo -n`Jean-Sébastien Pédron
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.
2015-11-17V=2 causes `set -x` to be set on forked shellsJean-Sébastien Pédron
2015-10-22Return argument as a last resort in $(dep_name)Jean-Sébastien Pédron
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.
2015-10-22Add git-submodule fetch methodLoïc Hoguin
Initially submitted by Daniel White.
2015-10-22Use relative path to erlang.mk file in autopatched depsLoïc Hoguin
2015-10-20Rename couch package into opencouchLoïc Hoguin
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.
2015-10-12Fix port compilation for rebar projectsLoïc Hoguin
2015-10-06Load rebar before autopatchingLoïc Hoguin
Some rebar.config.script files use the vsn key available only after rebar is loaded.
2015-09-29Add a test for SKIP_DEPSLoïc Hoguin
Also don't delete DEPS_DIR if SKIP_DEPS is set.
2015-09-29Add tests for and fix NO_AUTOPATCHLoïc Hoguin
2015-09-29Improve a few comments and messagesLoïc Hoguin
2015-09-29Add support for APPS_DIRLoïc Hoguin
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.
2015-09-24Add tests for IGNORE_DEPSLoïc Hoguin
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.
2015-09-24Add tests for custom, fail (bad and unknown) and legacy fetch methodsLoïc Hoguin
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.
2015-09-24Fix hex fetch method on WindowsLoïc Hoguin
2015-09-23Fix bug introduced by previous commitLoïc Hoguin
2015-09-23Implement, add test for dep_$(DEP)_commit variablesLoïc Hoguin
2015-09-22Make autopatch work on WindowsLoïc Hoguin
2015-09-21Fix autopatch of non-atom applications namesLoïc Hoguin
2015-09-21Add support for BUILD_DEPSLoïc Hoguin
2015-08-27Add support for external pluginsLoïc Hoguin
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.
2015-08-27Add support for 'compile' step for pluginsLoïc Hoguin
Fixes riak_control generating JS files.
2015-08-16Merge branch 'xargs-darwin-find' of https://github.com/manifest/erlang.mkLoïc Hoguin
2015-08-16Improve dependency handlingLoïc Hoguin
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
2015-07-12The '-r' option of 'xargs' is illegal on OSXAndrei Nesterov
2015-07-04Add $(verbose) to avoid completely silencing commandsLoïc Hoguin
2015-07-03Add {ref, Commit} form for rebar3 depsLoïc Hoguin
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. :-)
2015-06-29Add hex support for autopatched applicationsLoïc Hoguin
I don't recommend relying on it in your applications just yet. It's not finalized yet. Let's wait and see what happens.
2015-06-28Bundle the package index directly inside erlang.mkLoïc Hoguin
If you were using the index file as a "lock file", bear with me for a moment, equivalent functionality will soon be added. :-)
2015-06-27Add registered field if missing from .app.srcLoïc Hoguin
2015-06-27Remove ebin/$(DEP).app when patching rebar outLoïc Hoguin
Seems like it works fine for all packages and fix issues with some that wouldn't compile properly otherwise.
2015-06-26Fix deps regexpSlava Yurin
$$$$ after replace by make is $$ and in bash it is pid of process.
2015-06-24Fix amqp_client: link to rabbit_commonLoïc Hoguin
2015-06-23Only apply RabbitMQ patches for rabbit projectsLoïc Hoguin
2015-06-21Fix autopatch issues introduced in recent mergesLoïc Hoguin
The good news is that these changes work with FreeBSD, as opposed to before the merges.
2015-06-20Fix 'make' and 'gmake' calls in rebar hooksLoïc Hoguin
$(MAKE) works everywhere, including space.
2015-06-20Fix a hardcoded 'make' callLoïc Hoguin
$(MAKE) works everywhere, including FreeBSD.
2015-06-19Merge branch 'mkdir-ERLANG_MK_TMP' of https://github.com/rabbitmq/erlang.mkLoïc Hoguin
2015-06-19core/deps.mk: Ensure $(ERLANG_MK_TMP) is createdJean-Sébastien Pédron
... 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
2015-06-19dep_autopatch: Ensure ['s `!=` operator has operandsJean-Sébastien Pédron
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.
2015-06-18Use the real path instead of symbolic links to erlang.mkLoïc Hoguin
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).
2015-06-18Add RABBITMQ_SERVER_PATCH for rabbitmq-server supportLoïc Hoguin