aboutsummaryrefslogtreecommitdiffstats
path: root/core/deps.mk
AgeCommit message (Collapse)Author
2016-10-25core/deps-tools.mk: New targets `fetch-deps` and `list-deps`Jean-Sébastien Pédron
.. 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.
2016-10-21Update Copyright notices2016.10.21Loïc Hoguin
2016-10-19merge PortSpec env into each output envHesaam Farhang
2016-10-09Support C compiler flag overrides for dependenciesFrank Hunleth
This change makes it possible to override the ERL_CFLAGS and ERL_LDFLAGS Makefile variables in project dependencies. For the main project, the ability to override variables associated with C compilation already existed in plugins/c_src.mk. With this change, the C compiler flag semantics are similar for both the main project and dependencies. This is important for cases where the automatically determined values for the ERTS include and library directories are incorrect. This happens in cross-compiled environments where they point to the host's include and library directories. However, the desired behaviour is to have them point to those that have been cross-compiled for the target.
2016-10-04Update rebar (should be correct this time)Loïc Hoguin
2016-10-04Revert "Update rebar in autopatch"Loïc Hoguin
This reverts commit d5c32474e0690a32371fb8fb0b5d2db2c567269b.
2016-10-04Update rebar in autopatchLoïc Hoguin
This should fix some Windows issues.
2016-07-14Build apps/* only onceKrister Svanlund
Replicating the behavior for deps/*. With refactoring from Loïc.
2016-06-09Clean up output from a previous commitLoïc Hoguin
2016-05-17Fix for issue 447.Daniel Goertzen
Create ebin dir for all apps_dir apps before building any of them.
2016-01-24Quote paths in autopatch generated MakefileLoïc Hoguin
Fixes build of a few projects on Windows.
2015-12-29If the rebar binary is present, this is a rebar depLoïc Hoguin
Fixes syslog.
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