[erlang-questions] [ANN] erlang.mk build tool

Loïc Hoguin <>
Fri Aug 16 16:42:39 CEST 2013


Well I'm sure if you create a base Makefile (without erlang.mk) that 
exports DEPS_DIR and then call $(MAKE) on all folders in /apps (which 
would themselves contain Makefiles that use erlang.mk), it would work 
just fine. You can still keep only one erlang.mk in your repos and use 
include ../../erlang.mk instead for example.

But know that this folder structure is a rebar thing and not standard 
(just like /deps you'll say, but that one is insanely useful regardless 
of the project structure otherwise).

On 08/16/2013 02:27 PM, Steve Strong wrote:
> Looks good - I like simple!  Quick question, does it support multiple
> applications, for example a project laid out as:
>
> /proj
> /deps
> /stuff
>
> /apps
> /app1
> /app2
>
> Most of our stuff is in that form, with shared dependencies between the
> various apps.  Rebar is quite happy with that format, but I can't see
> how to persuade erlang.mk to handle that.
>
> Cheers,
>
> Steve
>
> --
> Steve Strong
> Sent with Sparrow <http://www.sparrowmailapp.com/?sig>
>
> On Thursday, 15 August 2013 at 16:19, Loïc Hoguin wrote:
>
>> Hello friendly people,
>>
>> I would like to make an official announcement of erlang.mk now that all
>> the features I wanted are in.
>>
>> erlang.mk is a rebar replacement. It was initially created for allowing
>> a faster development process than rebar and for better compatibility
>> with Linux build tools. It should work on Linux and OSX with GNU Make
>> installed.
>>
>> Projects using erlang.mk are still compatible with rebar. Dependencies
>> fetched by rebar are stored in the same deps/ directory, and projects
>> using erlang.mk can still be used as rebar dependencies, with or without
>> a rebar.config file.
>>
>> erlang.mk also features a simple package index. Try `make pkg-list` to
>> list all packages currently available. All the packages listed are
>> compatible with erlang.mk with no tweaking required.
>>
>> Makefiles written with erlang.mk are *VERY* simple, here are two examples:
>>
>> * https://github.com/extend/farwest/blob/master/Makefile
>> * https://github.com/extend/cowboy/blob/master/Makefile
>>
>> I wrote about erlang.mk and relx recently on the Nine Nines blog.
>> erlang.mk is the perfect companion to relx.
>>
>> * http://ninenines.eu/articles/erlang.mk-and-relx
>>
>> Here are examples of projects that are using and compatible with
>> erlang.mk:
>>
>> * https://github.com/jlouis/etorrent
>> * https://github.com/extend/cowboy
>> * https://github.com/extend/farwest
>>
>> You can find erlang.mk at the following URL:
>>
>> * https://github.com/extend/erlang.mk
>>
>> Contributions to the package index are of course welcome! The only
>> requirement is that the package is to be compatible with erlang.mk
>> itself. Just send a PR to the erlang.mk project updating the
>> packages.v1.txt!
>>
>> Enjoy!
>>
>> --
>> Loïc Hoguin
>> Erlang Cowboy
>> Nine Nines
>> http://ninenines.eu
>> _______________________________________________
>> erlang-questions mailing list
>>  <mailto:>
>> http://erlang.org/mailman/listinfo/erlang-questions
>


-- 
Loïc Hoguin
Erlang Cowboy
Nine Nines
http://ninenines.eu



More information about the erlang-questions mailing list