[erlang-questions] build system
Thu Jan 18 01:33:43 CET 2007
On 1/17/07, Ludovic Coquelle <lcoquelle@REDACTED> wrote:
> Thank you for your feedbacks!
> Eric, all what you said make sense to me! ;)
> But I still have some (hopefully more precises) questions:
> * Isn't Emakefile limited in what it can do? what I mean is that I
> don't see how to implement a rule to compile some ASN.1 code for
I am not really that familiar with it. Someone mentioned that it was
make implemented in erlang some time ago and I assumed it was true. As
to its limitations I couldn't tell you.
> * Doesn't erlIDE have a build system? does it use the one of eclipse?
It does build files thats true. However, I wouldn't classify that as
a build system. That said if you use erlide it will happily build the
files that are part of your project.
> * What (will) make a difference (if any) between erlware and sinan?
This is a conversion that Martin and I have spent a lot of time on.
In the end it comes down to your preference. erlware has the concept
of a central build area for all of your erlang projects. Its also
built around make and shell scripts. Erlware has a very unixy feel
that many may find appealing. Sinan does a per project or per
application build (though the dependency repo is shared). Sinan is
written and extensible in Erlang. If anything Sinan feels like a much
smarter version of java's ant then anything else. They both understand
and require OTP infrastructure in the projects that they are capable
of building. They both use the same repository format. They both are
capable of generating 'getting started' project templates that are
buildable from the get go. There are a lot of similarities between the
two in output. However, they approach the problem of building otp apps
very differently. I don't believe that one is intrinsically superior
then the other, its just a matter of which you are more comfortable
> On 1/17/07, Eric Merritt <cyberlync@REDACTED> wrote:
> > On 1/16/07, Ludovic Coquelle <lcoquelle@REDACTED> wrote:
> > > Hi,
> > > I'm currently working on my first OTP application, and still wondering about
> > > the good build system to use.
> > >
> > > Anything which is part of the Erlang/OTP distribution?
> > There isn't anything like a build system in the actual distribution.
> > > (would be good to
> > > avoid dependency to external build tool)
> > > I can use the Emakefile, but I don't see how to: (1) build the boot script,
> > > (2) deals automaticaly with version (3) other?
> > Emakefile works but its just like make and no more. If you are
> > comfortable with make it will work fine.
> > >
> > > I have googlelized and found different tools:
> > > * as I target a Linux machine, I could use a 'normal' make
> > > * builder from Jungerl (same as included in tsung distribution?
> > Builder isn't a build system it just builds releases. So its not an option.
> > > [https://svn.process-one.net/tsung/trunk/priv/builder.erl])
> > > * erlware [ http://www.erlware.org/]
> > Erlware has been around for awhile and it works well. Its oriented
> > towards otp apps and that may be a factor to consider.
> > > * sinan [http://code.google.com/p/sinan/] (which lack a bit of
> > > documentation...)
> > This is my project. It lacks documentation because it isn't yet
> > complete. Its a ground up rewrite of a working build system that I
> > use. It simplifies a lot of the complexities of the earlier build
> > system and I think it will be well received when its done. I am rather
> > proud of it, but it wont be usable for a week or so (dependency
> > handling rewrite is taking longer then I imagined).
> > > * erlIDE for Eclipse [ http://erlide.sourceforge.net/]
> > This isn't a build system either, its an IDE.
> > >
> > > What are you using guys? Any suggestion?
> > The only choices available right now is Emakefile, make and erlware.
> > Erlware requires otp apps but you would need to do that anyway before
> > you wrote anything significant. Sinan requires otp apps as well, but
> > its not ready for consumption yet.
More information about the erlang-questions