Managing Projects with GNU Make
sarumont writes "Every Open Source developer uses or has used GNU make at some point or another. Everyone who has ever compiled a piece of Open Source software has used GNU's make. So what exactly is GNU make and how does it work? The 3rd Edition of 'Managing Projects with GNU Make' tells you all about using GNU make and more."
I'm pretty sure there are plenty of open source developers who have never touched GNU Make.
you might try these guys.
www.virtualdub.org
www.dscaler.org
And many more.
Open source on windows, OMG it does exist!!!!
Step out of your Linux bubble.
There's a *lot* of open source in Java, and basically all of them use ant.
I'm sorry, what was this article about?
SCons has automatic dependency checking built in, supporting many kinds of source files, but if it doesn't have what you need it can be easily extended.
SCons remembers the command line used to compile/build a given file, so it automatically figures out that it should rebuild that file if the command line arguments change. With Make it is very difficult to do that, so "make clean" is used much more often than it should be needed.
SCons is written in Python, and the SConstruct files it uses analagously to Makefiles are fundamentally Python scripts, but you don't need to know Python to use SCons. However, if you do know Python you can easily extend SCons.
SCons integrates well with Steven Ellis' 'nc' network compilation tool (though nc works with make also).
A-A-P, led by Bram Moolenaar (of vim fame) looks promising too.
All these tools (and also cmake and A-A-P mentioned in the other reply) are great for developers but not ideal for the end user who almost surely doesn't have them installed on his machine.
If you want to use something as easy on developer but which would still require no additional on the users machine, have a look at bakefile. This is a very useful tool, especially for open source programs where users often have or are asked to rebuild the program from source and installing additional tools is just an extra hurdle for them.
The pages are essentially built up from a header file, a sidebar file, a text file (the only bit that changes regularly), and a footer file. The make file scans the directory for all the *.src files, then generates a page for each *.src file, copies it into the right folder as index.html, making the folder if it's not there already. Easy way to generate consistent pages, although it would've been even better if I could have got css to work properly...