Building GnuCash 2.2.2 on Mac OS X without Fink or MacPorts

David Reiser dbreiser at earthlink.net
Wed Jan 9 12:14:48 EST 2008


On Jan 9, 2008, at 9:54 AM, Derek Atkins wrote:

> Alexander Sotirov <alex at sotirov.net> writes:
>
>> On Tue, Jan 08, 2008 at 08:46:27AM -0500, Derek Atkins wrote:
>>> [snip]
>> I outlined the main issues in my last email, but I'll summarize
>> them as TODO items:
>>
>> 1) Remove unneeded files from the destination directory to reduce
>> the size of the package. Linking the GNOME libraries staticly
>> would be cool, but that would involve a lot of work (and hacking).
>
> Well, you could certainly remove all the header files.  Not sure
> what else can be removed, tho.  I suspect it'll be some trial and
> error.
>
>> 2) Make GnuCash work from any directory. The OSX installation model
>> is that there is no installer, you just drag the app directory  
>> somewhere
>> and double click to launch it. Jeshua Lacock suggested the /tmp
>> trick in his email, BinReloc is something else I need to investigate.
>
> I'd look at BinReloc first.  As I suggested earlier I'd recommend
> NOT using /tmp (but you could use /opt).
>
>> 3) Build an OSX application that wraps the GnuCash directory and  
>> launches
>> the main executable, so that users get the same installation and  
>> launching
>> experience. This is trivial.
>
> trivial but useful!

If you configured gnucash with --prefix=/Applications/GnuCash.app/ 
Contents then at least the structure would be there already. But I  
admit I don't know how to apply the appropriate bundle parameter after  
the fact (or if it can be done after building). You probably need to  
have the configure with --bindir=$PREFIX/MacOS to get normal mac app  
behavior too.

I think the relocatable part requires running install_name_tool on  
every .dylib or .so in gnucash and all dependencies. Something like:

install_name_tool -change /Applications/GnuCash.app/Contents/lib  
@executable_path/../lib GnuCash.app/Contents/libs/libexample.dylib

With enough scripting know-how, one could probably do that with a  
single loop. But that's certainly beyond my skills at the moment.

Dave
--
David Reiser
dbreiser at earthlink.net






More information about the gnucash-devel mailing list