Mobile/Build/Fennec: Difference between revisions

< Mobile‎ | Build
(Redirected page to Mobile/Get Involved)
 
(36 intermediate revisions by 14 users not shown)
Line 1: Line 1:
==Building Fennec and Xulrunner==
#REDIRECT [[Mobile/Get_Involved]]


pull the code from hg
== Building [[Fennec]] ==
 
 
 
Look here for the Android build instructions
 
[[https://wiki.mozilla.org/Mobile/Fennec/Android
]]
 
 
=== Install and run Scratchbox (Maemo only) ===
If you want to cross-compile Fennec and XULRunner for Maemo, you should first [[Mobile/Build/cs2007q3|set up scratchbox]].  Scratchbox is a cross-compilation environment that you will run before compiling Fennec.
 
'''NOTE: All the following instructions assume that you are logged in to scratchbox by typing this:'''
/scratchbox/login
 
'''NOTE 2:''' When you are logged in to scratchbox, you are chroot'ed. This means that /scratchbox/users/YOUR_NAME/home/YOUR_NAME matches to your home directory inside of scratchbox which is /home/YOUR_NAME
 
=== Install build dependencies (non-Maemo) ===
 
If you are ''not'' building for Maemo/Scratchbox, follow the [https://developer.mozilla.org/En/Simple_Firefox_build "Installing build tools" instructions] for your platform.
 
=== Pull the code from Mercurial ===
<pre>
<pre>
hg clone http://hg.mozilla.org/mozilla-central
hg clone http://hg.mozilla.org/mozilla-central
cd mozilla-central
 
hg clone http://hg.mozilla.org/mobile-browser mobile
</pre>
</pre>


Your mozconfig should look like this:
=== Create a mozconfig ===
 
Create a file named "mozconfig" in the mozilla-central directory.  Here's an example mozconfig. The LDFLAGS, with-arm-kuser, and with-maemo-version options should be removed if you're building outside of scratchbox (for x86).


<pre>
<pre>
# Options for client.mk.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../objdir
mk_add_options MOZ_BUILD_PROJECTS="xulrunner mobile"
ac_add_options --enable-application=mobile
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../mobilebase
 
# For improved compile speeds, all optional.
#mk_add_options MOZ_MAKE_FLAGS=-j4
#export CCACHE_HARDLINK=1
#ac_add_options --with-ccache=ccache


# Global options
# Make a debug build, optional.
#export MOZ_DEBUG_SYMBOLS=1
#ac_add_options --enable-debug
#ac_add_options --enable-debug
#ac_add_options --disable-optimize
#ac_add_options --disable-optimize
#ac_add_options --enable-logging
#ac_cv_visibility_pragma=no


#ac_add_options --enable-timeline
# Needed on Win32 to fix problem with Windows Vista SDK
ac_add_options --disable-dbus
#ac_add_options --disable-accessibility
 
####################################################
# SCRATCHBOX ONLY: Remove everything below this line
# if you are not building in Scratchbox for Maemo.


# XULRunner options
ac_add_options --with-maemo-version=5
ac_add_app_options xulrunner --enable-application=xulrunner
ac_add_app_options xulrunner --disable-javaxpcom


# 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_app_options xulrunner --with-arm-kuser
ac_add_options --with-arm-kuser
 
# cs2007q3 gcc 4.2 is busted, we think, and doesn't
# look in the expected places. --dougt.
# $PWD/... was added due to bug 463076
export LDFLAGS="-Wl,-rpath-link,$PWD/dist/bin/:/usr/lib:/lib"
</pre>


# mobile options
See [https://developer.mozilla.org/en/Configuring_Build_Options Configuring Build Options] for more information about customizing your build settings.
ac_add_app_options mobile --enable-application=mobile
ac_add_app_options mobile --with-libxul-sdk=../xulrunner/dist


# configure will be automatically generated using the 'autoconf-2.13'
=== Build ===
# command.  If autoconf-2.13 isn't the right name for your system, as
In the mozilla-central directory:
# is the case on OS X using MacPorts, use the real command name as
<pre>
# demonstrated below.
make -f client.mk build
mk_add_options AUTOCONF=autoconf213
</pre>
</pre>
The build will appear in ../objdir (or whatever MOZ_OBJDIR is set to in your mozconfig).


make sure you have libIDL:
== Running Fennec ==


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.
=== Desktop ===


cd ../objdir/dist/bin
./fennec


then build:
You may want to add the $MOZ_OBJDIR/dist/bin directory to your shell's $PATH so you can just type "fennec" anywhere.


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


=== Running Fennec on 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 [[Maemo_Build_Instructions|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:


<code><pre>
cd ../objdir
cd ../mobilebase/mobile/
make package
make package
</pre></code>


You'll now have a tarball in mobilebase/mobile/dist/ named fennec-0.3.en-US.linux-arm.tar.bz2. Copy it to your device (you'll probably want to run bunzip2 on it first, since Maemo doesn't include it).
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):


Extract and launch from a command line (X Terminal) on the device:
cd dist
bunzip2 fennec-*.tar.bz2


<code><pre>
Connect your N900 to your computer in USB Mass Storage mode and copy the tarball to it, then unmount it and disconnect (note: you must actually disconnect the USB cable; also, be sure to close an open terminal on your N900 if you have one). The file will appear in ~/MyDocs. You can drag it in the file manager, or run something like this command:
$ tar xf fennec-0.3.en-US.linux-arm.tar
$ cd fennec
$ ./fennec
</pre></code>


==Building Fennec with the Gecko SDK==
  cp fennec-*.tar "/media/Nokia N900"
   
umount "/media/Nokia N900"
First download the appropriate Gecko SDK from [ftp://ftp.mozilla.org/pub/xulrunner/nightly/latest-trunk/]
 
 
Then pull Mozilla (for the build system) Fennec from hg
<pre>
hg clone http://hg.mozilla.org/mozilla-central
cd mozilla-central
hg clone http://hg.mozilla.org/mobile-browser mobile
</pre>


Extract and launch from a command line (X Terminal) on the device:


# Run this outside of the MyDocs directory, which is mounted noexec:
tar xvf MyDocs/fennec-*.tar
./fennec/fennec


Your mozconfig should look like this:
== Building Win32 ==


<pre>
Start by setting up your system with the needed SDKs. This means Visual Studio 2008 and the Vista SDK.
# Options for client.mk.
mk_add_options MOZ_BUILD_PROJECTS="xulrunner mobile"
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-fennec


Check out the source and create a mozconfig following the instructions above.  Be sure to add or uncomment this line:


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


Then use the commands


And finally, build
configure
make -f client.mk build


<pre>
Don't panic if configure fails; the make will rerun it with the right options to allow this to work.
make -f client.mk build
</pre>

Latest revision as of 20:43, 1 August 2017

Building Fennec

Look here for the Android build instructions

[[https://wiki.mozilla.org/Mobile/Fennec/Android ]]


Install and run Scratchbox (Maemo only)

If you want to cross-compile Fennec and XULRunner for Maemo, you should first set up scratchbox. Scratchbox is a cross-compilation environment that you will run before compiling Fennec.

NOTE: All the following instructions assume that you are logged in to scratchbox by typing this:

/scratchbox/login

NOTE 2: When you are logged in to scratchbox, you are chroot'ed. This means that /scratchbox/users/YOUR_NAME/home/YOUR_NAME matches to your home directory inside of scratchbox which is /home/YOUR_NAME

Install build dependencies (non-Maemo)

If you are not building for Maemo/Scratchbox, follow the "Installing build tools" instructions for your platform.

Pull the code from Mercurial

hg clone http://hg.mozilla.org/mozilla-central

Create a mozconfig

Create a file named "mozconfig" in the mozilla-central directory. Here's an example mozconfig. The LDFLAGS, with-arm-kuser, and with-maemo-version options should be removed if you're building outside of scratchbox (for x86).

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../objdir
ac_add_options --enable-application=mobile

# For improved compile speeds, all optional.
#mk_add_options MOZ_MAKE_FLAGS=-j4
#export CCACHE_HARDLINK=1
#ac_add_options --with-ccache=ccache

# 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

####################################################
# SCRATCHBOX ONLY: Remove everything below this line
# if you are not building in Scratchbox for Maemo. 

ac_add_options --with-maemo-version=5

# Enabling --with-arm-kuser implies Linux on ARM and enables kernel
# optimizations for that platform
ac_add_options --with-arm-kuser

# cs2007q3 gcc 4.2 is busted, we think, and doesn't
# look in the expected places. --dougt.
# $PWD/... was added due to bug 463076
export LDFLAGS="-Wl,-rpath-link,$PWD/dist/bin/:/usr/lib:/lib"

See Configuring Build Options for more information about customizing your build settings.

Build

In the mozilla-central directory:

make -f client.mk build

The build will appear in ../objdir (or whatever MOZ_OBJDIR is set to in your mozconfig).

Running Fennec

Desktop

cd ../objdir/dist/bin
./fennec

You may want to add the $MOZ_OBJDIR/dist/bin directory to your shell's $PATH so you can just type "fennec" anywhere.

Maemo

If you did the above in a Maemo Scratchbox for the CHINOOK_ARMEL target, you can run the build on the N800/N810 device.

Create a Fennec tarball:

cd ../objdir
make package

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
bunzip2 fennec-*.tar.bz2

Connect your N900 to your computer in USB Mass Storage mode and copy the tarball to it, then unmount it and disconnect (note: you must actually disconnect the USB cable; also, be sure to close an open terminal on your N900 if you have one). The file will appear in ~/MyDocs. You can drag it in the file manager, or run something like this command:

cp fennec-*.tar "/media/Nokia N900"
umount "/media/Nokia N900"

Extract and launch from a command line (X Terminal) on the device:

# Run this outside of the MyDocs directory, which is mounted noexec:
tar xvf MyDocs/fennec-*.tar 
./fennec/fennec

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

Then use the commands

configure
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.