On 2007/12/7, Jakub Narebski <jnareb@xxxxxxxxx> wrote: > Andreas Ericsson wrote: > > Jakub Narebski wrote: > > > > > > Although there was some talk about whether giw should use autotools, > > > or perhaps CMake, or handmade ./configure script like MPlayer IIRC, > > > instead of its own handmade Makefile... > > > > > > > To tell the truth, I'd be much happier if everything like that got > > put in a header file or some such. 95% of what we figure out by looking > > at "uname" output can already be learned by looking at the various > > pre-defined macros. > > > > Fortunately, there's a project devoted solely to this, so most of > > the tedious research need not be done. It can be found at > > http://predef.sourceforge.net/ > > Code talks, bullsh*t walks. > > Pre-defined macros cannot tell us if one have specific libraries > installed, cannot tell us if formatted IO functions support 'size > specifiers' even though compiler claim C99 compliance or even though > compiler doesn't claim C99 compliance but supports this, etc. > > But perhaps the "uname" based compile configuration could be replaced > by testing pre-defined macros... at least for C code, and git is not > only C code. > > -- > Jakub Narebski > Poland > A powerful tool can do better things that old generators-based tools (as autotools). To imagine, there are many scripts in subdirectories or subprojects: * Before: (many copy and paste of code as below paragraph) A_VARIABLE_OS = `uname -a | grep .... ` # <- slow case "$A_VARIABLE_OS" in *linux*) ... ;; *bsd*) ... ;; *aix*) ... ;; *) ...;; esac m4 foo.sh.m4 > bar.sh # <- very slow ./bar.sh * Later: (with the powerful tool that had cached many predefined variables in a ramdisk's file or in a daemon's memory) # call once at 1st time to internal uname of powerful tool for all ocurrences of # below predefined variable from many scripts: case "$FOO_VARIABLE_OS" in *linux*) ... ;; *bsd*) ... ;; *aix*) ... ;; *) ...;; esac # i don't need to generate more scripts to inspect still more it. J.C.Pizarro - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html