aboutsummaryrefslogtreecommitdiffstats
path: root/core
AgeCommit message (Collapse)Author
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-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-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-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-08-14Fix a bug where modules were missing on first makeLoïc Hoguin
2015-07-21Don't use warning_as_errors for erlang.mk-style depsLoïc Hoguin
Fix a bug where deps that use erlang.mk didn't have the -Werror option suppressed automatically.
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-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-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-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-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
2015-06-18Improve the RabbitMQ client patchLoïc Hoguin
Users need to deploy both client and server to production, therefore the server needs to be fetched and its folder named correctly.
2015-06-17Avoid unneeded output when checking if dep was compiledLoïc Hoguin
2015-06-17Add RABBITMQ_CLIENT_PATCH to make upstream amqp_client workLoïc Hoguin
While this is not quite "just work" due to other packages depending on a forked off rabbitmq, this is still pretty good as it actually makes it work and still leaves a choice between upstream and the fork. Hopefully people will start to use upstream but you know how these things tend to go.
2015-06-16Convert git://github.com URIs to https://github.comLoïc Hoguin
We do this automatically to make the fetching of dependencies a safer experience. Ensuring it's secure is better than hoping everyone puts the right URI in their deps.
2015-06-16Compile dependencies only onceLoïc Hoguin
We keep track of which dependencies we compiled in the current session in the $(ERLANG_MK_TMP)/deps.log file. This will help save a little time when projects depend more than once on the same dependency. While going in the directory and running make was already quick, it's quicker if not, and the logs end up cleaner.
2015-06-15Fix details in .app templateLoïc Hoguin
Was using $(MODULES) instead of $(2).
2015-06-15Add corresponding space in the replace regexLoïc Hoguin
Fixes a previous incomplete PR merged by mistake.
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-13Merge branch 'fix-modules-attr-app-src' of https://github.com/efcasado/erlang.mkLoïc Hoguin
2015-06-07Fix NIF compilation under OSXLoïc Hoguin
2015-06-07Handle erl_first_files with missing extensionLoïc Hoguin
Makes lasp and nkbase work.
2015-06-06Improve parse_transform and import detectionLoïc Hoguin
Necessary changes for the alog application.
2015-06-06Export ERLC_OPTS in rebar patched depsLoïc Hoguin
Otherwise some deps didn't have their warnings_as_errors removed.
2015-06-05Define CC when calling hooksLoïc Hoguin
Necessary to make erlsha2 work properly.
2015-06-05Better compatibility with autoconf projectsLoïc Hoguin
2015-06-04No need for $(ERLANG_MK_TMP)/ebin anymoreLoïc Hoguin
2015-06-04Fetch the whole of rebar when patching rebar depsLoïc Hoguin
Necessary for increased compatibility as we de-rebarize those dependencies.
2015-06-01More autopatch fixesLoïc Hoguin
Some projects had their modules section filled incorrectly, this has been fixed. Merl (used by erlydtl) had its .app file incorrectly moved to .app.src despite having its own Makefile. This has been fixed. A new g++ warning caused some projects with -Werror to fail to compile, this has been fixed. The include path given in rebar.config is now properly used. The project concuerror has been removed temporarily due to a recent change that broke the auto detection. The projects ircbot, exmpp and tsung have been removed temporarily due to broken modules section and will need a custom patch and/or a PR sent to fix them.
2015-05-31Allow whitespace characters in the modules attributeEnrique Fernandez
2015-05-23Handle rebar3-style depsLoïc Hoguin
2015-05-23Set and export ERLANG_ARCH for the whole rebar depLoïc Hoguin