summaryrefslogtreecommitdiff
path: root/cross/build-rootfs.sh
diff options
context:
space:
mode:
Diffstat (limited to 'cross/build-rootfs.sh')
-rwxr-xr-xcross/build-rootfs.sh84
1 files changed, 84 insertions, 0 deletions
diff --git a/cross/build-rootfs.sh b/cross/build-rootfs.sh
new file mode 100755
index 0000000000..b786420405
--- /dev/null
+++ b/cross/build-rootfs.sh
@@ -0,0 +1,84 @@
+#!/usr/bin/env bash
+
+usage()
+{
+ echo "Usage: $0 [BuildArch] [UbuntuCodeName]"
+ echo "BuildArch can be: arm, arm-softfp, arm64"
+ echo "UbuntuCodeName - optional, Code name for Ubuntu, can be: trusty(default), vivid, wily. If BuildArch is arm-softfp, UbuntuCodeName is ignored."
+
+ exit 1
+}
+
+__UbuntuCodeName=trusty
+
+__CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+__InitialDir=$PWD
+__BuildArch=arm
+__UbuntuArch=armhf
+__UbuntuRepo="http://ports.ubuntu.com/"
+__UbuntuPackagesBase="build-essential libunwind8-dev gettext symlinks liblttng-ust-dev libicu-dev"
+__UbuntuPackages="$__UbuntuPackagesBase"
+if [ -z "$LLVM_ARM_HOME" ]; then
+ __LLDB_Package="lldb-3.6-dev"
+fi
+__MachineTriple=arm-linux-gnueabihf
+__UnprocessedBuildArgs=
+for i in "$@"
+ do
+ lowerI="$(echo $i | awk '{print tolower($0)}')"
+ case $lowerI in
+ -?|-h|--help)
+ usage
+ exit 1
+ ;;
+ arm)
+ __BuildArch=arm
+ __UbuntuArch=armhf
+ __UbuntuPackages="$__UbuntuPackagesBase $__LLDB_Package"
+ __MachineTriple=arm-linux-gnueabihf
+ ;;
+ arm64)
+ __BuildArch=arm64
+ __UbuntuArch=arm64
+ __UbuntuPackages="$__UbuntuPackagesBase"
+ __MachineTriple=aarch64-linux-gnu
+ ;;
+ arm-softfp)
+ __BuildArch=arm-softfp
+ __UbuntuArch=armel
+ __UbuntuRepo="http://ftp.debian.org/debian/"
+ __UbuntuPackages="$__UbuntuPackagesBase $__LLDB_Package"
+ __MachineTriple=arm-linux-gnueabi
+ __UbuntuCodeName=jessie
+ ;;
+ vivid)
+ if [ "$__UbuntuCodeName" != "jessie" ]; then
+ __UbuntuCodeName=vivid
+ fi
+ ;;
+ wily)
+ if [ "$__UbuntuCodeName" != "jessie" ]; then
+ __UbuntuCodeName=wily
+ fi
+ ;;
+ *)
+ __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i"
+ ;;
+ esac
+done
+
+__RootfsDir="$__CrossDir/rootfs/$__BuildArch"
+
+if [[ -n "$ROOTFS_DIR" ]]; then
+ __RootfsDir=$ROOTFS_DIR
+fi
+
+umount $__RootfsDir/*
+rm -rf $__RootfsDir
+qemu-debootstrap --arch $__UbuntuArch $__UbuntuCodeName $__RootfsDir $__UbuntuRepo
+cp $__CrossDir/$__BuildArch/sources.list.$__UbuntuCodeName $__RootfsDir/etc/apt/sources.list
+chroot $__RootfsDir apt-get update
+chroot $__RootfsDir apt-get -f -y install
+chroot $__RootfsDir apt-get -y install $__UbuntuPackages
+chroot $__RootfsDir symlinks -cr /usr
+umount $__RootfsDir/*