aboutsummaryrefslogtreecommitdiffstats
path: root/core/core.mk
AgeCommit message (Collapse)Author
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.
2015-07-04Add $(verbose) to avoid completely silencing commandsLoïc Hoguin
2015-07-04Allow changing template whitespaceLoïc Hoguin
By default templates use tabs. Unfortunately there are misguided heretics who prefer spaces. Bummer. Two variables are introduced: * SP=<number> can be set to use <number> spaces per indentation level. * WS=<string> can be set to use <string> for each indentation level. Most users will just want to use SP, for example: make new t=gen_server n=my_server SP=4 Note that people who want tabs don't have to do anything; tabs are still the default. WS is reserved for advanced users. Normal Make rules apply: all whitespaces are trimmed. To specify 4 spaces using WS, you can do the following: make new t=gen_server n=my_server WS='$(empty) $(empty)' Ugly, right? So just use SP. Finally, SP and WS can be put in your Makefile directly. In fact, erlang.mk will automatically add SP to a newly created project if it was used during creation. For example: make -f erlang.mk bootstrap SP=2 So in time we should only need to make a note in the docs at project creation time, as there is very little value after that point.
2015-07-02Reduce dependency on external programsLoïc Hoguin
This commit implements a core_find and core_ls function that can be used to list files recursively or not. A few other minute changes are included and a couple hacks removed.
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-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-14Generate the .app file directly from the MakefileLoïc Hoguin
This removes the need for a .app.src file entirely. The PROJECT_* variables and the OTP_DEPS variable allow us to specify everything we need. REL_DEPS and BUILD_DEPS will be added later on to allow users to cleanly specify those without adding them to the .app file.
2015-06-04Fetch the whole of rebar when patching rebar depsLoïc Hoguin
Necessary for increased compatibility as we de-rebarize those dependencies.
2015-05-19Import rebar_utils for improved compatibilityLoïc Hoguin
This allows us to skip some of the worst hacks and improve compatibility since we are using the original code.
2015-05-15Add support for rebar.config.scriptLoïc Hoguin
2015-05-15Replace make with $(MAKE) for BSD compatibilityLoïc Hoguin
2015-05-14Get rid of the autopatch hack for properLoïc Hoguin
2015-05-10Convert the Erlang version of core_http_get to an Erlang snippetLoïc Hoguin
2015-05-10Fix an issue with escaping double quotes of Erlang snippetsLoïc Hoguin
2015-05-09Add a 'run' command to run the relx releaseLoïc Hoguin
Should only be used during development. Stolen idea from Tristan Sloughter who stole it from Ahmad Sherif. This commit also introduces the 'erlang' function for executing Erlang code written directly in the Makefile. The rest of the project will eventually move to using it as it's much cleaner than the previous solution.
2015-05-07Add a check targetLoïc Hoguin
Compiles, runs tests and runs all sorts of analysis like Dialyzer.
2015-05-07Add Asciidoc documentation supportLoïc Hoguin
2015-01-12Update copyright yearLoïc Hoguin
Also added a copyright line in the eunit plugin due to the extensive work I have done there a few days ago.
2015-01-10Introduce test builds and unify testing tools interfaceLoïc Hoguin
The general idea is that erlang.mk now keeps track of what kind of build it generated. A test build is valid for all subsequent test target invocations. A normal build is only valid for itself and releases. This rework adds the ability to specify deps to eunit. The EUNIT_DIR variable is gone in favor of a more global TEST_DIR. The tests-ct target got renamed to ct and documented. Many more minor changes were done during the course of testing these changes.
2015-01-10Improve the target 'all'Loïc Hoguin
No more plugin stuff creeping into core.
2015-01-08Temporary fix: don't run rel if not needed with -jLoïc Hoguin
2015-01-08Speed up "erl" invocationsLoïc Hoguin
Use "+A0 -noinput -boot start_clean" as start argument. Use halt/{1,2} to shutdown the VM faster.
2015-01-07Fix parallel compilationLoïc Hoguin
Parallel compilation is now only enabled for "make" and "make deps app". To ensure order we spawn a new Make process for "deps", "app" and "rel" when the "all" target (or no target) is used.
2015-01-06Document parallel execution (-j flag)Loïc Hoguin
2014-11-05Add an erlang-mk target for automated updating of erlang.mkLoïc Hoguin
2014-09-12Merge branch 'wget_fallback' of git://github.com/crownedgrouse/erlang.mkLoïc Hoguin
2014-09-11Add wget fallbackcrownedgrouse
2014-07-25Strip whitespace around the PROJECT variableLoïc Hoguin
2014-05-28Cut erlang.mk into many small componentsLoïc Hoguin
* The build.config says what gets into the generated erlang.mk. * The default erlang.mk in the repository hasn't changed yet. * Clean targets were separated into "clean" and "distclean". * The "help" target was added to display some help message. I probably broke a couple things...