[99s-extend] [erlang-questions] [ANN] erlang.mk build tool
Loïc Hoguin
essen at ninenines.eu
Fri Aug 16 17:10:19 CEST 2013
I know, and if it makes it work where it currently doesn't I'd merge it.
But ultimately we want to avoid starting Erlang unless strictly necessary.
On 08/16/2013 05:02 PM, Grzegorz Junka wrote:
> But it "is only used for fetching the package index file"... :) If the
> target is up to date there is no starting of Erlang. But on the other
> hand it could be used conditionally, e.g. use wget on systems on which
> it is installed and Erlang otherwise. It's just down to creating a
> properly structured target, isn't?
>
> On 16/08/2013 15:44, Loïc Hoguin wrote:
>> Starting Erlang takes too long. That's a big reason why erlang.mk was
>> created. :)
>>
>> I recall NetBSD being able to download things with a shell script only
>> (as it comes with nothing installed), this would be a more interesting
>> solution especially since we can bundle it in the erlang.mk file too.
>>
>> On 08/16/2013 04:42 PM, Grzegorz Junka wrote:
>>> Why not use Erlang for downloading? Surely if erlang.mk is a tool for
>>> Erlang then it will be very likely installed. For example this target
>>> downloads Rebar:
>>>
>>> # Erlang Rebar downloading, see:
>>> #
>>> https://groups.google.com/forum/?fromgroups=#!topic/erlang-programming/U0JJ3SeUv5Y
>>>
>>> rb_rebar_url=http://cloud.github.com/downloads/basho/rebar/rebar
>>> ./rebar:
>>> $(ERL) -noshell -s inets -s ssl \
>>> -eval 'httpc:request(get, {"$(rb_rebar_url)", []}, [], [{stream,
>>> "./rebar"}])' \
>>> -s init stop
>>> chmod +x ./rebar
>>> REBAR=$(shell (type rebar 2>/dev/null || echo ./rebar) | tail -1 | awk
>>> '{ print $$NF }')
>>>
>>>
>>> It could be used to download anything, not just REBAR.
>>>
>>> - Greg
>>>
>>>
>>> On 16/08/2013 15:34, Loïc Hoguin wrote:
>>>> On 08/16/2013 10:39 AM, Benoit Chesneau wrote:
>>>>> The big problem with erlang.mk <http://erlang.mk> is requiring to have
>>>>> gmake and more importantly wget installed imo.
>>>>
>>>> wget is only used for fetching the package index file. I'm sure if it
>>>> doesn't work somewhere it'll be patched eventually.
>>>>
>>>>> Which makes it quite annoying to distribute on systems that have
>>>>> none of
>>>>> them. It would be interrestin to have the support for curl for
>>>>> example.
>>>>> Also what are the makefile extensions that you really need to require
>>>>> gmake?
>>>>
>>>> No idea. Patches are welcome for compatibility with different OS/build
>>>> tools (as long as it's not "rewrite the whole file" of course, then
>>>> you're better off just using gmake).
>>>>
>>>>> - benoit
>>>>>
>>>>>
>>>>> On Thu, Aug 15, 2013 at 4:19 PM, Loïc Hoguin <essen at ninenines.eu
>>>>> <mailto:essen at ninenines.eu>> wrote:
>>>>>
>>>>> Hello friendly people,
>>>>>
>>>>> I would like to make an official announcement of erlang.mk
>>>>> <http://erlang.mk> now that all the features I wanted are in.
>>>>>
>>>>> erlang.mk <http://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 <http://erlang.mk> are still compatible
>>>>> with rebar. Dependencies fetched by rebar are stored in the same
>>>>> deps/ directory, and projects using erlang.mk
>>>>> <http://erlang.mk> can
>>>>> still be used as rebar dependencies, with or without a
>>>>> rebar.config
>>>>> file.
>>>>>
>>>>> erlang.mk <http://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
>>>>> <http://erlang.mk>
>>>>> with no tweaking required.
>>>>>
>>>>> Makefiles written with erlang.mk <http://erlang.mk> are *VERY*
>>>>> simple, here are two examples:
>>>>>
>>>>> * https://github.com/extend/__farwest/blob/master/Makefile
>>>>> <https://github.com/extend/farwest/blob/master/Makefile>
>>>>> * https://github.com/extend/__cowboy/blob/master/Makefile
>>>>> <https://github.com/extend/cowboy/blob/master/Makefile>
>>>>>
>>>>> I wrote about erlang.mk <http://erlang.mk> and relx recently on
>>>>> the
>>>>> Nine Nines blog. erlang.mk <http://erlang.mk> is the perfect
>>>>> companion to relx.
>>>>>
>>>>> * http://ninenines.eu/articles/__erlang.mk-and-relx
>>>>> <http://ninenines.eu/articles/erlang.mk-and-relx>
>>>>>
>>>>> Here are examples of projects that are using and compatible with
>>>>> erlang.mk <http://erlang.mk>:
>>>>>
>>>>> * https://github.com/jlouis/__etorrent
>>>>> <https://github.com/jlouis/etorrent>
>>>>> * https://github.com/extend/__cowboy
>>>>> <https://github.com/extend/cowboy>
>>>>> * https://github.com/extend/__farwest
>>>>> <https://github.com/extend/farwest>
>>>>>
>>>>> You can find erlang.mk <http://erlang.mk> at the following URL:
>>>>>
>>>>> * https://github.com/extend/__erlang.mk
>>>>> <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
>>>>> <http://erlang.mk> itself. Just send a PR to the erlang.mk
>>>>> <http://erlang.mk> project updating the packages.v1.txt!
>>>>>
>>>>> Enjoy!
>>>>>
>>>>> --
>>>>> Loïc Hoguin
>>>>> Erlang Cowboy
>>>>> Nine Nines
>>>>> http://ninenines.eu
>>>>> _________________________________________________
>>>>> erlang-questions mailing list
>>>>> erlang-questions at erlang.org <mailto:erlang-questions at erlang.org>
>>>>> http://erlang.org/mailman/__listinfo/erlang-questions
>>>>> <http://erlang.org/mailman/listinfo/erlang-questions>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Extend mailing list
>>> Extend at lists.ninenines.eu
>>> http://lists.ninenines.eu:81/listinfo/extend
>>>
>>
>>
>
> _______________________________________________
> Extend mailing list
> Extend at lists.ninenines.eu
> http://lists.ninenines.eu:81/listinfo/extend
--
Loïc Hoguin
Erlang Cowboy
Nine Nines
http://ninenines.eu
More information about the Extend
mailing list