Embedding/IPCLiteAPI BeagleBoard: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Linaro oneiric multiarch cross compile mozilla qt instructions) |
||
| Line 1: | Line 1: | ||
<pre> | <pre> | ||
# based on instructions from https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/FirefoxCrossCompile | |||
# Prepare multiarch chroot | |||
sudo | sudo debootstrap --variant=buildd oneiric /home/oneiric | ||
sudo | sudo chroot /home/oneiric/ | ||
mount -t proc proc /proc | |||
apt-get update | |||
apt-get install vim bash-completion | |||
#Set up the /etc/apt/sources.list inside the chroot : | |||
echo "# use arch=amd64 if you have 32bit Linux install | |||
deb [arch=i386] http://archive.ubuntu.com/ubuntu oneiric main universe | |||
deb [arch=armel] http://ports.ubuntu.com/ubuntu-ports oneiric main universe | |||
deb-src http://archive.ubuntu.com/ubuntu oneiric main universe" > /etc/apt/sources.list | |||
#We need some packages not yet in oneiric, so we create /etc/apt/sources.list.d/linaro-maintainers.list | |||
echo "deb http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu oneiric main | |||
deb-src http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu oneiric main | |||
deb http://ppa.launchpad.net/linaro-maintainers/staging-overlay/ubuntu oneiric main | |||
deb-src http://ppa.launchpad.net/linaro-maintainers/staging-overlay/ubuntu oneiric main | |||
" > /etc/apt/sources.list.d/linaro-maintainers.list | |||
#Enable multiarch for dpkg in in /etc/dpkg/dpkg.cfg.d/multiarch | |||
echo "foreign-architecture armel" > /etc/dpkg/dpkg.cfg.d/multiarch | |||
#In /etc/apt/apt.conf.d/10local disable installing recommends: | |||
echo 'APT::Install-Recommends "0"; | |||
APT::Install-Suggests "0";' > /etc/apt/apt.conf.d/10local | |||
# Install toolchain and essentials | |||
apt-get update | apt-get update | ||
apt-get build- | apt-get install g++-arm-linux-gnueabi build-essential pkg-config unzip zip autoconf2.13 libglib2.0-dev | ||
# Install main Mozilla Qt port dependencies | |||
apt-get install libqt4-dev:armel libqt4-opengl-dev:armel libpango1.0-dev:armel libdbus-glib-1-dev:armel libasound2-dev:armel libxt-dev:armel mesa-common-dev:armel | |||
# XXX Minor trick in order to get host version of qt moc/rcc | |||
# install host qt-dev version, and backup moc/rcc/uic | |||
apt-get install libqt4-dev | |||
cp /usr/bin/moc-qt4 /tmp/ | |||
cp /usr/bin/rcc /tmp/ | |||
cp /usr/bin/uic-qt4 /tmp/ | |||
# install armel version back | |||
apt-get - | apt-get install libqt4-dev:armel libqt4-opengl-dev:armel | ||
# and replace arm version of moc/uic/rcc | |||
cp /tmp/moc-qt4 /usr/bin/moc-qt4 | |||
cp /tmp/rcc /usr/bin/rcc | |||
cp /tmp/uic-qt4 /usr/bin/uic-qt4 | |||
# Clone mozilla repository + patch queue (for IPC Embedding), better to create some folder like /build | |||
mkdir /build | |||
cd /build | |||
hg clone http://hg.mozilla.org/users/romaxa_gmail.com/mozilla_ipcembed | |||
cd mozilla_ipcembed | |||
hg clone http://hg.mozilla.org/users/romaxa_gmail.com/embedipc_queue .hg/patches | |||
hg update -C embedipc | |||
hg qpush -a | |||
# Create mozconfig | |||
vi mozconfig.cross.oneiric | |||
# and copy this content | |||
#*********************************** | |||
export PKG_CONFIG=arm-linux-gnueabi-pkg-config | |||
export CROSS_COMPILE=1 | |||
export CC=arm-linux-gnueabi-gcc | |||
export CXX=arm-linux-gnueabi-g++ | |||
export STRIP=arm-linux-gnueabi-strip | |||
export CPPFLAGS=-I/usr/include | |||
export HOST_CC=gcc | |||
export HOST_CFLAGS="-g `pkg-config --cflags glib-2.0` -L/usr/lib/i386-linux-gnu" | |||
export HOST_CXX=g++ | |||
export HOST_CXXFLAGS=-g | |||
export CFLAGS=-g | |||
export CXXFLAGS=-g | |||
export FFLAGS="-g -O2" | |||
FIX_LINK_LDFLAGS="-L/usr/lib/arm-linux-gnueabi -Wl,-rpath-link=/usr/lib/arm-linux-gnueabi -L/lib/arm-linux-gnueabi -Wl,-rpath-link=/lib/arm-linux-gnueabi -L/usr/lib/arm-linux-gnueabi/mesa-egl -Wl,-rpath-link=/usr/lib/arm-linux-gnueabi/mesa-egl" | |||
export LDFLAGS="$FIX_LINK_LDFLAGS" | |||
LDFLAGS="$FIX_LINK_LDFLAGS" | |||
ac_add_options --build=i686-linux-gnu | |||
ac_add_options --host=arm-linux-gnueabi | |||
ac_add_options --prefix=/usr | |||
ac_add_options --enable-application=mobile | |||
ac_add_options --enable-update-channel=nightly | |||
ac_add_options --enable-update-packaging | |||
ac_add_options --enable-tests | |||
ac_add_options --enable-default-toolkit=cairo-qt | |||
ac_add_options --enable-mobile-optimize | |||
ac_add_options --disable-necko-wifi | |||
ac_add_options --with-x | |||
mk_add_options CPPFLAGS=-I/usr/include | |||
mk_add_options LDFLAGS="$FIX_LINK_LDFLAGS" | |||
ac_add_options --enable-cpp-rtti | |||
export MOZ_DEBUG_SYMBOLS=1 | |||
ac_add_options --enable-debug-symbols="-gdwarf-2" | |||
export MOZILLA_OFFICIAL=1 | |||
mk_add_options PROFILE_GEN_SCRIPT=@TOPSRCDIR@/build/profile_pageloader.pl | |||
ac_add_options --enable-optimize | |||
mk_add_options MOZ_MAKE_FLAGS="-j4" | |||
mk_add_options MOZ_OBJDIR="@TOPSRCDIR@/obj-build-linaro" | |||
ac_add_options --with-arm-kuser | |||
ac_add_options --with-thumb=toolchain-default | |||
ac_add_options --with-float-abi=toolchain-default | |||
ac_add_options --with-system-zlib | |||
ac_add_options --enable-force-egl | |||
#ac_add_options --enable-debug | |||
#ac_add_options --enable-logging | |||
#*********************************** | |||
MOZCONFIG=$(pwd)/mozconfig.linaro make -f client.mk build_all | |||
</pre> | </pre> | ||
Revision as of 09:58, 10 February 2012
# based on instructions from https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/FirefoxCrossCompile # Prepare multiarch chroot sudo debootstrap --variant=buildd oneiric /home/oneiric sudo chroot /home/oneiric/ mount -t proc proc /proc apt-get update apt-get install vim bash-completion #Set up the /etc/apt/sources.list inside the chroot : echo "# use arch=amd64 if you have 32bit Linux install deb [arch=i386] http://archive.ubuntu.com/ubuntu oneiric main universe deb [arch=armel] http://ports.ubuntu.com/ubuntu-ports oneiric main universe deb-src http://archive.ubuntu.com/ubuntu oneiric main universe" > /etc/apt/sources.list #We need some packages not yet in oneiric, so we create /etc/apt/sources.list.d/linaro-maintainers.list echo "deb http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu oneiric main deb-src http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu oneiric main deb http://ppa.launchpad.net/linaro-maintainers/staging-overlay/ubuntu oneiric main deb-src http://ppa.launchpad.net/linaro-maintainers/staging-overlay/ubuntu oneiric main " > /etc/apt/sources.list.d/linaro-maintainers.list #Enable multiarch for dpkg in in /etc/dpkg/dpkg.cfg.d/multiarch echo "foreign-architecture armel" > /etc/dpkg/dpkg.cfg.d/multiarch #In /etc/apt/apt.conf.d/10local disable installing recommends: echo 'APT::Install-Recommends "0"; APT::Install-Suggests "0";' > /etc/apt/apt.conf.d/10local # Install toolchain and essentials apt-get update apt-get install g++-arm-linux-gnueabi build-essential pkg-config unzip zip autoconf2.13 libglib2.0-dev # Install main Mozilla Qt port dependencies apt-get install libqt4-dev:armel libqt4-opengl-dev:armel libpango1.0-dev:armel libdbus-glib-1-dev:armel libasound2-dev:armel libxt-dev:armel mesa-common-dev:armel # XXX Minor trick in order to get host version of qt moc/rcc # install host qt-dev version, and backup moc/rcc/uic apt-get install libqt4-dev cp /usr/bin/moc-qt4 /tmp/ cp /usr/bin/rcc /tmp/ cp /usr/bin/uic-qt4 /tmp/ # install armel version back apt-get install libqt4-dev:armel libqt4-opengl-dev:armel # and replace arm version of moc/uic/rcc cp /tmp/moc-qt4 /usr/bin/moc-qt4 cp /tmp/rcc /usr/bin/rcc cp /tmp/uic-qt4 /usr/bin/uic-qt4 # Clone mozilla repository + patch queue (for IPC Embedding), better to create some folder like /build mkdir /build cd /build hg clone http://hg.mozilla.org/users/romaxa_gmail.com/mozilla_ipcembed cd mozilla_ipcembed hg clone http://hg.mozilla.org/users/romaxa_gmail.com/embedipc_queue .hg/patches hg update -C embedipc hg qpush -a # Create mozconfig vi mozconfig.cross.oneiric # and copy this content #*********************************** export PKG_CONFIG=arm-linux-gnueabi-pkg-config export CROSS_COMPILE=1 export CC=arm-linux-gnueabi-gcc export CXX=arm-linux-gnueabi-g++ export STRIP=arm-linux-gnueabi-strip export CPPFLAGS=-I/usr/include export HOST_CC=gcc export HOST_CFLAGS="-g `pkg-config --cflags glib-2.0` -L/usr/lib/i386-linux-gnu" export HOST_CXX=g++ export HOST_CXXFLAGS=-g export CFLAGS=-g export CXXFLAGS=-g export FFLAGS="-g -O2" FIX_LINK_LDFLAGS="-L/usr/lib/arm-linux-gnueabi -Wl,-rpath-link=/usr/lib/arm-linux-gnueabi -L/lib/arm-linux-gnueabi -Wl,-rpath-link=/lib/arm-linux-gnueabi -L/usr/lib/arm-linux-gnueabi/mesa-egl -Wl,-rpath-link=/usr/lib/arm-linux-gnueabi/mesa-egl" export LDFLAGS="$FIX_LINK_LDFLAGS" LDFLAGS="$FIX_LINK_LDFLAGS" ac_add_options --build=i686-linux-gnu ac_add_options --host=arm-linux-gnueabi ac_add_options --prefix=/usr ac_add_options --enable-application=mobile ac_add_options --enable-update-channel=nightly ac_add_options --enable-update-packaging ac_add_options --enable-tests ac_add_options --enable-default-toolkit=cairo-qt ac_add_options --enable-mobile-optimize ac_add_options --disable-necko-wifi ac_add_options --with-x mk_add_options CPPFLAGS=-I/usr/include mk_add_options LDFLAGS="$FIX_LINK_LDFLAGS" ac_add_options --enable-cpp-rtti export MOZ_DEBUG_SYMBOLS=1 ac_add_options --enable-debug-symbols="-gdwarf-2" export MOZILLA_OFFICIAL=1 mk_add_options PROFILE_GEN_SCRIPT=@TOPSRCDIR@/build/profile_pageloader.pl ac_add_options --enable-optimize mk_add_options MOZ_MAKE_FLAGS="-j4" mk_add_options MOZ_OBJDIR="@TOPSRCDIR@/obj-build-linaro" ac_add_options --with-arm-kuser ac_add_options --with-thumb=toolchain-default ac_add_options --with-float-abi=toolchain-default ac_add_options --with-system-zlib ac_add_options --enable-force-egl #ac_add_options --enable-debug #ac_add_options --enable-logging #*********************************** MOZCONFIG=$(pwd)/mozconfig.linaro make -f client.mk build_all