canmove, Confirmed users
1,584
edits
(→Create a mozconfig: export MOZ_SERVICES_SYNC=1) |
(build non-XULRunner by default) |
||
Line 1: | Line 1: | ||
== Building [[Fennec | == Building [[Fennec]] == | ||
=== Install and run Scratchbox (Maemo only) === | === Install and run Scratchbox (Maemo only) === | ||
Line 25: | Line 25: | ||
<pre> | <pre> | ||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../objdir | |||
ac_add_options --enable-application=mobile | |||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../ | |||
# | # For improved compile speeds, all optional. | ||
#mk_add_options MOZ_MAKE_FLAGS=-j4 | |||
#mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../fennec-e10s | |||
#export CCACHE_HARDLINK=1 | |||
#ac_add_options --with-ccache=ccache | |||
export | # Make a debug build, optional. | ||
#export MOZ_DEBUG_SYMBOLS=1 | |||
#ac_add_options --enable-debug | |||
#ac_add_options --disable-optimize | |||
# | # Needed on Win32 to fix problem with Windows Vista SDK | ||
#ac_add_options --disable-accessibility | |||
#################################################### | #################################################### | ||
Line 47: | Line 50: | ||
# Enabling --with-arm-kuser implies Linux on ARM and enables kernel | # Enabling --with-arm-kuser implies Linux on ARM and enables kernel | ||
# optimizations for that platform | # optimizations for that platform | ||
ac_add_options --with-arm-kuser | |||
# cs2007q3 gcc 4.2 is busted, we think, and doesn't | # cs2007q3 gcc 4.2 is busted, we think, and doesn't | ||
Line 57: | Line 60: | ||
See [https://developer.mozilla.org/en/Configuring_Build_Options Configuring Build Options] for more information about customizing your build settings. | See [https://developer.mozilla.org/en/Configuring_Build_Options Configuring Build Options] for more information about customizing your build settings. | ||
=== Build | === Build === | ||
In the mozilla-central directory: | In the mozilla-central directory: | ||
<pre> | <pre> | ||
make -f client.mk build | make -f client.mk build | ||
</pre> | </pre> | ||
The build will appear in ../ | The build will appear in ../objdir (or whatever MOZ_OBJDIR is set to in your mozconfig). | ||
== Running Fennec == | == Running Fennec == | ||
Line 69: | Line 71: | ||
=== Desktop === | === Desktop === | ||
cd ../objdir/dist/bin | |||
cd ../ | ./fennec | ||
./fennec | |||
You may want to add the $MOZ_OBJDIR/dist/bin directory to your shell's $PATH so you can just type "fennec" anywhere. | |||
You may want to add the $MOZ_OBJDIR | |||
=== Maemo === | === Maemo === | ||
If you did the above in a [[Mobile/Build/cs2007q3|Maemo Scratchbox]] for the CHINOOK_ARMEL target, you can run the build on the N800/N810 device. | If you did the above in a [[Mobile/Build/cs2007q3|Maemo Scratchbox]] for the CHINOOK_ARMEL target, you can run the build on the N800/N810 device. | ||
Create a Fennec tarball: | Create a Fennec tarball: | ||
cd ../ | cd ../objdir/mobile/ | ||
make package | make package | ||
You'll now have a tarball in | You'll now have a tarball in objdir/dist/ named fennec-1.1b2pre.en-US.linux-arm.tar.bz2. (you'll probably want to run bunzip2 on it first, since Maemo doesn't include it): | ||
cd dist | cd dist | ||
Line 99: | Line 101: | ||
./fennec/fennec | ./fennec/fennec | ||
==Building Fennec with | == Building Fennec with XULRunner == | ||
Fennec is normally built as a standalone app, but it can also run under [[XULRunner]]. Note that this is not fully supported, and some things may work differently in XULRunner builds. | |||
===Get the source=== | ===Get the source=== | ||
Follow the steps from [[#Pulling the code from hg]] | Follow the steps from [[#Pulling the code from hg]] | ||
Line 111: | Line 113: | ||
# Options for client.mk. | # Options for client.mk. | ||
mk_add_options MOZ_BUILD_PROJECTS="xulrunner mobile" | mk_add_options MOZ_BUILD_PROJECTS="xulrunner mobile" | ||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../ | mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../objdir | ||
# XULRunner options | |||
ac_add_app_options xulrunner --enable-application=xulrunner | |||
ac_add_app_options xulrunner --disable-javaxpcom | |||
export MOZ_SERVICES_SYNC=1 # Enable Firefox Sync for XULRunner builds. | |||
# mobile options | |||
ac_add_app_options mobile --enable-application=mobile | |||
ac_add_app_options mobile --with-libxul-sdk=../xulrunner/dist | |||
# For improved compile speeds, all optional. | |||
#mk_add_options MOZ_MAKE_FLAGS=-j4 | |||
#mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../fennec-e10s | |||
#export CCACHE_HARDLINK=1 | |||
#ac_add_options --with-ccache=ccache | |||
ac_add_options | # Make a debug build, optional. | ||
ac_add_options | #export MOZ_DEBUG_SYMBOLS=1 | ||
#ac_add_options --enable-debug | |||
#ac_add_options --disable-optimize | |||
</pre> | </pre> | ||
Note: if you are building for x86 ubuntu, you might want to add "ac_add_options --disable-dbus" to your mozconfig, or obtain the necessary dbus libraries. | Note: if you are building for x86 ubuntu, you might want to add "ac_add_options --disable-dbus" to your mozconfig, or obtain the necessary dbus libraries. | ||
===Build=== | === Build === | ||
make -f client.mk build | make -f client.mk build | ||
=== Run === | |||
cd ../objdir/mobile/dist/bin | |||
./fennec | |||
=== Using the Gecko SDK=== | |||
Rather than build XULRunner yourself, you can use the Gecko SDK. First download and extract the SDK from http://ftp.mozilla.org/pub/xulrunner/nightly/latest-trunk/ | |||
Use the following mozconfig file, using the correct path to the SDK you downloaded and extracted: | |||
# Options for client.mk. | |||
mk_add_options MOZ_BUILD_PROJECTS="xulrunner mobile" | |||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../mobilebase | |||
ac_add_options --enable-application=mobile | |||
ac_add_options --with-libxul-sdk=/PATH/TO/SDK | |||
ac_add_options --with-system-libxul | |||
== Building Win32 == | |||
Start by setting up your system with the needed SDKs. This means Visual Studio 2008 and the Vista SDK. | |||
Check out the source and create a mozconfig following the instructions above. Be sure to add or uncomment this line: | |||
ac_add_options --disable-accessibility | |||
ac_add_options --disable-accessibility | |||
Then use the commands | Then use the commands | ||
configure | |||
configure | make -f client.mk build | ||
make -f client.mk build | |||
Don't panic if configure fails; the make will rerun it with the right options to allow this to work. | Don't panic if configure fails; the make will rerun it with the right options to allow this to work. |