Page 2 of 2

Re: Would a linux config script help with builds?

Posted: Thu Nov 13, 2008 6:33 pm
by beeze
Simon B wrote:
Considering:
https://bb.oolite.space/viewtopic.php?t= ... adb6aea479

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 :P

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? ;)

Beeze/

Posted: Thu Nov 13, 2008 8:12 pm
by Micha
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.

Posted: Fri Nov 14, 2008 11:42 am
by Simon B
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... ;)

Posted: Fri Nov 14, 2008 12:50 pm
by Micha
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.

Posted: Fri Nov 14, 2008 12:51 pm
by Micha
Simon B wrote:
Then, of course, there is the obligatory "upgrade to linux - feel the freedom" message. I'm afraid it's a law... ;)
Preaching to the (long) converted.. been running Linux for well over 10 years.