[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: SUBDIRS and libraries [Was: Re: [PATCH] Fix problem with generation

From: John Darrington
Subject: Re: SUBDIRS and libraries [Was: Re: [PATCH] Fix problem with generation of man/poke.1]
Date: Thu, 14 Nov 2019 20:11:10 +0100
User-agent: NeoMutt/20170113 (1.7.2)

You may find it usefull to look at the make system in PSPP
We've done it that way there for many years now, and the
results have been very sucessful.

Like Luca says, gnulib couldn't be done non-recursively.  Also
the po directory was interesting: we didn't like what the
default Make which comes with gettext does anyway, so we rolled
our own.  But automake insists on calling po/Makefile so we
provide a dummy one to keep it happy and have the real work done
in our included non-recursive Makefile.

Other than that minor kludge it seems to work very cleanly.


On Thu, Nov 14, 2019 at 07:40:03PM +0100, Luca Saiu wrote:
     On 2019-11-14 at 13:00 +0100, John Darrington wrote:
     > FWIW: I recommend not using the SUBDIRS feature of automake.  Instead,
     > use a non recursive makefile system - it's faster and more reliable.
     > See Peter Miller's paper "Recursive Make Considererd Harmfull".
     I strongly agree.  Occasionally it is even useful to find Automake bugs.
     Which, as a more serious remark, reminds us that non-recursive Makefiles
     are much less heavily tested.
     SUBDIRS is still required for Gnulib and Jitter, but I would limit its
     use to those cases.  Speaking of which: what is the *proper* way of
     declaring a link-time dependency on a library which is built in a
     subdirectory with its own Makefile, apart from an explicit (MAKE) call
     at the beginning of a rule body or something else similarly defeating
     the purpose of parallel builds?  Every time I have to do something
     similar I feel uneasy with respect to parallel make.  I use parallel
     make a lot and I think I have never seen failures caused by this, but
     still linking a library with target_LDFLAGS or similar in Automake is
     probably not enough to automatically discover dependencies.
     I have used the non-recursive style for so long that now I have doubts
     about the traditional solution.  Are we supposed to use
     target_DEPENDENCIES for libraries given in target_LDFLAGS ?
     Luca Saiu
     * My personal web site:  http://ageinghacker.net
     * GNU epsilon:           http://www.gnu.org/software/epsilon
     * Jitter:                http://ageinghacker.net/projects/jitter
     I support everyone's freedom of mocking any opinion or belief, no
     matter how deeply held, with open disrespect and the same unrelented
     enthusiasm of a toddler who has just learned the word "poo".

Avoid eavesdropping.  Send strong encrypted email.
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3

reply via email to

[Prev in Thread] Current Thread [Next in Thread]