Recursive Make Considered Harmful

Michael Turner <>
Mon Dec 14 11:47:15 CET 2009


http://miller.emu.id.au/pmiller/books/rmch/

Thanks for this.  I wasn't on the list when you first mentioned this
paper. I vaguely remembered just such a paper while trying to build an
Erlang release a few months ago.  It struck me as a breath of fresh air
when I first read it over a decade ago.

It's not so much that "make" is lacking, I think.  Mainly it's that
the obvious approach (recursion) for building stuff out of a
hierarchical directory structure is not necessarily the best way if
you're using make.

Having one big makefile seems, of course, horribly inelegant.  But when
I've tried that approach, it always reminds me of things I'd forgotten
while using big, lumbering, recursive build systems.  Like, make is
really fast.  Compilers are pretty fast, too.  And having everything in
one place can be nice.

-michael turner

On 12/14/2009, "Bengt Kleberg" <> wrote:

>Greetings,
>
>It has been well over a year since last time I mentioned this paper
>"Recursive Make Considered Harmful",
>(http://miller.emu.id.au/pmiller/books/rmch/). so I hope it is ok that I
>do it again.
>
>Nice little reading for those that find themselves wondering if they are
>the only ones that think make is somewhat lacking, at times.
>
>
>bengt
>
>On Mon, 2009-12-14 at 13:02 +0300, Sergei Golovan wrote:
>> Hi!
>>
>> I did some further investigations and found that simply calling make
>> in all doc/src
>> directories works better then trying to run make recursively.
>>
>> pwd=`pwd`
>> for i in `find . -wholename '*/doc/src'` ; do
>>     (cd $i ; make man ERL_TOP=$pwd )
>> done
>>
>> (using Erlang R12B-02-1 edoc and docbuilder, and the attached docb_gen script)
>> generates manpages perfectly, make html and make pdf though suffer from runtime
>> errors while running xsltproc.
>>
>> Running make recursively reveals a whole bunch of problems with
>> missing and redefined
>> 'docs' targets in makefiles.
>>
>> On Mon, Dec 14, 2009 at 12:16 PM,  <> wrote:
>> > Hi Sergei,
>> > we started to build our documentation with open source tools in R13B03 so it
>> > would be possible to build the doc from the delivered sources.
>> >
>> > But it's still only built in house because we hadn't time to test it but the plan is
>> > to have it work for everyone in R13B04.
>> >
>> > Thanks for your report, we'll have a look at those fault.
>> >
>> > Regards Lars
>> >
>> >
>> > Sergei Golovan wrote:
>> >> Hi!
>> >>
>> >> I'm trying to build Erlang documentation from the sources (the goal is
>> >> to switch from prebuilt docs for Debian Erlang packages as building
>> >> them from the source is preferable).
>> >>
>> >> To do that I run
>> >> make
>> >> make TYPE=docs
>> >> (in fact, make libs doesn't recognize TYPE, so I had to replace "make
>> >> opt" by "make $(TYPE) in the top-level Makefile).
>> >>
>> >> and I've found several problems which make build fail:
>> >>
>> >> 1) For some XML files (e.g. erts/docs/src/book.xml) xsltproc reports
>> >> runtime errors about undefined variables (partnum in line 871 and 963
>> >> of db_pdf.xsl, in lines 1075 and 1173 of db_html.xsl). Is this a bug
>> >> in the stylesheets or in xsltproc? (Both 1.1.24 from Debian stable and
>> >> 1.1.26 from Debian unstable failed.)
>> >>
>> >> 2) wx application has duplicated targets html and docs in its makefile.
>> >>
>> >> 3) wx application (and others too) require docb_gen script to generate
>> >> XML docs sources. It is missing. (I suppose that it is a simple
>> >> wrapper around docb_gen Erlang module and could be recreated, but It'd
>> >> be better if it were shipped in Erlang sources.)
>> >>
>> >> Is Erlang documentation supposed to be buildable from the source, or
>> >> it still requires some unavailable tools?
>> >>
>> >> Cheers!
>> >
>> >
>>
>>
>>
>> ________________________________________________________________
>> erlang-bugs mailing list. See http://www.erlang.org/faq.html
>> erlang-bugs (at) erlang.org
>
>
>________________________________________________________________
>erlang-bugs mailing list. See http://www.erlang.org/faq.html
>erlang-bugs (at) erlang.org
>
>


More information about the erlang-bugs mailing list