[1672] in Kerberos_V5_Development
Re: testing
daemon@ATHENA.MIT.EDU (Ken Raeburn)
Thu Aug 29 22:00:21 1996
To: Tom Yu <tlyu@MIT.EDU>
Cc: "Barry Jaspan" <bjaspan@MIT.EDU>, tytso@MIT.EDU, krbdev@MIT.EDU
From: Ken Raeburn <raeburn@cygnus.com>
Date: 29 Aug 1996 21:55:02 -0400
In-Reply-To: Tom Yu's message of Thu, 29 Aug 1996 17:38:29 -0400
Tom Yu <tlyu@MIT.EDU> writes:
> The problem is, make -k rarely DTRT with subdirectories. I've looked
> at the problem somewhat but have yet to come up with a reasonable
> solution.
Oh yeah, I forgot about that. The hack for comparing $(MFLAGS)
against "*k*" and deciding whether to quit on failure is, um,
interesting, but if a popular version of make (say, a certain recent
GNU make) includes anything but the one-letter options (say,
command-line variable definitions) and that "anything" includes the
letter "k", you lose. I generally just disable any such code I find,
because it has broken for me too often.
The approach the Cygnus CDB folks use at the moment is instead of
using a "for i in $(SUBDIRS)" loop, set up a bunch of targets, one per
directory, like this:
ALL = all-lib all-appl all-clients ...
all-appl : all-lib
all-clients : all-lib
$(ALL):
d=`echo $@ | sed s/all-//` && cd $$d && $(MAKE) all $(FLAGS_TO_PASS)
That has the added advantage that you can build only the top-level
directories you're interested in and leave out the others, with a
command like "make all-clients". If you've got the dependencies
right, the necessary library directories all still get built.
However, it's quite a bit more complex to maintain.