Hello Gary, On Sun, Nov 14, 2010 at 04:32:34PM +0700, Gary V. Vaughan wrote: > [...] > > Does your build system work correctly with shared libraries in Mingw, > cygwin, AIX, HP-UX (to name just a few of the more awkward under- > featured shared library implementations I care about) under various > compiler and library releases? How did you do that without either > probing the environment (which is what we do already) or tabulating > known results (which breaks every time you encounter a new system, and > requires maintenance for every supported combination of compiler/libc/OS > if a new variable is added to the tabulation)?
I do it the other way around, that is, it is not every package that is
trying to discover where it is compiled etc. but two parameters files
(small basic Bourne shell variables definitions) in the R.I.S.K. that
describe the MATRIX and TARGET.
Adding a "system" is trivial, and is done only once. Not every package
has to redo exploration again and again and again.
R.I.S.K. is Reduced Instruction because the project (package) must know
what it is doing; and the hosts systems (MATRIX and TARGET) must be
described hence know what they are providing (not third/opt packages:
only the directories to explore to find an optional library and
its header).
At the moment, I had no problem adding Plan9 (APE), Darwin (Mach-O);
Mingw should be trivial; NetBSD and FreeBSD are here, OpenBSD should be
a copy. The main "divergences" will be with the Linuces---there is a
Linux target, but there should be "flavors"---that manage to
do it differently, Linuces being no "system" since the kernel, the libc
and the basic utilities are orthogonal entities! combined by mood!
So my system is probably not able to accomodate the way the GNU
framework does, but it is not its aim: if the package doesn't know what
it is doing and needing, and the systems don't know what they are
providing, the engineering principle is: no engineering! and I simply
don't waste time with that ;)
And to the question "but what do you do if a package you need doesn't
fit your engineering principles?" the answer is: I redo it to my taste.
Done for GRASS -> KerGIS, Shapelib -> my own version publish with
open source version of KerGIS, (netpbm, libtiff not published),
GPL teTeX/TeXLive -> KerTeX etc.
The only system I'm willing to contribute to but not redo since it is
far better than anything I could dream to come up myself is Plan9...
Cheers,
--
Thierry Laronde <tlaronde +AT+ polynum +dot+ com>
http://www.kergis.com/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
pgpFbrFHkQGmu.pgp
Description: PGP signature
