<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE> [99s-extend] [erlang-questions] [ANN] erlang.mk build tool
</TITLE>
<LINK REL="Index" HREF="index.html" >
<LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20%5Berlang-questions%5D%20%5BANN%5D%20erlang.mk%20build%20tool&In-Reply-To=%3C520E40DB.5070401%40ninenines.eu%3E">
<META NAME="robots" CONTENT="index,nofollow">
<style type="text/css">
pre {
white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
}
</style>
<META http-equiv="Content-Type" content="text/html; charset=us-ascii">
<LINK REL="Previous" HREF="000219.html">
<LINK REL="Next" HREF="000221.html">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1>[99s-extend] [erlang-questions] [ANN] erlang.mk build tool</H1>
<B>Loïc Hoguin</B>
<A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20%5Berlang-questions%5D%20%5BANN%5D%20erlang.mk%20build%20tool&In-Reply-To=%3C520E40DB.5070401%40ninenines.eu%3E"
TITLE="[99s-extend] [erlang-questions] [ANN] erlang.mk build tool">essen at ninenines.eu
</A><BR>
<I>Fri Aug 16 17:10:19 CEST 2013</I>
<P><UL>
<LI>Previous message: <A HREF="000219.html">[99s-extend] [erlang-questions] [ANN] erlang.mk build tool
</A></li>
<LI>Next message: <A HREF="000221.html">[99s-extend] [erlang-questions] [ANN] erlang.mk build tool
</A></li>
<LI> <B>Messages sorted by:</B>
<a href="date.html#220">[ date ]</a>
<a href="thread.html#220">[ thread ]</a>
<a href="subject.html#220">[ subject ]</a>
<a href="author.html#220">[ author ]</a>
</LI>
</UL>
<HR>
<!--beginarticle-->
<PRE>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:
><i> But it "is only used for fetching the package index file"... :) If the
</I>><i> target is up to date there is no starting of Erlang. But on the other
</I>><i> hand it could be used conditionally, e.g. use wget on systems on which
</I>><i> it is installed and Erlang otherwise. It's just down to creating a
</I>><i> properly structured target, isn't?
</I>><i>
</I>><i> On 16/08/2013 15:44, Loïc Hoguin wrote:
</I>>><i> Starting Erlang takes too long. That's a big reason why erlang.mk was
</I>>><i> created. :)
</I>>><i>
</I>>><i> I recall NetBSD being able to download things with a shell script only
</I>>><i> (as it comes with nothing installed), this would be a more interesting
</I>>><i> solution especially since we can bundle it in the erlang.mk file too.
</I>>><i>
</I>>><i> On 08/16/2013 04:42 PM, Grzegorz Junka wrote:
</I>>>><i> Why not use Erlang for downloading? Surely if erlang.mk is a tool for
</I>>>><i> Erlang then it will be very likely installed. For example this target
</I>>>><i> downloads Rebar:
</I>>>><i>
</I>>>><i> # Erlang Rebar downloading, see:
</I>>>><i> #
</I>>>><i> <A HREF="https://groups.google.com/forum/?fromgroups=#!topic/erlang-programming/U0JJ3SeUv5Y">https://groups.google.com/forum/?fromgroups=#!topic/erlang-programming/U0JJ3SeUv5Y</A>
</I>>>><i>
</I>>>><i> rb_rebar_url=<A HREF="http://cloud.github.com/downloads/basho/rebar/rebar">http://cloud.github.com/downloads/basho/rebar/rebar</A>
</I>>>><i> ./rebar:
</I>>>><i> $(ERL) -noshell -s inets -s ssl \
</I>>>><i> -eval 'httpc:request(get, {"$(rb_rebar_url)", []}, [], [{stream,
</I>>>><i> "./rebar"}])' \
</I>>>><i> -s init stop
</I>>>><i> chmod +x ./rebar
</I>>>><i> REBAR=$(shell (type rebar 2>/dev/null || echo ./rebar) | tail -1 | awk
</I>>>><i> '{ print $$NF }')
</I>>>><i>
</I>>>><i>
</I>>>><i> It could be used to download anything, not just REBAR.
</I>>>><i>
</I>>>><i> - Greg
</I>>>><i>
</I>>>><i>
</I>>>><i> On 16/08/2013 15:34, Loïc Hoguin wrote:
</I>>>>><i> On 08/16/2013 10:39 AM, Benoit Chesneau wrote:
</I>>>>>><i> The big problem with erlang.mk <<A HREF="http://erlang.mk">http://erlang.mk</A>> is requiring to have
</I>>>>>><i> gmake and more importantly wget installed imo.
</I>>>>><i>
</I>>>>><i> wget is only used for fetching the package index file. I'm sure if it
</I>>>>><i> doesn't work somewhere it'll be patched eventually.
</I>>>>><i>
</I>>>>>><i> Which makes it quite annoying to distribute on systems that have
</I>>>>>><i> none of
</I>>>>>><i> them. It would be interrestin to have the support for curl for
</I>>>>>><i> example.
</I>>>>>><i> Also what are the makefile extensions that you really need to require
</I>>>>>><i> gmake?
</I>>>>><i>
</I>>>>><i> No idea. Patches are welcome for compatibility with different OS/build
</I>>>>><i> tools (as long as it's not "rewrite the whole file" of course, then
</I>>>>><i> you're better off just using gmake).
</I>>>>><i>
</I>>>>>><i> - benoit
</I>>>>>><i>
</I>>>>>><i>
</I>>>>>><i> On Thu, Aug 15, 2013 at 4:19 PM, Loïc Hoguin <<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>
</I>>>>>><i> <mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>>> wrote:
</I>>>>>><i>
</I>>>>>><i> Hello friendly people,
</I>>>>>><i>
</I>>>>>><i> I would like to make an official announcement of erlang.mk
</I>>>>>><i> <<A HREF="http://erlang.mk">http://erlang.mk</A>> now that all the features I wanted are in.
</I>>>>>><i>
</I>>>>>><i> erlang.mk <<A HREF="http://erlang.mk">http://erlang.mk</A>> is a rebar replacement. It was
</I>>>>>><i> initially created for allowing a faster development process than
</I>>>>>><i> rebar and for better compatibility with Linux build tools. It
</I>>>>>><i> should
</I>>>>>><i> work on Linux and OSX with GNU Make installed.
</I>>>>>><i>
</I>>>>>><i> Projects using erlang.mk <<A HREF="http://erlang.mk">http://erlang.mk</A>> are still compatible
</I>>>>>><i> with rebar. Dependencies fetched by rebar are stored in the same
</I>>>>>><i> deps/ directory, and projects using erlang.mk
</I>>>>>><i> <<A HREF="http://erlang.mk">http://erlang.mk</A>> can
</I>>>>>><i> still be used as rebar dependencies, with or without a
</I>>>>>><i> rebar.config
</I>>>>>><i> file.
</I>>>>>><i>
</I>>>>>><i> erlang.mk <<A HREF="http://erlang.mk">http://erlang.mk</A>> also features a simple package index.
</I>>>>>><i> Try `make pkg-list` to list all packages currently available. All
</I>>>>>><i> the packages listed are compatible with erlang.mk
</I>>>>>><i> <<A HREF="http://erlang.mk">http://erlang.mk</A>>
</I>>>>>><i> with no tweaking required.
</I>>>>>><i>
</I>>>>>><i> Makefiles written with erlang.mk <<A HREF="http://erlang.mk">http://erlang.mk</A>> are *VERY*
</I>>>>>><i> simple, here are two examples:
</I>>>>>><i>
</I>>>>>><i> * <A HREF="https://github.com/extend/__farwest/blob/master/Makefile">https://github.com/extend/__farwest/blob/master/Makefile</A>
</I>>>>>><i> <<A HREF="https://github.com/extend/farwest/blob/master/Makefile">https://github.com/extend/farwest/blob/master/Makefile</A>>
</I>>>>>><i> * <A HREF="https://github.com/extend/__cowboy/blob/master/Makefile">https://github.com/extend/__cowboy/blob/master/Makefile</A>
</I>>>>>><i> <<A HREF="https://github.com/extend/cowboy/blob/master/Makefile">https://github.com/extend/cowboy/blob/master/Makefile</A>>
</I>>>>>><i>
</I>>>>>><i> I wrote about erlang.mk <<A HREF="http://erlang.mk">http://erlang.mk</A>> and relx recently on
</I>>>>>><i> the
</I>>>>>><i> Nine Nines blog. erlang.mk <<A HREF="http://erlang.mk">http://erlang.mk</A>> is the perfect
</I>>>>>><i> companion to relx.
</I>>>>>><i>
</I>>>>>><i> * <A HREF="http://ninenines.eu/articles/__erlang.mk-and-relx">http://ninenines.eu/articles/__erlang.mk-and-relx</A>
</I>>>>>><i> <<A HREF="http://ninenines.eu/articles/erlang.mk-and-relx">http://ninenines.eu/articles/erlang.mk-and-relx</A>>
</I>>>>>><i>
</I>>>>>><i> Here are examples of projects that are using and compatible with
</I>>>>>><i> erlang.mk <<A HREF="http://erlang.mk">http://erlang.mk</A>>:
</I>>>>>><i>
</I>>>>>><i> * <A HREF="https://github.com/jlouis/__etorrent">https://github.com/jlouis/__etorrent</A>
</I>>>>>><i> <<A HREF="https://github.com/jlouis/etorrent">https://github.com/jlouis/etorrent</A>>
</I>>>>>><i> * <A HREF="https://github.com/extend/__cowboy">https://github.com/extend/__cowboy</A>
</I>>>>>><i> <<A HREF="https://github.com/extend/cowboy">https://github.com/extend/cowboy</A>>
</I>>>>>><i> * <A HREF="https://github.com/extend/__farwest">https://github.com/extend/__farwest</A>
</I>>>>>><i> <<A HREF="https://github.com/extend/farwest">https://github.com/extend/farwest</A>>
</I>>>>>><i>
</I>>>>>><i> You can find erlang.mk <<A HREF="http://erlang.mk">http://erlang.mk</A>> at the following URL:
</I>>>>>><i>
</I>>>>>><i> * <A HREF="https://github.com/extend/__erlang.mk">https://github.com/extend/__erlang.mk</A>
</I>>>>>><i> <<A HREF="https://github.com/extend/erlang.mk">https://github.com/extend/erlang.mk</A>>
</I>>>>>><i>
</I>>>>>><i> Contributions to the package index are of course welcome! The only
</I>>>>>><i> requirement is that the package is to be compatible with erlang.mk
</I>>>>>><i> <<A HREF="http://erlang.mk">http://erlang.mk</A>> itself. Just send a PR to the erlang.mk
</I>>>>>><i> <<A HREF="http://erlang.mk">http://erlang.mk</A>> project updating the packages.v1.txt!
</I>>>>>><i>
</I>>>>>><i> Enjoy!
</I>>>>>><i>
</I>>>>>><i> --
</I>>>>>><i> Loïc Hoguin
</I>>>>>><i> Erlang Cowboy
</I>>>>>><i> Nine Nines
</I>>>>>><i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
</I>>>>>><i> _________________________________________________
</I>>>>>><i> erlang-questions mailing list
</I>>>>>><i> <A HREF="https://lists.ninenines.eu/listinfo/extend">erlang-questions at erlang.org</A> <mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">erlang-questions at erlang.org</A>>
</I>>>>>><i> <A HREF="http://erlang.org/mailman/__listinfo/erlang-questions">http://erlang.org/mailman/__listinfo/erlang-questions</A>
</I>>>>>><i> <<A HREF="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</A>>
</I>>>>>><i>
</I>>>>>><i>
</I>>>>><i>
</I>>>>><i>
</I>>>><i>
</I>>>><i>
</I>>>><i>
</I>>>><i> _______________________________________________
</I>>>><i> Extend mailing list
</I>>>><i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
</I>>>><i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
</I>>>><i>
</I>>><i>
</I>>><i>
</I>><i>
</I>><i> _______________________________________________
</I>><i> Extend mailing list
</I>><i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
</I>><i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
</I>
--
Loïc Hoguin
Erlang Cowboy
Nine Nines
<A HREF="http://ninenines.eu">http://ninenines.eu</A>
</PRE>
<!--endarticle-->
<HR>
<P><UL>
<!--threads-->
<LI>Previous message: <A HREF="000219.html">[99s-extend] [erlang-questions] [ANN] erlang.mk build tool
</A></li>
<LI>Next message: <A HREF="000221.html">[99s-extend] [erlang-questions] [ANN] erlang.mk build tool
</A></li>
<LI> <B>Messages sorted by:</B>
<a href="date.html#220">[ date ]</a>
<a href="thread.html#220">[ thread ]</a>
<a href="subject.html#220">[ subject ]</a>
<a href="author.html#220">[ author ]</a>
</LI>
</UL>
<hr>
<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
mailing list</a><br>
</body></html>