aboutsummaryrefslogtreecommitdiffstats
path: root/core
AgeCommit message (Collapse)Author
2018-11-28Call git describe for {vsn,git} during autopatchLoïc Hoguin
2018-11-28Fix asn1 compilation with the +maps optionLoïc Hoguin
When this option is used no include file is generated. Therefore don't error out if no include file can be found.
2018-11-28Modernize the protobuffs pluginLoïc Hoguin
2018-11-27Don't use the non-portable flock -c, use flock sh -cLoïc Hoguin
2018-11-27Fix jobserver unavailable warningsLoïc Hoguin
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.
2018-11-26Rename render_template to core_render and move into coreLoïc Hoguin
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.
2018-11-26Use flock/lockf when available to avoid a -j issueLoïc Hoguin
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.
2018-11-25Build issues testing multi-apps projectsLoïc Hoguin
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.
2018-11-25Build $(PROJECT).d in a separate $(MAKE) callLoïc Hoguin
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.
2018-11-24Add the git-subfolder fetch methodLoïc Hoguin
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.
2018-11-24Add a warning to not edit env.mkLoïc Hoguin
2018-11-23Ensure apps eunit tests only run once when called directlyLoïc Hoguin
2018-11-23Reorder the test-dir options to make it more like compile_erlLoïc Hoguin
2018-09-12Append -native to ERLANG_HIPE installationsLoïc Hoguin
2018-09-12Prevent kerl from being deleted uncorrectlyLoïc Hoguin
2018-08-01Filter out the old OTP versions from LATEST_ERLANG_OTPLoïc Hoguin
2018-06-27Add a missing IS_DEPS=1 for docs depsLoïc Hoguin
2018-06-21Add the version fetched to the DEP lineLoïc Hoguin
Also add a missing space character.
2018-05-15Don't use release candidates when LATEST_ERLANG_OTP=12018.05.15Loïc Hoguin
2018-05-14Display the version fetched of dependenciesLoïc Hoguin
It's cheap, can be useful to detect issues, so why not?
2018-05-14Small tweaks to previous PRLoïc Hoguin
2018-05-14Update to support WindowsStanislav Ovchar
2018-05-14Update makedep.erl to ignore hrl loopsStanislav Ovchar
2018-05-14Fix #757: recompile erl if hrl from another app was updatedStanislav Ovchar
2018-05-07Escape double quotes when passing ERLC_OPTS during testsLoïc Hoguin
2018-05-02Add LATEST_ERLANG_OTP=1 to automatically select the latest buildLoïc Hoguin
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]
2018-04-25Fix rebar pre_hooks patchSerhii Kostiushkin
2018-03-14Speed up the git clone download by using shallow downloads.Andreas Krüger
2018-03-05Fetch the version from rebar.lock if not specified in rebar.config2018.03.05Loïc Hoguin
This fixes hackney.
2018-03-01Change to repo.hex.pm, S3 URL is deprecated2018.03.01Eric Meadows-Jönsson
2018-03-01.app.src.script files may return app specification directlyHans Bulfone
(i.e. not wrapped inside a list - rebar3 allows this as well)
2017-11-15Use dep rather than package names in .app filesThomas Nixon
2017-10-23Masquerade the version when {vsn, {cmd, "..."}} is usedLoïc Hoguin
Ew, rebar, again!
2017-10-23Add CONFIG and SCRIPT variables to .app.src.script filesLoïc Hoguin
Ew rebar, geez!
2017-10-19Handle lists in -D compiler switches in autopatchLoïc Hoguin
2017-08-30Support in pattern matching of extra data typeplakshman93
This will support defining macro in `rebar.config.script`. An extra data type pattern matching is added in `dep_autopatch_rebar` function.
2017-08-28Remove stray $t variable2017.08.28Loïc Hoguin
2017-08-23Ensure the current shell knows about PATH when pinning OTPLoïc Hoguin
2017-08-16More improvements to version pinningLoïc Hoguin
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.
2017-08-15Prevent recursion when building a pinned Erlang/OTPLoïc Hoguin
Also add a user friendly message to inform the user of what we are doing.
2017-08-14Add experimental pinning of Erlang/OTP versionLoïc Hoguin
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.
2017-07-06Fix handling of Rebar's .app.src.script files2017.07.06Loïc Hoguin
2017-05-15Add tweaks and tests for the WITHOUT featureLoïc Hoguin
2017-05-15Add WITHOUT variable to exclude components on buildbenoitc
This allows to ignore lines from the default build.config if needed. For example to not include packages run make WITHOUT=index
2017-05-15Support plugins local to the applicationJean-Sébastien Pédron
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.
2017-05-15Add dep_fetch_lnderwinlu
2017-05-15Make autopatch of Erlang.mk projects less obtrusiveLoïc Hoguin
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.
2017-05-12Support early-stage plugins through `$(DEP_EARLY_PLUGINS)`Jean-Sébastien Pédron
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`.
2017-05-12Make sure the build fails if a docs/rel/test/shell dep failsJean-Sébastien Pédron
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.
2017-05-12core/deps.mk: Move .app in autopatch2 only if file existsJean-Sébastien Pédron
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.