5 echo "Usage: $0 [BuildArch] [LinuxCodeName] [lldbx.y] [--skipunmount]"
6 echo "BuildArch can be: arm(default), armel, arm64, x86"
7 echo "LinuxCodeName - optional, Code name for Linux, can be: trusty(default), vivid, wily, xenial, zesty. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
8 echo "lldbx.y - optional, LLDB version, can be: lldb3.6(default), lldb3.8, lldb3.9, lldb4.0, no-lldb"
9 echo "--skipunmount - optional, will skip the unmount of rootfs folder."
13 __LinuxCodeName=trusty
14 __CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
18 __UbuntuRepo="http://ports.ubuntu.com/"
19 __LLDB_Package="lldb-3.6-dev"
22 # base development support
23 __UbuntuPackages="build-essential"
26 __UbuntuPackages+=" symlinks"
28 # CoreCLR and CoreFX dependencies
29 __UbuntuPackages+=" gettext"
30 __UbuntuPackages+=" libunwind8-dev"
31 __UbuntuPackages+=" liblttng-ust-dev"
32 __UbuntuPackages+=" libicu-dev"
35 __UbuntuPackages+=" libcurl4-openssl-dev"
36 __UbuntuPackages+=" libkrb5-dev"
37 __UbuntuPackages+=" libssl-dev"
38 __UbuntuPackages+=" zlib1g-dev"
40 __UnprocessedBuildArgs=
42 lowerI="$(echo $i | awk '{print tolower($0)}')"
59 __UbuntuRepo="http://ftp.debian.org/debian/"
60 __LinuxCodeName=jessie
65 __UbuntuRepo="http://archive.ubuntu.com/ubuntu/"
68 __LLDB_Package="lldb-3.6-dev"
71 __LLDB_Package="lldb-3.8-dev"
74 __LLDB_Package="lldb-3.9-dev"
77 __LLDB_Package="lldb-4.0-dev"
83 if [ "$__LinuxCodeName" != "jessie" ]; then
88 if [ "$__LinuxCodeName" != "jessie" ]; then
93 if [ "$__LinuxCodeName" != "jessie" ]; then
94 __LinuxCodeName=xenial
98 if [ "$__LinuxCodeName" != "jessie" ]; then
103 __LinuxCodeName=jessie
104 __UbuntuRepo="http://ftp.debian.org/debian/"
107 if [ "$__BuildArch" != "armel" ]; then
108 echo "Tizen is available only for armel."
120 __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i"
125 if [ "$__BuildArch" == "armel" ]; then
126 __LLDB_Package="lldb-3.5-dev"
128 __UbuntuPackages+=" ${__LLDB_Package:-}"
130 __RootfsDir="$__CrossDir/rootfs/$__BuildArch"
132 if [[ -n "$ROOTFS_DIR" ]]; then
133 __RootfsDir=$ROOTFS_DIR
136 if [ -d "$__RootfsDir" ]; then
137 if [ $__SkipUnmount == 0 ]; then
138 umount $__RootfsDir/*
143 if [[ -n $__LinuxCodeName ]]; then
144 qemu-debootstrap --arch $__UbuntuArch $__LinuxCodeName $__RootfsDir $__UbuntuRepo
145 cp $__CrossDir/$__BuildArch/sources.list.$__LinuxCodeName $__RootfsDir/etc/apt/sources.list
146 chroot $__RootfsDir apt-get update
147 chroot $__RootfsDir apt-get -f -y install
148 chroot $__RootfsDir apt-get -y install $__UbuntuPackages
149 chroot $__RootfsDir symlinks -cr /usr
151 if [ $__SkipUnmount == 0 ]; then
152 umount $__RootfsDir/*
155 if [[ "$__BuildArch" == "arm" && "$__LinuxCodeName" == "trusty" ]]; then
157 patch -p1 < $__CrossDir/$__BuildArch/trusty.patch
160 elif [ "$__Tizen" == "tizen" ]; then
161 ROOTFS_DIR=$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh
163 echo "Unsupported target platform."