Building PreFox

These instructions assume familiarity with compiling Firefox or a similar Mozilla application already. If you don’t know how to do that then a good first step would be to learn how.

Building PreFox is currently only possible on OSX. There are some attempts in the patches to make building on Windows possible but that isn’t yet complete.

Install the Palm SDK

You need to download and install the Palm SDK. These instructions assume it is installed in the default location of /opt/PalmSDK and /opt/PalmPDK.

Get the source code and patches

The following code pulls mozilla-central and mobile-browser and the PreFox patches for them. It uses specific revisions of the source code where the patches are known to apply and build. Newer revisions can be experimented with however changes are likely to be needed for the patches.

You could just run all these commands from the terminal or adapt them to your needs.

hg clone https://hg.mozilla.org/mozilla-central/ prefox
cd prefox
hg update -C 4405a670d699
hg clone https://www.fractalbrew.com/hg/projects/prefox-trunk/ .hg/patches
hg qpush widget
hg clone https://hg.mozilla.org/mobile-browser mobile
cd mobile
hg update -C e5ba36c0a65c
hg clone https://www.fractalbrew.com/hg/projects/prefox-mobile/ .hg/patches
hg qpush jit
cd ..

Configure the build

The following is a basic mozconfig that should get you building:

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-prefox
ac_add_options --enable-application=mobile
ac_add_options --enable-optimize
ac_add_options --disable-installer
ac_add_options --disable-crashreporter
ac_add_options --target=arm-palm-eabi
ac_add_options --disable-tests

Build PreFox

Building just involves the usual command:

make -f client.mk build

Once complete you can just copy the files from prefox/dist/bin to the device and execute it directly for debugging.

Create the package

Once the build completes you can create the ipk file for distribution:

make -C objdir-prefox/embedding/webos installer

And if you have a Palm device plugged into the USB port you can install the ipk file directly with:

make -C objdir-prefox/embedding/webos deploy