*BSD News Article 51055


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!simtel!news.kei.com!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!zygorthian-space-raiders.MIT.EDU!ghudson
From: ghudson@mit.edu (Greg Hudson)
Newsgroups: comp.unix.bsd.netbsd.misc,comp.os.linux.advocacy
Subject: Re: DEBATE: BSD vs. Linux
Followup-To: comp.unix.bsd.netbsd.misc,comp.os.linux.advocacy
Date: 10 Sep 1995 00:18:46 GMT
Organization: Massachvsetts Institvte of Technology
Lines: 29
Message-ID: <42tat6$l72@senator-bedfellow.MIT.EDU>
References: <4233kp$t8p@hilly.apci.net> <42dp79$bv5@wolfe.wimsey.com> <42gnkt$9ji@klaava.helsinki.fi> <42j4js$lu9@wolfe.wimsey.com> <42m0pg$2lv@klaava.helsinki.fi>
NNTP-Posting-Host: zygorthian-space-raiders.mit.edu
X-Newsreader: TIN [version 1.2 PL2]
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.netbsd.misc:1026 comp.os.linux.advocacy:20953

Linus Torvalds (torvalds@cc.Helsinki.FI) wrote:
: Forget complex makefiles: try "man lndir".  And the nice thing about
: using lndir is that it works for _any_ project, not just your pet
: project that happens to be set up with VPATH etc. 

lndir does not work all of the time.  A good many projects like to
write to their source tree during builds, which makes parallel builds
fail.  lndir also fails to handle source trees containing symlinks to
directories.  Finally, if any new files or directories are added to
your source tree, the build tree is essentially invalidated and can't
be fixed incrementally.

In general, I find it easiest to build packages which do a careful job
of separating out build configuration information from the source files,
and which use a read-only source tree.  I maintain a lot of software at
MIT (for six platforms, sometimes more), and I find it takes virtually
zero effort to build or upgrade software packaged by the FSF (which is
usually sensitive to such concerns) or by people who follow their
guidelines.  By contrast, building Linux or other products whose
maintainers took a "who cares?" attitude to packaging takes hours of
work to build for many platforms, and I can never be sure that the
result was built properly.

Random user-level programs can be packaged for parallel build trees
easily: all you need to do is use autoconf, set VPATH in your
Makefiles, and not be too clever.  Operating system software doesn't
get to take advantage of the same set of pre-fab tools, but it's
still not very hard.