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 http://www.kergis.com/ Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C