decisions on building infrastructure

Alastair Reid alastair@reid-consulting-uk.ltd.uk
Thu, 5 Jun 2003 10:40:34 +0100


Ross:
> I think an important requirement is that most of the
> build system should be shared, either distributed separately or bundled
> with the compilers, or a bit of each, but definitely not duplicated in
> each library.  The library author should supply the absolute minimum
> information that is specific to the library, preferably in a declarative
> form.

This is what I'm aiming for with the fptools infrastructure
 (see fptools/libraries/X11 in CVS)

I'm successfully building several libraries off a single fptools CVS copy.

Some of the remaining issues are:

1) I'd like source distributions to be reasonably complete so, for now, 
    I plan to include a complete copy of fptools in each tarfile.  Ideally, 
    this would become a separate package (probably called fpconfig) but
    this requires us to choose a standard place where fpconfig is installed
   so that the makefiles can refer to it.  (Hmmm, or fpconfig includes a
   program /usr/bin/fpconfig-info which returns the necessary information?)

2) You need to provide your own copies of:

    $top/Makefile
    $top/mk/version.mk
    $top/mk/boilerplate.mk
    $top/mk/target.mk

   Ideally, there'd be just one or two files
   (I think this can be achieved fairly easily.  I'm at the stage where I'm
   so glad anything works at all that I lost the energy to push further.)

3) The configure script is in fptools.  This means a large chunk of
    boilerplate is shared by many people but also means that there's
   no ability to customize it by:

   - adding a test for a new feature
   - specifying what version of a given tool is needed (and having configure
     fail if it's not present).

   It seems like the fix will be to have a very, very minimal configure script
   in every project which #includes ${fpconfig}/configure.in

--
Alastair