Apologies for this slightly off-topic post.
Has Dan has revealed enough about his engineering methods for others
to duplicate them? Does anybody want to, possibly producing sharable
tools? Given the quality of his results, his methods might be worth
imitating. (Plus, I'm not happy with current approaches to building;
below are some reasons.)
Dan: any hints, pointers, or sample scripts, however rough, would be
much appreciated--at least by me.
The big open question for me is:
1. What does he use for source control, given that he builds in one
directory, and bundles the same libraries with many packages? How
is the repository organized? CVS etc. like hierarchies.
Here's what I have determined or guessed from following these lists.
1. Dan _does_ have automated tools, but doesn't consider them production
quality and hasn't released them [1].
2. The ezmlm package contains files of form *=* which give a strong
hint how his makefiles are generated [2].
3. Dan appears to track "functional units" of code, and appears to
incorporate them into projects as units [5]. Perhaps using CVS
modules or the like?
4. All sources go into one directory; Perhaps because recursion defeats
make's dependency checks [3,4]? Perhaps because many tools don't like
to build things in subdirectories? Perhaps because his packages
are pretty small, so it just doesn't matter?
5. The "just in time dependency" [1] approach to configuration is fairly
well understood. (DJB's 'yabbawhap' package included a tool which
inspired autoconf [1], but he has adopted his current approach
because monolithic config subverts make's dependency checking [3].)
6. Scripts "compile" and "load" exist so make can manage dependency
on compiler settings. Changed settings force recompilation [3].
Thanks,
Len.
--
[1]
<http://www.ornl.gov/its/archives/mailing-lists/qmail/1999/08/msg00005.html>
[2]
<http://www.ornl.gov/its/archives/mailing-lists/qmail/1999/07/msg00115.html>
[3]
<http://www.ornl.gov/its/archives/mailing-lists/qmail/1996/12/msg01294.html>
<http://www.ornl.gov/its/archives/mailing-lists/qmail/1996/12/msg00208.html>
<http://www.ornl.gov/its/archives/mailing-lists/qmail/1998/03/msg00788.html>
[4] For a discussion, not by Dan, see "Recursive Make Considered Harmful" at
<http://www.canb.auug.org.au/~millerp/rmch/recu-make-cons-harm.html>.
[5] I can't find the reference. Dan once posted the observation that sets
of files belong together, as {substdi.c, substdio.c, substdio.h} (not the
correct example).