Start
I previous compiled and ran a tarball version of firefox
This is what I did to compile firefox from scratch the
See:I opened the documentation
I Ran Terminal.app; now I gotta get the source
$ rm -rf moz_src $ mkdir moz_src $ cd moz_src $ mkdir learncompile $ cd learncompile/ $ cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/client.mk $ cd mozilla/ $ make -f client.mk checkout MOZ_CO_PROJECT=browser checkout start: Mon Sep 17 17:34:54 EDT 2007 ... checkout finish: Mon Sep 17 17:40:07 EDT 2007
Ok the source is retreived; now I gotta run configure my compile options See:Configs
$ pwd /Users/coren/moz_src/learncompile/mozilla $ pico mozconfig-firefox
The following is what I put in the mozconfig-firefox file
mk_add_options MOZ_BUILD_PROJECTS=browser mk_add_options MOZ_CO_PROJECT=browser mk_add_options MOZ_OBJDIR=/Users/coren/moz_ff_trunk/ ac_add_options --enable-application=browser ac_add_options --disable-optimize ac_add_options --enable-debug ac_add_options --enable-static
Save; Exit
$ export MOZCONFIG=~/moz_src/learncompile/mozilla/mozconfig-firefox $ make -f client.mk build
Now Mozilla compies; watch a bit of TV; oh sadness... a bug
/usr/bin/ld: Undefined symbols: __moz_cairo_image_surface_create __moz_cairo_surface_destroy __moz_cairo_surface_get_reference_count __moz_cairo_surface_reference __moz_cairo_surface_set_user_data __moz_cairo_surface_finish __moz_cairo_surface_flush __moz_cairo_surface_get_content __moz_cairo_surface_get_device_offset __moz_cairo_surface_get_type __moz_cairo_surface_get_user_data __moz_cairo_surface_mark_dirty __moz_cairo_surface_mark_dirty_rectangle __moz_cairo_surface_set_device_offset __moz_cairo_surface_status __moz_cairo_image_surface_create_for_data __moz_cairo_image_surface_get_data __moz_cairo_image_surface_get_format __moz_cairo_image_surface_get_height __moz_cairo_image_surface_get_stride __moz_cairo_image_surface_get_width __moz_cairo_quartz_surface_create __moz_cairo_quartz_surface_create_for_cg_context __moz_cairo_quartz_surface_get_cg_context symbol _libVersionPoint used from dynamic library ../../../dist/bin/libnspr4.dylib(prvrsion.o) not from earlier dynamic library @executable_path/libplds4.dylib(plvrsion.o) symbol _libVersionPoint used from dynamic library ../../../dist/bin/libnspr4.dylib(prvrsion.o) not from earlier dynamic library @executable_path/libplc4.dylib(plvrsion.o) collect2: ld returned 1 exit status make[7]: *** [gfxSurfaceRefCountTest] Error 1 make[6]: *** [tools] Error 2 make[5]: *** [tools] Error 2 make[4]: *** [tools_tier_gecko] Error 2 make[3]: *** [tier_toolkit] Error 2 make[2]: *** [default] Error 2 make[1]: *** [build] Error 2 make: *** [build] Error 2
ok I changed the mozconfig-firefox to this
mk_add_options MOZ_OBJDIR=/Users/coren/moz_ff_trunk/ ac_add_options --enable-application=browser ac_add_options --disable-optimize ac_add_options --enable-debug ac_add_options --disable-static --enable-shared
... deleted /Users/coren/moz_ff_trunk/ ... and recompiled
... compiled a file called MinefieldDebug.app, which ran fine
DONE