aboutsummaryrefslogtreecommitdiffstats
path: root/core/core.mk
AgeCommit message (Collapse)Author
2023-05-12Ignore files with '#' in their names, e.g. emacs lock filesMartin Björklund
Also remove usage of grep for ignoring files since find can do this directly.
2023-05-05Autopatch: Move to Rebar3Loïc Hoguin
2020-12-04Revert "fix: replace perl usage with coreutils"Loïc Hoguin
This reverts commit 1762278d9654e5f90ab587cbde7bac0e2b220014.
2020-11-30fix: replace perl usage with coreutilspinicarus
2020-02-25Replace +A0 with +A1Loïc Hoguin
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.
2019-10-09Use no_dot_erlang instead of start_cleanLoïc Hoguin
2019-08-29Build symlinked source filesLars Kroll
2019-06-22Use forward slashes in the Windows pathsLoïc Hoguin
2018-12-11Fix a bug where ct-* targets produced an empty GEN lineLoïc Hoguin
$ must be escaped as $$ in templates.
2018-12-10Make the version warning less repetitiveLoïc Hoguin
2018-12-10Optimization: reduce the number of shell commands on noopsLoïc Hoguin
2018-12-07core_find: Ignore files with spaces to avoid issuesLoïc Hoguin
2018-12-04Delete $(ERLANG_MK_TMP) directory after 'make erlang-mk'Loïc Hoguin
This allows refreshing tools at the same time Erlang.mk gets updated.
2018-12-04Add a V=3 that works like V=2 across all shell commandsLoïc Hoguin
V=2 only works against target commands, V=3 will also work against $(shell ...) commands.
2018-12-03Print a changelog when updating Erlang.mkLoïc Hoguin
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-05-07Escape double quotes when passing ERLC_OPTS during testsLoïc Hoguin
2018-03-14Speed up the git clone download by using shallow downloads.Andreas Krüger
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-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.
2016-10-28Add "make relup"Loïc Hoguin
The initial documentation is a bit rough. It's getting late and I'd like to have this in sooner rather than later. :-)
2016-10-25Use curl instead of wget/erl for fetching filesLoïc Hoguin
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.
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-21Erlang.mk is rolling releasesLoïc Hoguin
2016-10-21Deprecate Make 3Loïc Hoguin
A warning will be displayed for the time being while we keep compatibility. Also improves installation docs for Unix.
2016-10-19Add PROJECT_ENVnevar
Fix #587
2016-07-14Build apps/* only onceKrister Svanlund
Replicating the behavior for deps/*. With refactoring from Loïc.
2016-06-07Add PROJECT_MOD var to make the app callback module configurableJared Flatow
2015-12-24Fix an issue running EUnit tests on 'make check'Loïc Hoguin
Rebuilding cleanly first prevented rebuilding in test-mode again.
2015-11-20Merge branch 'set-x-on-verbose-2' of https://github.com/rabbitmq/erlang.mkLoïc Hoguin
2015-11-18Fix target dependencies and enable parallel again2.0.0-pre.2Loïc Hoguin
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.
2015-11-17Merge branch 'copy-build.config-after-checking-out-commit' of ↵Loïc Hoguin
https://github.com/rabbitmq/erlang.mk
2015-11-17make erlang-mk: Copy build.config after switching to $(ERLANG_MK_COMMIT)Jean-Sébastien Pédron
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.
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-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-27Fix core_find on stock OSXLoïc Hoguin
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.
2015-09-14Make relx work on Windows/MSYS2Loïc Hoguin
2015-09-12Add msys2 platform detectionLoïc Hoguin
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.
2015-09-11add distclean-tmpderwinlu
Removes $(ERLANG_MK_TMP) directory on distclean. * add distclean-tmp target * add core-clean-tmp test
2015-09-09core.mk: Allow to take erlang.mk from an alternate Git repositoryJean-Sébastien Pédron
2015-09-08core.mk: Support DragonFlyBSD as a new platformJean-Sébastien Pédron
2015-09-02Merge branch 'alt_build_config_name' of https://github.com/zerotao/erlang.mkLoïc Hoguin
2015-09-02Replace core_find with native findLoïc Hoguin
Native find is much faster. As for future Windows work, this is no problem, as the retained solution involves using find.exe from GnuWin.
2015-09-02Disable concurrent building entirelyLoïc Hoguin
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).
2015-08-26Improve the erlydtl pluginLoïc Hoguin
Among the improvements: * Work with current versions of ErlyDTL * Add DTL_PATH, defaulting to templates/ * Add DTL_SUFFIX, defaulting to _dtl (suffix of output module names) * Simplify the Erlang code and port to the erlang function The erlang function can now accept any command-line argument for erl as optional second argument.
2015-08-18Fix build config renamingJason L. Shiffer
Currently build.config can be placed in a different directory via something like: ERLANG_MK_BUILD_CONFIG = tools/build.config but if the name is changed: ERLANG_MK_BUILD_CONFIG = .erlang-mk.config it will be ignored.