Opened 19 years ago

Closed 17 years ago

Last modified 6 years ago

#7451 closed feature request

OSX: Improve "bundle" build target

Reported by: (none) Owned by: fingolfin
Priority: normal Component: Port: Mac OS X
Version: Keywords:
Cc: Game:


In response to "bug" number 1326281, here's a feature request.

Instead of doing (for "make bundle", Mac OS X application file):

`sdl-config --static-libs` \ /sw/lib/libmad.a \ /sw/lib/libvorbisfile.a \ /sw/lib/libvorbis.a \ /sw/lib/libogg.a \ /sw/lib/libmpeg2.a \ /sw/lib/libFLAC.a \

, the makefile should be configured to only link those libraries that actually exist (i.e. those that are found when running configure). I'm not really sure why you should want to edit this manually, when it can be done automatically.

Ticket imported from: #1327285. Ticket imported from: feature-requests/267.

Change History (5)

comment:1 by fingolfin, 19 years ago

To highlight the background of this "feature" a bit: I added the "bundle" target (and more specifically, the "scummvm-static" target). to make building a static OSX binary a bit comfortable for me. It is used to make the release binaries, and those are always to be linked against *all* libs anyway. Furthermore, the build assumes you have installed all those libs via Fink, into the default Fink install location. There is a "OSXOPT" hack variable in the Makefile to slightly improve this (I think khalek added it since he uses OpenDarwin).

As such, this Makefile rule indeed doesn't deal with libs not being installed. Nor does it deal with systems were a lib is installed with something else than Fink (e.g. manually, OpenDarwin, etc.).

Personally I didn't put any effort (and won't in the future) into improving this, since it does precisely what I need it for. Implementing it "properly" OTOH would require a lot of work, and I wouldn't gain anything by it...

That said, if anybody feels like providing a patch for this, it'd be welcome (as long as it fulfills certain minimum quality standards, of course :-). The most likely way to implement this would be to enhance the configure script to generate the "scummvm-static" rule appropriately.

comment:2 by fingolfin, 19 years ago

Summary: Only existing libraries should be linked when compilingOSX: Improve "bundle" build target

comment:3 by fingolfin, 17 years ago

I changed our build system some time ago such that the "bundle" target will indeed only link in those lib*.a files for which support was detected&enabled by configure. You will still have to edit the OSXOPT var if you don't use FInk to install these things, though, and that won't change anytime soon, if ever. Essentially, finding the "correct" .a files matching the headers the compiler sees is a non-trivial task and would complicate our configure script a lot; comparing this to the net benefit (avoiding to edit a single line, once, in a Makefile), it just doesn't seem worth the hassle.

comment:4 by fingolfin, 17 years ago

Owner: set to fingolfin
Status: newclosed

comment:5 by digitall, 6 years ago

Component: Port: Mac OS X
Note: See TracTickets for help on using tickets.