Vance Shipley <>
Sat Sep 15 01:08:07 CEST 2001

I finally found out what the problem with my Makefile
syntax for building releases was.  I was using:

%.tar.gz:   all %.boot
	erl -noshell -s systools make_tar $* -s erlang halt

With this I kept getting truncated tar files.  The reason
for which seems to be that erlang:halt/0 is a nasty way to
terminate things.  The suggestions I had originally gotten
on how to run something from the Unix command line was to
use the form:

	erl -noshell -s <module> <function> <arglist> -s erlang halt

This was probably the best way at one time but now it seems
the best syntax would be:

	erl -noshell -run <module> <function> <arglist> -run init stop

This allows a graceful shutdown, and gives everything time to 
finish up.  So now my Makefile syntax is:

ERL            = erl
ERLC           = erlc
ERLCFLAGS      = +no_debug_info -W -v

   $(ERLC) $(ERLCFLAGS) $<

   $(ERLC) $<

%.tar.gz:   all %.boot
   $(ERL) -noshell -run systools make_tar $* -run init stop

    $(ERLC) $<

Since this was a thorn in my side for such a long time, and the
list hadn't given me an answer when I originally asked, I thought
I'd share it.


Vance Shipley
Motivity Telecom Inc.
+1 519 579 5816

More information about the erlang-questions mailing list