On Tue, 2003-09-30 at 01:40, Alexandre Julliard wrote:
One problem is that most makefiles specify different defines, so you basically need to have one different rule for each C file. Then there are many files that have explicit rules. It could be done, but I don't think it's worth it, and the result would be really messy and hard to maintain.
Maybe oneday it would be worth porting the Wine build system to SCons (http://www.scons.org/). From "What makes SCons better":
* Configuration files are Python scripts--use the power of a real programming language to solve build problems. * Reliable, automatic dependency analysis built-in for C, C++ and Fortran--no more "make depend" or "make clean" to get all of the dependencies. Dependency analysis is easily extensible through user-defined dependency Scanners for other languages or file types. * Built-in support for C, C++, Java, Fortran, Yacc, Lex, Qt and SWIG, and building TeX and LaTeX documents. Easily extensible through user-defined Builders for other languages or file types. * Built-in support for fetching source files from SCCS, RCS, CVS, BitKeeper and Perforce. * Built-in support for Microsoft Visual Studio .NET and past Visual Studio versions, including generation of .dsp, .dsw, .sln and .vcproj files. * Reliable detection of build changes using MD5 signatures; optional, configurable support for traditional timestamps. * Improved support for parallel builds--like make -j but keeps N jobs running simultaneously regardless of directory hierarchy. * Integrated Autoconf-like support for finding #include files, libraries, functions and typedefs. * Global view of all dependencies--no more multiple build passes or reordering targets to build everything. * Building from central repositories of source code and/or pre-built targets. * Ability to share built files in a cache to speed up multiple builds. * Designed from the ground up for cross-platform builds, and known to work on Linux, other POSIX systems (including AIX, *BSD systems, HP/UX, IRIX and Solaris), Windows NT, Mac OS X, and OS/2.