Compiling Firefox
From PepperWiki
home equity loan interest rates m203 lost in the barrens movie review housewives bending over boys american electorate answer machine www.pmusa.com asain fuck designer imitation handbag obscure video sony ericsson t60 t61 t62 accessory speech to text software successful presentations quality assurance software revenge of the nerds movie pictures aids drugs south africa kingdom hearts vol 3 bulma and 18 map audio video system michigan graffiti tags the phantom of the opera movie soundtrack listen next star war movie lancia y tuning racy advertising end user licensing agreement glider rocker polypropylene bags inspirational wall tapestries jayna oso movies workplace big five profile gay black ass employer state statute http action class law lipitor suit llama packing sigsauer url christmas cards pirujas video metabolife without ephedra movie review web sites personal check designs asian hardcore free movie xxx spice girls music video download aaron sanchez new edition hot 2nite video defensive driving dallas russian fucking sorbent brooklyn bounce mp3 tahiti surf smoked meat recipes honda generator kid plus series snowboard video bbw bdsm top paola rey jenson marine stereo good vibrations rage against the machines sabrina maui video anna nicole smith fucked easy cash loan robert gordon university pharmacy acyclovir and dosage merchandising licence of fifa 2006 in india lets wrestle video one twelve online collectibles stores domain bellsouth home page precollege lovely anne videos jamaica all inclusive page rapid eye movies audio mp3 maker 1.16 serial french whore free motorola programmable ringtone harold lloyd sexy college girls webmap jetdirect 300x reset pitbull steering damper japanese porn video sitemap link end of summer anime torrent free samsung keypress ringtone orsolya red giant today court cases after clomid fsh high epitaph ringtones lisa gier king video plumper video valium ativan island lifestyle marshall female german shepherds phone systems estimate addict after before drug picture juelz santana there it go music video code page mountain bike training video locker room video voyeur girls jewel osco drugs adderall halflife ivy manor torrent asian cum swallowers college girls are easy movie make up kits percocet online pharmacy side effects for the drug adderall runescape pickaxe handle mothers day gift ideas unique office xp sp3 activation crack movie sound bytes mp3 university of minnesota duluth miko tan webmap missles australian college of pharmacy practice management kungfu hustle movie spirit airline fare malayalam song ringtones yu rc aircraft video clips naked mile water lilies print tomb raider nude cedar furniture evs video.de nude friends last dance with mary jane video pirated umd portage glacier visitor center alias torrent season 4 page because i could not stop for death mobile fax cracked edit free full software video martinsville speedway vidasa drug 2003 studio tool visual pal video sizes simply accounting pro 2005 crack kapalua villas gay celebrities starfish respiratory system video bios version is there anywhere to buy emergency contraception on sunday mack mixer trucks railroad tycoon 3 no cd mac professor shows video of man having sex with pig sonny movie photokit sharpener crack wrestlingattitude.com domain associated spring input video group http asian man fuck whites bollywood movies lil kim uncensored music video strict headmistress living end videos hilary duff fly matt skiba auction sentry deluxe 1.2 crack history book california ass lick papa smurf video white buffalo international online pharmacy no rx no membership sensual stripping create ringtones from mp3s pruneyard movie theater 360 degree feedback survey mishap video pest patrol video honeys links 2007 nissan review sentra naked goku point reyes light custom guitars sixflags url naakt meiden moviesection sam-e and adderall sonic solutions mydvd video suite review url quia.com rr squeeze music videos movie new quentin tarantino papillon rose bittorrent redwood real estate movie with a hotel made of ice snowboarding video clips namo webeditor 6 suite crack 2600 ringtones rocki roads movie and1 mix tape videos australian cannabis acid music number serial studio webmap gay teen boys free injury lawyer virginia west cancer-treatment affect amoxicillin book com guest side site site page ringtone universe virus 1965 ford falcon engine fault analyzer mortgage internet leads bcit painted license plates chicken anatomy maxxim prn movie url nude cartoon galleries free phone ringtone sent sprint reservoir dog movie poster allopathic drugs movie sm club car golf carts tucson mini storage units meadors court reporting cedar point discount tickets residential property buffy vampire slayer mortuary shipping movie trilogies kid pirate costume movie song lyric lisinopril jarrod mccracken tackle video settees wicker trunks manatee video ed edd eddy movies movie actors lists arroyo grande movie theater http taxi limousine shuttle english movie song nelly tip drill music video uncensored woman getting whipped new mexico auto dealers license wholesome king charles spaniel puppies for sale uk laser projector video watch the simpsons online now movie sneak preview tickets pdf toolbox crack reg movie delia smith recipe nero express 6 serial number crack symptoms of low testosterone 5.25 floppy diskettes management network umbrella licensed alcohol and drug addiction treatment faci us geological survey strap on videos victorian corsets acoustic music video king kong movie characters mother daughter sex video dean martin songs alabama state license plates tee shirt oregon wine cheap flight list lee jean wellbutrin side effect airline flight ticket 50lb barnett commando crossbow pistol ski switzerland geneva msngames simple plan music video codes magnetic rulers link peanut collection braided wool rugs polypropylene calendars timberwest one piece torrent kaizoku rate my toe breitling watch page web url street map of pune india man mega movie x imovie importing mpeg learning software realvideo encoder 1.0 This is what I did to compile Firefox 1.5 on the PepperPad. I've never compiled Firefox before and this was long and painful for me, so hopefully this can help anyone in a similar situation.
Of course, the PepperPad comes with a built version of Firefox, but I needed to use the html <canvas> element for playing with dynamic graphics drawing, and it seems the built-in Firefox did not have the canvas element - the about:buildconfig shows that the canvas option was not enabled. So I wanted to do a new build that had the canvas support.
Contents |
[edit] Steps to build Firefox
- Firstly, get the Firefox source. I got the 1.5.0.3 build at
Extract it somewhere. I put in the root home directory at first, but the compiler complained with "no such file or directory" errors when it used the "touch" command during the build. Maybe it had trouble expanding the path "~/" tilde character, because the errors went away once I moved the source to /home/mozilla.
- Make a .mozconfig file to configure the build. I made one that had:
- all the configure/build options from the built-in Firefox (by looking at about:buildconfig - very useful!)
- plus "--enable-canvas" to add canvas support
- plus "--enable-chrome-format=flat" to avoid building jars (for building chrome stuff). During the build process it always crashed on building jars - it seems the built-in "zip" utility (minizip?) was only able to create new jars, and couldn't add files to an existing jar, and that didn't work for building Firefox
The .mozconfig I used is shown at the bottom of this page.
It might be handy to have a quick look at the file (with vi or cat or something) to make sure the file doesn't have funny line endings (at first I had some weird characters on the ends).
Put the .mozconfig in your HOME directory, or set the MOZCONFIG environment variable to point to the file.
- Make sure all the necessary RPMs are installed for compiling. I installed these RPMs (from /opt/montavista/pro/devkit/arm/xscale_le/packages/pro):
- gcc-3.3.1-3.0.13.0400526.arm_xscale_le.mvl
- glibc-dev-2.3.2-25.0.27.0500612.arm_xscale_le.mv
- g++-3.3.1-3.0.13.0400526.arm_xscale_le.mvl
- libstdc++5
- libstdc++5-dev
- glib-dev
Install using:
rpm -Uvh [package-file]
- Install and set up pkg-config: (otherwise the build complains pkg-config is missing)
- Install pkg-config from http://pkgconfig.freedesktop.org/releases/ (I got pkg-config-0.20.tar.gz)
- Set the pkg-config environment variable so pkg-config can find the GTK library and pkgconfig files:
export PKG_CONFIG_PATH=/opt/fdo/lib/pkgconfig:/opt/gtk/lib/pkgconfig:/usr/lib/pkgconfig
- If you build now, pkgconfig will complain it can't find the libIDL config files. So create a file "libIDL-2.0.pc" in /usr/lib/pkgconfig (or somewhere in the PKG_CONFIG_PATH). The libIDL-2.0.pc I used is at the bottom of this page (it's just copied from the normal pkgconfig).
- Download the libIDL source from http://andrewtv.org/libIDL/ to get the IDL.h file from the source distribution. Make a directory /usr/lib/libIDL and copy IDL.h to /usr/lib/libIDL/IDL.h
- Install and set up libiconv (otherwise it says it can't find libiconv.so)
- Install libiconv from http://www.gnu.org/software/libiconv/
- Set these environment variables:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib (this has to be set when running firefox too!) export LDFLAGS="-L/usr/local/lib -liconv" (otherwise it had problems finding libiconv)
- Edit fpkcs11t.h at mozilla/security/nss/lib/fortcrypt/fpkcs11t.h - it seems at line 329, this file has a bunch of weird characters (blocks, strange encoded characters) inside a comment. Just delete all the weird characters so that it's a normal comment. Otherwise the build complains about stray characters.
Now, finally, the build might work (cross your fingers). So move to the source root directory and have a go:
make -f client.mk build
It took over 8 hours to build it (I stopped waiting around after 8 hours). I hope that's not normal...
[edit] Running the new build
For me the easiest thing was to put something like this into the ~/.bashrc file so you don't have to set the paths every time:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib alias ff="/home/mozilla/ff-opt-static/dist/bin/firefox" (or where ever the build is)
Then you can just type "ff" at the prompt to run the freshly built firefox. :)
The application takes a little while to start up ... maybe 30 seconds or more.
[edit] Config files
[edit] .mozconfig file
. $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt-static mk_add_options MOZ_CO_PROJECT=browser mk_add_options CFLAGS="-Wall -W -Wno-unused -Wpointer-arith -Wcast-align -Wno-long-long -pthread -pipe" mk_add_options CXXFLAGS="-fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverload-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pthread -pipe -I/opt/fdo/include -Wnodeprecated" ac_add_options --target=arm-linux ac_add_options --x-includes=/opt/fdo/include ac_add_options --x-libraries=/opt/fdo/lib ac_add_options --enable-default-toolkit=gtk2 ac_add_options --disable-profilelocking ac_add_options --enable-xft ac_add_options --disable-freetype2 ac_add_options --enable-x11-shm ac_add_options "--enable-optimize=-O4 -mtune=xscale" ac_add_options --disable-debug ac_add_options --disable-accessibility ac_add_options --disable-composer ac_add_options --disable-activex ac_add_options --disable-installer ac_add_options --disable-updater ac_add_options --disable-activex-scripting ac_add_options --disable-ldap ac_add_options --disable-calendar ac_add_options --disable-mailnews ac_add_options --disable-tests ac_add_options --disable-logging ac_add_options --disable-mathml ac_add_options --enable-crypto ac_add_options --disable-static ac_add_options --enable-shared ac_add_options --enable-extensions=cookie,xml-rpc,xmlextras,p3p,pref,transformiix,universalchardet,typeaheadfind,webservices ac_add_options --enable-application=browser ac_add_options --disable-gnomevfs ac_add_options --disable-gnomeui ac_add_options --without-system-nspr ac_add_options --without-system-zlib ac_add_options --without-system-jpeg ac_add_options --without-system-png ac_add_options --without-system-mng ac_add_options --enable-strip ac_add_options --enable-canvas ac_add_options --enable-chrome-format=flat
[edit] libIDL-2.0.pc
prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib
includedir=${prefix}/include
Name: libIDL
Description: IDL parsing library
Version: 2.0
Requires: glib-2.0
Libs: -L${libdir} -lIDL-2
Cflags: -I${includedir}/libIDL

