[Samsung Galaxy Nexus] imfloflo:
Overview

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 gawk
$ sudo apt-get install diffstat
$ sudo apt-get install chrpath
$ 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 && cd webos-ports
$ 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.

Building

To configure to build for tuna (notice '.' which is actually bash 'source' command):

$ cd into-your-build-directory/webos-ports/webos-ports
$ . ./setup-env

To update metadata

$ 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

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"

I'm not in charge of this port. This thread is just here to help you, and discuss about this port made by team WEBOS-PORT.

Thanks for their work.

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.

Source and updates

: http://webos-ports.org/wiki/Galaxy_Nexus_Build_Setup