It struck me that much of the work needed to make sure of a compatible build environment for different gnu/linux distros would normally go in a configure script - then the install method would become -
1. get the source
2. cd into top directory
3. ./configure
4. make
5. make install
[snipped]
What say ye?
I'm entering the fray here
The above is exactly what is needed (IMO)
. The ./configure script should check deps and know the architecture and if all OK, creates the makesfiles
. The root makefile calls any child makefiles and controls the build.
. The 'make install' should create the necessary directories (if they don't exist) and copy any resultant binaries to (say) /usr/local/bin
I'm happy to get involved in this area, but if someone's already doing it, I will back off. No point in re-inventing the wheel, eh?
Just remember that a default checkout of the trunk has to build under Windows as well.. so any replacement of the current build system needs to take building under Windows into account.
That's actually not a problem - the configure script is a linux-ism, and irrelevent to widows. When run it modifies the makefile and any others in preperation for the main event. The unmodified versions build under windows.
For many projects, the configure step actually creates the makefiles that get used.
If you want to see an example of heavy configure use, have a look at vulture's eye - which also builds under windows.
Then, of course, there is the obligatory "upgrade to linux - feel the freedom" message. I'm afraid it's a law... ;)
Sorry, I was running under the impression you wanted to replace the current Makefiles, not offer an alternative.
As it's a multi-platform project it would be nice to maintain similar build experiences for all (with the exception of Mac which seems to be 'special' *g*)
I'm currently looking at re-working the makefiles with a top-level makefile. This will mostly be just a wrapper around existing stuff, but I figure it'll be an easier starting-off point for people with targets such as 'debug', 'release', 'pkg-deb', 'pkg-win' and so on. (Open for suggestions on standardised target names)
It will build 'standard' debug and release builds, Ubuntu (Debian) packages, and the Windows installer. Shouldn't be hard to integrate configure/make for the 'standard' builds into this framework.
Another thing to keep in mind is that different audiences use this for different purposes:
* Developers
* Package maintainers
* End-users of systems for which there are no explicit packages available
So unfortunately there's no 'one build for all' magic bullet.