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

Re: Symlinks in CVS trees



On 19-Feb-02, 03:18 (CST), Richard Kettlewell <rjk@terraraq.org.uk> wrote: 
> "Chad C. Walstrom" <chewie@wookimus.net> writes:
> > Edit the Makefile: create a target to make the links.  Links should
> > not be part of a source tarball anyway.
> 
> Whyever not?

Because CVS doesn't support links. :-)

More seriously, because they represent bad/lazy design decisions. Here's
some uses I've seen of links being distributed in tarballs:

1. A source file used by two different executables whose source is in
different directories. This should be in a library, or otherwise have a
single occurrence referenced by multiple parts of the build system (e.g.
include files).

2. Default configuration choices, e.g. Makefile->Makefile.linux (with
Makefile.aix and Makefile.bsd as other choices, perhaps). This is
pure lazyness, as it is trivial to detect the correct choice and "do
the right thing" during the build (if it's not trivial, then having a
default is even worse, as it will fail to detect that it's the *wrong*
default). More complicated variations of this (such as selecting a
subset of files to include in a library) are better handled via scripts
as well.

3. Mistakes in clean-up before building the tarball.


Links can make a lot of sense in the runtime side of things. But they
should be created by the build process.

Steve



Reply to: