aboutsummaryrefslogtreecommitdiffstats
path: root/core
AgeCommit message (Collapse)Author
2015-09-25Fix error messages appearing when using parse transformsLoïc Hoguin
The errors were happening in the rebar.config generation code. In addition to the fix, three tests were added: a project that uses a pt from its own code with -compile directives, a project that uses a pt from a dep with the pt set as ERLC_OPTS, and the inclusion of parse transform options in the generated rebar.config when compatibility is desired.
2015-09-24Add tests for IGNORE_DEPSLoïc Hoguin
Fix IGNORE_DEPS not being propagated downward. Fix IGNORE_DEPS handling with autopatched Rebar projects, where the user defined value was overriden with the one from autopatching.
2015-09-24Add tests for custom, fail (bad and unknown) and legacy fetch methodsLoïc Hoguin
Also improves the handling of the legacy fetch method. It is now enabled only for dependencies, and not for the top-level application. This should force Erlang.mk users to update their definitions.
2015-09-24Fix hex fetch method on WindowsLoïc Hoguin
2015-09-23Fix bug introduced by previous commitLoïc Hoguin
2015-09-23Implement, add test for dep_$(DEP)_commit variablesLoïc Hoguin
2015-09-22Add REL_DEPS along with its testLoïc Hoguin
2015-09-22Make autopatch work on WindowsLoïc Hoguin
2015-09-21Fix autopatch of non-atom applications namesLoïc Hoguin
2015-09-21Add support for BUILD_DEPSLoïc Hoguin
2015-09-18Test "no .app.src" by default, test legacy with LEGACY=1Loïc Hoguin
Also fixes two bugs with the new "no .app.src" method. All tests now pass with both methods. We can now test specific cases with make check c=$CASE.
2015-09-17Only set id to git --describe when we are a dependencyLoïc Hoguin
This way we can commit the .app file once and it won't change until we actually change something. Much better for "no .app.src" file method. We are getting close to making this method the default!
2015-09-17Add initial 'make rebar.config'Loïc Hoguin
This is a preliminary work, good enough to be used in some, but not all, projects. Tests cover the current functionality. Documentation has been written but will be committed at a later stage, as it covers more than just this target (the target is documented as part of a "Compatibility with other build tools" chapter).
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-11Merge branch 'clean_erlang_mk_tmp' of https://github.com/ingwinlu/erlang.mkLoïc Hoguin
2015-09-11add distclean-tmpderwinlu
Removes $(ERLANG_MK_TMP) directory on distclean. * add distclean-tmp target * add core-clean-tmp test
2015-09-11Fix bug where ERLC_EXCLUDE'd modules were in .app fileLoïc Hoguin
2015-09-10Replace a @ with a $(verbose)Loïc Hoguin
We have nothing to hide.
2015-09-09erlc.mk: Fix "no Erlang application" supportJean-Sébastien Pédron
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-06Add NO_MAKEDEP: don't rebuild .d file if it already existsLoïc Hoguin
This is useful only for projects that are stable and rarely need to rebuild it. Check the guide additions for more info.
2015-09-06Use epp:parse_file/3 for compat with older OTP versionsLoïc Hoguin
R16B03 in particular is missing epp:parse_file/2.
2015-09-04Don't recompile everything when one mib file changesLoïc Hoguin
Fixes a bug detected with the test introduced in the previous commit.
2015-09-03Fix bug where intermediate files from .asn1 wouldn't get cleanedLoïc Hoguin
Dirty, dirty files!
2015-09-03Generate `$(PROJECT).d` before calling `make app-build`Jean-Sébastien Pédron
This ensures all generated dependencies are prepared and the .d file is ready before the actual build is started.
2015-09-03Fix list of modules in the .app fileLoïc Hoguin
2015-09-03Improve the dependency trackingLoïc Hoguin
* Move the .app generation to the .app rule (don't remake it for no reasons when nothing needs to be done) * Rever the previous double colon commit; add touch $@ in depend * Move the creation of ebin/ directory in its own rule * Temporarily remove the ignore on missing depend file
2015-09-02Merge branch 'double-colon-for-source-files' of ↵Loïc Hoguin
https://github.com/rabbitmq/erlang.mk
2015-09-02Merge branch 'alt_build_config_name' of https://github.com/zerotao/erlang.mkLoïc Hoguin
2015-09-02erlc.mk: Remove the target touching source filesJean-Sébastien Pédron
The touch(1) happens after `$(PROJECT).d` is generated. Therefore, with the next run of make, `$(PROJECT).d` is considered obsolete and recreated. Source files are touched again, and so on. This makes the whole project to be rebuilt with every run of make.
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-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-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.