Makefile

hiker
Posts: 83
Joined: Tue Oct 24, 2006 11:52 pm
Location: Australia

Makefile

Post by hiker »

Hi,

I would agree with Steve Baker (as discussed elsewhere - sorry, can't find it right now) that 'configure;make' is the standard way of builing on unix environments. I nearly decided against using bullet when I read that it was not using this approach (I just hate installing additional software).

Below a quick Makefile, which can be used in the bullet root directory, and would allow users to use 'configure; make' by first building jam.

It's just a suggestions - if you use it, configure should be somewhat improved to remove the jam message, etc.

Cheers,
Joerg

PS: Just for the record: I am not saying that autoconf is the best way of doing this :)

PPS: The \t have to be replaced with tabs of course

Makefile:
=========

.PHONY: jam bullet

all: jam bullet

jam:
\t$(MAKE) -C jam-2.5

bullet:
\tjam-2.5/bin*/jam
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: Makefile

Post by Erwin Coumans »

hiker wrote:Hi,

I would agree with Steve Baker (as discussed elsewhere - sorry, can't find it right now) that 'configure;make' is the standard way of builing on unix environments. I nearly decided against using bullet when I read that it was not using this approach (I just hate installing additional software).

Below a quick Makefile, which can be used in the bullet root directory, and would allow users to use 'configure; make' by first building jam.

It's just a suggestions - if you use it, configure should be somewhat improved to remove the jam message, etc.

Cheers,
Joerg

PS: Just for the record: I am not saying that autoconf is the best way of doing this :)

PPS: The \t have to be replaced with tabs of course

Makefile:
=========

.PHONY: jam bullet

all: jam bullet

jam:
\t$(MAKE) -C jam-2.5

bullet:
\tjam-2.5/bin*/jam
That sounds like a good idea. Are you familiar with autotools? It would be great if './configure' would setup both jam as well as make (and perhaps even call the libxml 'configure').

About the history of several buildsystems in Bullet: The jam/configure is a contribution (from crystal space developers). Lack of experience with autotools means, I can't support it myself. I added cmake to support Mac OS X (it can autogenerate Xcode, Kdevelop, msvc and makefiles).
hiker
Posts: 83
Joined: Tue Oct 24, 2006 11:52 pm
Location: Australia

Re: Makefile

Post by hiker »

Erwin Coumans wrote: That sounds like a good idea. Are you familiar with autotools? It would be great
Unfortunately not really - I had to modify a few related scripts for supertuxkart, but never got a real understanding. But since I have to add the bullet source tree to STK anyway, I will have to add 'configure;make' support. I will forward whatever I do to you :) But that's not high on my priority list at the moment, first I want to see that bullet really magically solves all physics-related problem in STK :) Once I've implemented this, I wll merge the bullet sources into the STK sources and add configure support.
Erwin Coumans wrote: if './configure' would setup both jam as well as make (and perhaps even call the libxml 'configure').
Hmm - would you still need/use jam if autoconf works? I usually try to keep the number of dependencies as small as possible, and while it appears that jam is really portable, there might still be some questions coming in the future. So removing jam and using make instead might save some work (once it is done :)) ).
Erwin Coumans wrote: ...
I added cmake to support Mac OS X (it can autogenerate Xcode, Kdevelop, msvc and makefiles).
That sounds like a nice tool. I might have a look for STK later as well, once we support more architectures (well, windows is currently supported via cygwin, the cygwin dll is included in a 'windows only' package; and MacOS apparently works with configure after minor modifications).

Cheers,
Joerg