Galaxy Nexus Build Setup
The following steps will help you to setup a complete build environment for the webos-ports project.
WE DO NOT CURRENTLY SUPPORT webos-image PLEASE BUILD webos-dev-image
Setup the build environment
$ sudo apt-get install build-essential $ sudo apt-get install gawk $ sudo apt-get install diffstat $ sudo apt-get install chrpath S sudo apt-get install texinfo(if not on Ubuntu or Debian it will be makinfo instead of texinfo) $ cd into-your-build-directory $ mkdir webos-ports-env && cd webos-ports-env $ wget https://raw.github.com/openwebos/build-webos/master/scripts/prerequisites.sh $ sudo sh prerequisites.sh $ wget https://raw.github.com/webOS-ports/webos-ports-setup/master/Makefile $ make setup-webos-ports
Before you can build, you will need some tools. If you try to build without them, bitbake will fail a sanity check and tell you about what's missing, but not really how to get the missing pieces.
This has been tested on Gentoo (shr-chroot) and Ubuntu-12.04 amd64 and should work almost everywhere where valid toolchain is provided.
You need a lot of RAM to link webkit-webos, make sure you have at least 6GB (it's OK when some of that is swap, because it's used only for short part of build). Webkit needs so much ram to link because it's linking with debug symbols (huge files) which are stripped later in do_package after creating -dbg packages.
You can add extra 2GB of swap file like this:
$ dd if=/dev/zero of=swap_2gb.img bs=1024k count=2048 $ mkswap swap_2gb.img $ sudo swapon swap_2gb.img
If you want it permanently add it to your /etc/fstab.
Make sure you're _not_ root, as the build will fail. If you SU in the middle, don't forget to set up env afresh (. setup-env)
To configure to build for Tuna (notice '.' which is actually bash 'source' command):
$ cd into-your-build-directory/webos-ports-env/webos-ports $ . setup-env
To update metadata
# go one level up to the webos-ports-env dir $ cd .. $ make update # or if it shows warning about different bblayers.conf or layers.txt $ make update-conffiles && make update # you can also add UPDATE_CONFFILES_ENABLED = 1 to config.mk # if you never want to have any uncommited changes in your checkouts RESET_ENABLED = 1 in config.mk
# go back to the webos-ports dir to continue with the build process $ cd webos-ports
To build the webos-image for the gnex device:
$ MACHINE=tuna bb webos-ports-image # or for the webos development image $ MACHINE=tuna bb webos-ports-dev-image
If you get an error about missing qmake-palm, try this:
$ MACHINE=tuna bitbake -c cleansstate -f qt4-webos
If you get an error about missing QtWebKit #261, try this:
$ MACHINE=tuna bitbake -c cleansstate -f webkit-webos
If you get an error "The BBPATH variable is not set", then you forgot to call:
$ . setup-env
After the build completes, you will find your image in <build env>/tmp-eglibc/deploy/images/tuna/
Speeding up the build
You can tune bitbake to use more of your processor. Edit webos-ports/conf/local.conf and uncomment the PARALLEL_MAKE and BB_NUMBER_THREADS lines. PARALLEL_MAKE should be set to the number of processor cores you have (or the number you have made available to the VM in the case of a VM) and BB_NUMBER_THREADS can be set from one to two times that, depending upon RAM, processor speed, other tasks running and Hyper-threading support. Example values:
PARALLEL_MAKE = "-j 4" BB_NUMBER_THREADS = "4"
Installing and running the image
Once you have built the image, you'll likely want to install it and run it on your Nexus. See Testing Gnex for further details on that process.