I forgot to tell you that a newer GNU make that can handle order-only prerequisites is needed (3.80 should do). I have been unable to find a solution for older makes.

 


From: ros-dev-bounces@reactos.com [mailto:ros-dev-bounces@reactos.com] On Behalf Of Casper Hornstrup
Sent: 19. maj 2005 22:33
To: 'ReactOS Development List'
Subject: [ros-dev] New build system ready for trunk

 

Hi.

 

I believe the new build system is ready to replace the current build system in trunk. Unless there are objections, I plan on merging the branch to trunk in the weekend of 27 – 29 of may.

 

I’d like to take the opportunity to thank everyone that helped make this possible - especially Royce Mitchell III, Ge van Geldorp, and Steven Edwards.

 

It would be nice if you could checkout the branch and check that the features you can’t live without are still there so we can have them ready before the merge. If you have major new feature requests that are not essential, I’d like to put them on hold until after the merge. To checkout the branch do a:

 

svn co svn://svn.reactos.com/branches/xmlbuildsystem/reactos

 

For a list of environment variables that controls the build see:

http://svn.reactos.com/viewcvs/*checkout*/branches/xmlbuildsystem/reactos/Makefile

 

For more technical information see:

http://svn.reactos.com/viewcvs/*checkout*/branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.txt

 

This is not a 100% solution to our dependency problems though. There can still be corner-cases where it is needed to manually clean some files, but it will be needed a lot less than today. Also in order to have acceptable performance, we cannot check dependencies on every included file on each make invocation. Therefore, this is currently only checked each time the automatically generated makefile (makefile.auto) is regenerated. Makefile.auto is regenerated each time a build system file (*.xml) is modified. If you need to check the dependencies on files not specified in the build system files “automatic dependencies”, then delete makefile.auto and run make again.

 

Casper