aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-09-02erlc.mk: Use double-colon targets for source files targetsJean-Sébastien Pédron
When files are generated, this avoids a warning because the target would be redefined.
2015-09-02Add dependency tracking (makedep)Loïc Hoguin
This is a very large change of a central part of Erlang.mk. I will admit that I am not quite confident on that one. If you do have issues following this change, please open a ticket and I will look at it immediately. At this point, it works for me, but I wouldn't be surprised to hear about a few minor issues. This commit introduces a dependency file $(PROJECT).d which contains Makefile rules between Erlang source files and headers, behaviors and parse_transforms. This allows us to rebuild only the files that are needed. The $(PROJECT).d is generated automatically when missing, and when any of the files change. It is possible to hook before and after this generation, by defining a $(PROJECT).d:: rule. This allows users to generate Erlang files which are then compiled by Erlang.mk automatically (and to track their dependencies, of course). Here goes nothing...
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-27Remove a temporary fileLoïc Hoguin
2015-08-26Fix auto disabling of triq when not in depsLoïc Hoguin
We check the $(DEPS) and $(TEST_DEPS) variables now, instead of the directory directly, because triq won't be there yet on first build.
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-26Add package riak_control to the indexLoïc Hoguin
2015-08-22Add first three chapters of new documentationLoïc Hoguin
2015-08-16Merge branch 'xargs-darwin-find' of https://github.com/manifest/erlang.mkLoïc Hoguin
2015-08-16Update apt-get before trying to install autoconfLoïc Hoguin
Should fix errors with @CircleCI.
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-14Add test/pkgs.log as artifactLoïc Hoguin
2015-08-14Update edown in test MakefileLoïc Hoguin
2015-08-14Fix test Makefile on some platformsLoïc Hoguin
2015-08-14Fix a bug where modules were missing on first makeLoïc Hoguin
2015-07-27Attempt using CircleCI with erlang.mkLoïc Hoguin
2015-07-21Tweaks to the ci plugin after trying CircleCILoïc Hoguin
For best results use 'make -k ci'. 'make ci-prepare' can be used to setup the OTP installations needed.
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-06Add package syn to the indexLoïc Hoguin
2015-07-04Add $(verbose) to avoid completely silencing commandsLoïc Hoguin
2015-07-04Add package prop to the indexLoïc Hoguin
2015-07-04Add package gut to the indexLoïc Hoguin
2015-07-04Add package trails to the indexLoï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-03Package barrel was renamed to barrel_tcp overnightLoïc Hoguin
2015-07-02Remove outdated code from cover.mkLoïc Hoguin
2015-07-02No need to use virtualenv to test RabbitMQ projects anymoreLoïc Hoguin
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 .gitignoreLoïc Hoguin
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-28Add package hpack to the indexLoïc Hoguin
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-24Add package actordb_thrift to the indexLoïc Hoguin
2015-06-24Add package actordb_core to the indexLoïc Hoguin
2015-06-23Add package machi to the indexLoïc Hoguin
2015-06-23Add package cl to the indexLoï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-20Fix amqp_client/rabbit tests for FreeBSDLoïc Hoguin