Age | Commit message (Collapse) | Author |
|
Considering we require this compiler, we should set a good
default for all sub-Makefiles.
|
|
I'm mostly trying to fix tests when ran in parallel, although
this is also a nice optimization for those who use multi-app
repositories.
|
|
I'm not sure how to reproduce the issue some people experienced
(OS, make version maybe? who knows) but I got a report that this
fixes it. It's also definitely the "right" way to do this.
|
|
Also fixes install-docs to allow installing regardless of being
root or a normal user. The current user/group will be used for
the installed files.
|
|
A change was made to the automatic EDoc generation when running
'make docs'. It is now only done if a doc/overview.edoc file
exists. This behavior can of course be enabled back by adding
it to the Makefile.
|
|
This is a breaking change for Elvis users, who should now
use the external plugin available at https://github.com/inaka/elvis.mk
|
|
Also fixes issues with multi application repositories,
and add support for running a specific group/case in a
given test suite.
|
|
At the same time update the Makefile templates which were
missing PROJECT_DESCRIPTION and PROJECT_VERSION fields.
|
|
|
|
Also includes a fix for multi-application repositories.
|
|
Issues were introduced by f58af72831338efba4d5e20898cf92c0ed9f1c0f.
In addition some rework has been done:
* We don't care about src/, only about templates/
* Fix a misplaced closing paren (why was it working before?)
* Move most of the rules and defines inside the ifdef
|
|
Thanks to two users of the ninenines/esdl2 project,
a correct way to build NIFs on Windows has been found.
At the moment we require a specific compiler (MingW's
gcc). Maybe we can change this in the future and allow
Visual Studio and others.
Some small changes have been made to the documentation,
and the meaning of one configuration variable has changed
to not include the extension (which is decided automatically
by Erlang.mk; and configurable separately).
Enjoy!
|
|
|
|
One bug was fixed: now Erlang.mk will properly pass relevant
ERLC_OPTS values to Dialyzer.
One bug still exists when using multi-application repositories:
dependencies are not detected automatically. We need list-deps
before this can work.
|
|
|
|
We can write the file using the Makefile variables without going
through environment variables.
|
|
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.
|
|
Pushing this now so I can figure out Windows.
|
|
|
|
Everything will be rebuilt when the Makefile or any included
Makefile (like Erlang.mk or plugins) change.
Only the .app will be rebuilt when the .app.src file changes.
|
|
|
|
'find', the underlying command of core_find, does not support multiple patterns
after -name. This patch fixes multi-pattern use in c_src.mk by calling core_find
once for each pattern.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
We check the $(DEPS) and $(TEST_DEPS) variables now, instead
of the directory directly, because triq won't be there yet on
first build.
|
|
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.
|
|
For best results use 'make -k ci'. 'make ci-prepare' can be
used to setup the OTP installations needed.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
Previously we only did shared libraries, now we allow executables.
Also improve greatly the handling of autopatched rebar projects
by relying once again on the rebar_utils module.
|
|
|
|
|
|
|