aboutsummaryrefslogtreecommitdiffstats
path: root/core/erlc.mk
AgeCommit message (Collapse)Author
2015-09-29Merge branch 'app_file_newlines' of https://github.com/ingwinlu/erlang.mkLoï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-26retain newlines in generated .app filederwinlu
Replacing $(newline) occurances with \n before passing it to printf instead of echo ensures valid output accross different platforms.
2015-09-26only newline for id if neededderwinlu
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-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-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-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-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-04Add $(verbose) to avoid completely silencing commandsLoï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-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-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-14Add ASN.1 compilation 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-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.
2014-12-23Build deps, app, rel targets really in that orderDanil Zagoskin
2014-11-25Remove +warn_export_all from the enabled warnings by defaultLoïc Hoguin
People who don't want export_all simply don't use it. The warning is annoying for those edge cases where it's actually useful, as it can't be disabled on a per-file basis.
2014-11-25Group clean-app commandsLoïc Hoguin
Smaller non-verbose output.
2014-11-19Don't try to compile mibs if the mibs/ directory is missingLoïc Hoguin
2014-11-19Merge branch 'compile-mibs' of git://github.com/danielwhite/erlang.mkLoïc Hoguin
Fixed a small whitespace issue in the silent output.
2014-11-18Add support for excluding erl filesEnrique Fernandez
2014-11-15Support for compiling SNMP MIBsDaniel White
This is unfortunately unsuited as a plugin due to its dependence on erlc for compilation. The MIBs must be compiled before an Erlang source.
2014-10-30erlc: update {id, git} in .app.src with git describe outputDave Cottlehuber
2014-08-20Stop printing `-n` when running `make` on OSXDaniel Kempkens
2014-08-15Silence erlc-include target when include/ is missingLoïc Hoguin
2014-08-15Merge branch 'recompile_erl_on_hrl_change' of ↵Loïc Hoguin
git://github.com/crownedgrouse/erlang.mk Extra changes include: * Not running the target if the ebin/ directory does not exist * Moved the target in the appropriate section in the file
2014-08-15Allow explicitly listed modulesIñaki Garay
2014-08-15Fail if no empty modules entry in .app.srcDerek Brown
An empty list is required for the modules tuple, as in {modules, []} so a sed call could populate the list. This is mentioned in README, but can be overlooked. If the empty tuple is not present, relx will fail on missing dependency errors. Therefore, fail make if the empty tuple isn't found, to help the user diagnose the problem.
2014-08-05Recompile all erl files on hrl file modificationcrownedgrouse
2014-05-30Quote module names when producing project.appSina Samavati
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...