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).

Reply via email to