Age | Commit message (Collapse) | Author |
|
Allow eunit test to access to project's priv_dir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Every .erl source file will need at least a -module and a single -export
definition. With the 'module' template a file can be quickly created that
already populates -module with the right value as well as an empty
export field.
|
|
* Include $(APPS_DIR)/*/ebin in CT_RUN
* test-build before ct-apps
* Test that my_lib is accessible from my-app ct
|
|
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.
|
|
Fix possible division by zero in case if a module doesn't export any
functions
|
|
|
|
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.
|
|
|