Subject: Re: Compile of routed in -current ? ....
To: None <jb@werple.mira.net.au>
From: matthew green <mrg@mame.mu.Oz.Au>
List: current-users
Date: 06/29/1995 00:02:22
I bet you're not going to like this (8-)>) ...
i'm sure he won't.
One of the things about NetBSD that was not obvious to me was how the
include files were managed. I can see that you like to keep the include files
in the branches of the source tree where they sort of belong. What confused
me was that the 'make install' of the include directory would go and suck
include files out of the src directories, rather than the makefile in the
relevant source directory controlling the release of the include files for use
by others.
actually, i'd prefer that all installed header files, except those
associated with the kernel, be kept in src/include. files like
<curses.h> should be moved in to here, so they are updated when the
rest of the includes are.
For the purposes of this discussion, let's say that /usr/include is not used
at all during the compile of the kernel, libraries or any of the utilities;
leave it as the place where the include files end up in the final release.
Let's say that we use /usr/src/include as the directory where include files are
released during the build process. If we start a clean build, /usr/src/include
is empty. When we build /usr/src/lib, we compile against just those include
files that belong to /usr/src/lib. At the end of /usr/src/lib, we release
the include files and the libraries at the same time so that they match. Now,
if there are system include files that /usr/src/lib needs, then there needs to
be a directory built before /usr/src/lib that releases these files and this
directory is brought up-to-date first by the makefile in the directory
above.
ick. this would (seem to) spread all the include files in to the
various parts of the tree that need them. that's horrible. i'd
really just like what i suggested above.
This style of building relies on having makefiles that allow the include
files to be managed without a '${MAKE} cleandir' between them and the lib,
gnu/lib, bin etc branches of the tree. If we set up makefiles that are
routinely used to build from the top down, with each directory being built
once (and only once) and with files being released as required, then we never
run into the problem of 'have you done a make install in /usr/sys/include?'.
but what *other* problems crop up? your suggestion seems to be
ripe for those bugs to infest. it seems too complicated for the
desired result. a little user education is what is really needed.
i can't feel sorry for people compiling the full netbsd tree who
aren't at least aware of the issues involved -- it is just too
big.
Building software is a religious issue to me. Configuration management is
no trivial issue.
no, it's not. that's why people *must* be aware of the issues
involved with building something as large as the full netbsd tree,
else they will just lose one day (hell, even if you do know what
you're doing, you'll lose one day :-)
i must admit that i had the same reaction to your original proposal
as chris did.
.mrg.