|
From: Oskar L. <os...@os...> - 2003-10-30 05:49:28
|
On Wednesday, October 29, 2003 at 23:12, Michael Steil wrote: > The build system of Cromwell is a feature, not a bug. It is meant that > way. It is true that the dependencies don't work as in other projects, > but Cromwell is unlike other projects. Cromwell consists of six systems > that have been linked together. > GCC issues make it close to impossible to implement proper makefiles. > There are many issues, like the order of linkage, GCC ignoring changed > .h files etc. Well, the generated dependencies say that whenever header file .h is changed, every .c file that includes is also changed. This is optional behavior, and can be removed from the makefile entirely. However, I am convinced it is the correct behavior. The new Makefile addresses the following problems: some files were built incorrectly Implicit make rules were used, some files were built without CFLAGS (xbeboot.S etc) old makefile always did clean on build This makes the makefile broken. Better of with a build script then... new makefile has correct & complete dependencies, automaticly generated If you change one file, expect every other file that depends on it to be rebuilt. Also, image compression using imagebld is done separately for each target. It is possible to use 'make default.xbe' to just build that file. builds object and binary files into same dir as code This could be argued, but it is cleaner this way in my opinion. Otherwise all could should be build a in a specific directory (not objs, bin, xbe, image etc). minor code corrections -Wall -Werror This was necessary to build with the above options. proper separation of host tool compilation (imagebld) and other code Compiling imagebld requires different flags (not -march=pentium/-mcpu=pentium) since your host OS may not be pentium. single toplevel makefile What's the point of makefiles in subdirs if they can't be used by running make in subdir? I urge you, Franz and Ed, and everyone else interested to take a look at the Makefile again, and explain to me what's wrong. Of course I'd respect whatever decision, but not if it is based on lose grounds and only if it's explained... We all code here to make stuff better, don't we? Regards, Oskar Liljeblad (os...@os...) |