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