Monday, November 07, 2005

building a gtk2 mozilla on a mac

(these could be a cargo cult because i didn't build them properly)

add -lpangoft2-1.0 -lpangoxft-1.0 to MOZ_GTK2_LIBS in config/autoconf.mk.in

add -lglib-2.0 -lgobject-2.0 -lgdk_pixbuf-2.0 to EXTRA_DSO_LDOPTS in browser/components/build/Makefile.in

it is possible that the above is a total cargo cult, and i didn't compile these libraries correctly.

this comes in handy (in /usr/local/lib/firefox-1.6a1, make sure you put -headerpad_max_install_names into your LDFLAGS, otherwise you won't be able to do this)


DEBUG=echo
FF_DIR=/usr/local/lib/firefox-1.6a1
cd $FF_DIR
for i in *dylib; do for j in `otool -L $i | sed -n '/.*@executable_path/s/.*\(@executable_path[^ ]*\).*/\1/p'`; do myid=`echo -n $j | sed "s,@executable_path,$FF_DIR,"`
$DEBUG install_name_tool -id $myid $i
$DEBUG install_name_tool -change $j $myid $i
done
done
for i in `find components extensions plugins -name \*dylib`; do for j in `otool -L $i | sed -n '/.*@executable_path/s/.*\(@executable_path[^ ]*\).*/\1/p'`; do myid=`echo -n $j | sed "s,@executable_path,$FF_DIR,"`
$DEBUG install_name_tool -change $j $myid $i
done
done


of course, if you paste this into a file and run it and it wrecks your stuff, consider yourself having been warned.