Mobile/Build/Fennec: Difference between revisions

refactor
(autoconf was fixed in bug 450948, not sure why these other options are here)
(refactor)
Line 1: Line 1:
==Building Fennec and Xulrunner==
==Building Fennec and Xulrunner==
If you want to cross-compile Fennec and Xulrunner for ARM devices, you should first [[Mobile/Build/cs2007q3|set up scratchbox]].


pull the code from hg
===Pulling the code from hg===
<pre>
<pre>
hg clone http://hg.mozilla.org/mozilla-central
hg clone http://hg.mozilla.org/mozilla-central
Line 8: Line 9:
</pre>
</pre>


Your mozconfig should look like this:
===Creating a mozconfig===
Here's an example mozconfig for building in scratchbox. The LDFLAGS, with-arm-kuser, and disable-tests options should be removed if you're building outside of scratchbox (for x86).


<pre>
<pre>
# cs2007q3 gcc 4.2 is busted, we think, and doesn't
# cs2007q3 gcc 4.2 is busted, we think, and doesn't
# look in the expected places. --dougt.
# look in the expected places. --dougt.
Line 41: Line 42:
</pre>
</pre>


make sure you have libIDL:
===libIDL===
 
libIDL is required.
If building for Maemo in Scratchbox, follow the [[Maemo_Build_Instructions#Building_libIDL|instructions]] from the Maemo Build page,  and remember to set your PKG_CONFIG_PATH environment variable.


then build:
*I think the [[Mobile/Build/cs2007q3|latest scratchbox instructions]] include a step to obtain libIDL, so building it yourself shouldn't be necessary. If that's wrong, there are instructions for building libIDL in scratchbox [https://wiki.mozilla.org/index.php?title=Mobile/Build/Maemo_Build_Instructions&oldid=117369#Building_libIDL here]. If you follow those steps you must also set the PKG_CONFIG_PATH environment variable. [[User:GavinSharp|GavinSharp]]


===Start the build===
<pre>
<pre>
make -f client.mk build
make -f client.mk build
</pre>
</pre>


=== Running Fennec on Maemo ===
== Running Fennec on Maemo ==
If you did the above in a [[Maemo_Build_Instructions|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:
Line 72: Line 73:


==Building Fennec with the Gecko SDK==
==Building Fennec with the Gecko SDK==
 
===Download SDK===
First download the appropriate Gecko SDK from [ftp://ftp.mozilla.org/pub/xulrunner/nightly/latest-trunk/]
First download the appropriate Gecko SDK from [ftp://ftp.mozilla.org/pub/xulrunner/nightly/latest-trunk/]


===Get the source===
Follow the steps from [[#Pulling the code from hg]]


Then pull Mozilla (for the build system) Fennec from hg
===Creating a mozconfig===
<pre>
hg clone http://hg.mozilla.org/mozilla-central
cd mozilla-central
hg clone http://hg.mozilla.org/mobile-browser mobile
</pre>
 
 
 
Your mozconfig should look like this:
 
<pre>
<pre>
# 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@/objdir-fennec
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-fennec


ac_add_options  --enable-application=mobile
ac_add_options  --enable-application=mobile
ac_add_options  --with-libxul-sdk=<path to the SDK you downloaded and extracted>
ac_add_options  --with-libxul-sdk=<path to the SDK you downloaded and extracted>
</pre>
</pre>
Note: if you are building for x86 ubuntu, you will want to add "ac_add_options --disable-dbus" to your mozconfig


And finally, build
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===
<pre>
<pre>
make -f client.mk build
make -f client.mk build
</pre>
</pre>
Confirmed users, Bureaucrats and Sysops emeriti
722

edits