6 echo "Usage: $0 [BuildArch] [LinuxCodeName] [--setproxy=IP] [--skipunmount]"
7 echo "BuildArch can be: arm(default), aarch64 and armel"
8 echo "LinuxCodeName - optional, Code name for Linux, can be: bionic(default), trusty, xenial, focal"
9 echo " If BuildArch is armel, this can be tizen(default)"
10 echo "--setproxy=IP - optional, IP is the proxy server IP address or url with portnumber"
11 echo " default no proxy. Example: --setproxy=127.1.2.3:8080"
12 echo "--skipunmount - optional, will skip the unmount of rootfs folder."
16 __CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
18 __UbuntuRepo="http://ports.ubuntu.com/"
22 __LinuxCodeName=bionic
26 # base development support
27 __UbuntuPackages="build-essential"
29 # other development supports
30 __UbuntuPackages+=" ocl-icd-opencl-dev"
31 __UbuntuPackages+=" libhdf5-dev"
32 __UbuntuBoostPackages=" libboost-all-dev"
35 __UbuntuPackages+=" symlinks"
37 __UnprocessedBuildArgs=
40 lowerI="$(echo $i | awk '{print tolower($0)}')"
62 if [ "$__BuildArch" != "armel" ]; then
63 echo "Tizen rootfs is available only for armel."
73 __LinuxCodeName=trusty
76 __LinuxCodeName=xenial
79 __LinuxCodeName=bionic
83 __UbuntuBoostPackages=" libboost1.67-all-dev"
87 __Apt="Acquire::http::proxy \"http://$proxyip/\";\n"
88 __Apt+="Acquire::https::proxy \"http://$proxyip/\";\n"
89 __Apt+="Acquire::ftp::proxy \"ftp://$proxyip/\";"
96 __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i"
101 # Current runtime build system supports boost version under 1.70
102 __UbuntuPackages+="$__UbuntuBoostPackages"
104 __RootfsDir="$__CrossDir/rootfs/$__BuildArch"
106 if [[ -n "$ROOTFS_DIR" ]]; then
107 __RootfsDir=$ROOTFS_DIR
110 if [ -d "$__RootfsDir" ]; then
111 if [ $__SkipUnmount == 0 ]; then
112 umount $__RootfsDir/*
117 if [ $__IsProxySet == 1 ] && [ "$__Tizen" != "tizen" ]; then
118 mkdir -p $__RootfsDir/etc/apt/apt.conf.d
119 echo -e "$__Apt" >> $__RootfsDir/etc/apt/apt.conf.d/90proxy
122 if [[ -n $__LinuxCodeName ]]; then
123 qemu-debootstrap --arch $__QemuArch $__LinuxCodeName $__RootfsDir $__UbuntuRepo
124 cp $__CrossDir/$__BuildArch/sources.list.$__LinuxCodeName $__RootfsDir/etc/apt/sources.list
125 chroot $__RootfsDir apt-get update
126 chroot $__RootfsDir apt-get -f -y install
127 chroot $__RootfsDir apt-get -y install $__UbuntuPackages
128 machine=$(chroot $__RootfsDir gcc -dumpmachine)
129 chroot $__RootfsDir ln -s /usr/lib/${machine}/libhdf5_serial.a /usr/lib/${machine}/libhdf5.a
130 chroot $__RootfsDir ln -s /usr/lib/${machine}/libhdf5_serial.so /usr/lib/${machine}/libhdf5.so
131 chroot $__RootfsDir symlinks -cr /usr
133 if [ $__SkipUnmount == 0 ]; then
134 umount $__RootfsDir/*
136 elif [ "$__Tizen" == "tizen" ]; then
137 ROOTFS_DIR=$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh
139 echo "Unsupported target platform."