@@ -18,7 +18,6 @@ usage()
1818
1919__CodeName=xenial
2020__CrossDir=$( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd )
21- __InitialDir=$PWD
2221__BuildArch=arm
2322__AlpineArch=armv7
2423__FreeBSDArch=arm
@@ -43,7 +42,7 @@ __AlpinePackages+=" libedit"
4342# symlinks fixer
4443__UbuntuPackages+=" symlinks"
4544
46- # CoreCLR and CoreFX dependencies
45+ # runtime dependencies
4746__UbuntuPackages+=" libicu-dev"
4847__UbuntuPackages+=" liblttng-ust-dev"
4948__UbuntuPackages+=" libunwind8-dev"
@@ -54,7 +53,7 @@ __AlpinePackages+=" libunwind-dev"
5453__AlpinePackages+=" lttng-ust-dev"
5554__AlpinePackages+=" compiler-rt-static"
5655
57- # CoreFX dependencies
56+ # runtime libraries' dependencies
5857__UbuntuPackages+=" libcurl4-openssl-dev"
5958__UbuntuPackages+=" libkrb5-dev"
6059__UbuntuPackages+=" libssl-dev"
@@ -84,17 +83,18 @@ __IllumosPackages+=" zlib-1.2.11"
8483__UbuntuPackages+=" libomp5"
8584__UbuntuPackages+=" libomp-dev"
8685
86+ __Keyring=
8787__UseMirror=0
8888
8989__UnprocessedBuildArgs=
9090while : ; do
91- if [ $# -le 0 ]; then
91+ if [[ " $# " -le 0 ] ]; then
9292 break
9393 fi
9494
95- lowerI=" $( echo $1 | tr " [:upper:]" " [:lower:]" ) "
95+ lowerI=" $( echo " $1 " | tr " [:upper:]" " [:lower:]" ) "
9696 case $lowerI in
97- -? |-h|--help)
97+ -\ ? |-h|--help)
9898 usage
9999 exit 1
100100 ;;
@@ -111,7 +111,7 @@ while :; do
111111 __UbuntuRepo=" http://raspbian.raspberrypi.org/raspbian/"
112112 __CodeName=buster
113113 __LLDB_Package=" liblldb-6.0-dev"
114- __Keyring=" /usr/share/keyrings/raspbian-archive-keyring.gpg"
114+ __Keyring=" --keyring /usr/share/keyrings/raspbian-archive-keyring.gpg"
115115 ;;
116116 arm64)
117117 __BuildArch=arm64
@@ -189,17 +189,17 @@ while :; do
189189 fi
190190 ;;
191191 xenial) # Ubuntu 16.04
192- if [ " $__CodeName " != " jessie" ]; then
192+ if [[ " $__CodeName " != " jessie" ] ]; then
193193 __CodeName=xenial
194194 fi
195195 ;;
196196 zesty) # Ubuntu 17.04
197- if [ " $__CodeName " != " jessie" ]; then
197+ if [[ " $__CodeName " != " jessie" ] ]; then
198198 __CodeName=zesty
199199 fi
200200 ;;
201201 bionic) # Ubuntu 18.04
202- if [ " $__CodeName " != " jessie" ]; then
202+ if [[ " $__CodeName " != " jessie" ] ]; then
203203 __CodeName=bionic
204204 fi
205205 ;;
@@ -253,7 +253,7 @@ while :; do
253253 ;;
254254 --rootfsdir|-rootfsdir)
255255 shift
256- __RootfsDir=$1
256+ __RootfsDir=" $1 "
257257 ;;
258258 --use-mirror)
259259 __UseMirror=1
@@ -266,71 +266,66 @@ while :; do
266266 shift
267267done
268268
269- if [ -e " $__Keyring " ]; then
270- __Keyring=" --keyring=$__Keyring "
271- else
272- __Keyring=" "
273- fi
274-
275- if [ " $__BuildArch " == " armel" ]; then
269+ if [[ " $__BuildArch " == " armel" ]]; then
276270 __LLDB_Package=" lldb-3.5-dev"
277271fi
272+
278273__UbuntuPackages+=" ${__LLDB_Package:- } "
279274
280- if [ ! -z " $__LLVM_MajorVersion " ]; then
275+ if [[ -n " $__LLVM_MajorVersion " ] ]; then
281276 __UbuntuPackages+=" libclang-common-${__LLVM_MajorVersion}${__LLVM_MinorVersion: +.$__LLVM_MinorVersion } -dev"
282277fi
283278
284- if [ -z " $__RootfsDir " ] && [ ! -z " $ROOTFS_DIR " ]; then
285- __RootfsDir=$ROOTFS_DIR
279+ if [[ -z " $__RootfsDir " && -n " $ROOTFS_DIR " ] ]; then
280+ __RootfsDir=" $ROOTFS_DIR "
286281fi
287282
288- if [ -z " $__RootfsDir " ]; then
283+ if [[ -z " $__RootfsDir " ] ]; then
289284 __RootfsDir=" $__CrossDir /../../../.tools/rootfs/$__BuildArch "
290285fi
291286
292- if [ -d " $__RootfsDir " ]; then
293- if [ $__SkipUnmount == 0 ]; then
294- umount $__RootfsDir /* || true
287+ if [[ -d " $__RootfsDir " ] ]; then
288+ if [[ " $__SkipUnmount " == " 0 " ] ]; then
289+ umount " $__RootfsDir " /* || true
295290 fi
296- rm -rf $__RootfsDir
291+ rm -rf " $__RootfsDir "
297292fi
298293
299- mkdir -p $__RootfsDir
294+ mkdir -p " $__RootfsDir "
300295__RootfsDir=" $( cd " $__RootfsDir " && pwd ) "
301296
302297if [[ " $__CodeName " == " alpine" ]]; then
303298 __ApkToolsVersion=2.9.1
304- __ApkToolsDir=$( mktemp -d)
305- wget https://github.com/alpinelinux/apk-tools/releases/download/v$__ApkToolsVersion /apk-tools-$__ApkToolsVersion -x86_64-linux.tar.gz -P $__ApkToolsDir
306- tar -xf $__ApkToolsDir /apk-tools-$__ApkToolsVersion -x86_64-linux.tar.gz -C $__ApkToolsDir
307- mkdir -p $__RootfsDir /usr/bin
308- cp -v /usr/bin/qemu-$__QEMUArch -static $__RootfsDir /usr/bin
299+ __ApkToolsDir=" $( mktemp -d) "
300+ wget " https://github.com/alpinelinux/apk-tools/releases/download/v$__ApkToolsVersion /apk-tools-$__ApkToolsVersion -x86_64-linux.tar.gz" -P " $__ApkToolsDir "
301+ tar -xf " $__ApkToolsDir /apk-tools-$__ApkToolsVersion -x86_64-linux.tar.gz" -C " $__ApkToolsDir "
302+ mkdir -p " $__RootfsDir " /usr/bin
303+ cp -v " /usr/bin/qemu-$__QEMUArch -static" " $__RootfsDir /usr/bin"
309304
310- $__ApkToolsDir /apk-tools-$__ApkToolsVersion /apk \
311- -X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion /main \
312- -X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion /community \
313- -U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
305+ " $__ApkToolsDir /apk-tools-$__ApkToolsVersion /apk" \
306+ -X " http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion /main" \
307+ -X " http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion /community" \
308+ -U --allow-untrusted --root " $__RootfsDir " --arch " $__AlpineArch " --initdb \
314309 add $__AlpinePackages
315310
316- rm -r $__ApkToolsDir
311+ rm -r " $__ApkToolsDir "
317312elif [[ " $__CodeName " == " freebsd" ]]; then
318- mkdir -p $__RootfsDir /usr/local/etc
313+ mkdir -p " $__RootfsDir " /usr/local/etc
319314 JOBS=" $( getconf _NPROCESSORS_ONLN) "
320- wget -O - https://download.freebsd.org/ftp/releases/${__FreeBSDArch} /${__FreeBSDMachineArch} /${__FreeBSDBase} /base.txz | tar -C $__RootfsDir -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
321- echo " ABI = \" FreeBSD:${__FreeBSDABI} :${__FreeBSDMachineArch} \" ; FINGERPRINTS = \" ${__RootfsDir} /usr/share/keys\" ; REPOS_DIR = [\" ${__RootfsDir} /etc/pkg\" ]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > ${__RootfsDir} /usr/local/etc/pkg.conf
322- echo " FreeBSD: { url: " pkg+http://pkg.FreeBSD.org/\$ {ABI}/quarterly" , mirror_type: \" srv\" , signature_type: \" fingerprints\" , fingerprints: \" ${__RootfsDir} /usr/share/keys/pkg\" , enabled: yes }" > ${__RootfsDir} /etc/pkg/FreeBSD.conf
323- mkdir -p $__RootfsDir /tmp
315+ wget -O - " https://download.freebsd.org/ftp/releases/${__FreeBSDArch} /${__FreeBSDMachineArch} /${__FreeBSDBase} /base.txz" | tar -C " $__RootfsDir " -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
316+ echo " ABI = \" FreeBSD:${__FreeBSDABI} :${__FreeBSDMachineArch} \" ; FINGERPRINTS = \" ${__RootfsDir} /usr/share/keys\" ; REPOS_DIR = [\" ${__RootfsDir} /etc/pkg\" ]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > " ${__RootfsDir} " /usr/local/etc/pkg.conf
317+ echo " FreeBSD: { url: \ " pkg+http://pkg.FreeBSD.org/\$ {ABI}/quarterly\ " , mirror_type: \" srv\" , signature_type: \" fingerprints\" , fingerprints: \" ${__RootfsDir} /usr/share/keys/pkg\" , enabled: yes }" > " ${__RootfsDir} " /etc/pkg/FreeBSD.conf
318+ mkdir -p " $__RootfsDir " /tmp
324319 # get and build package manager
325- wget -O - https://github.com/freebsd/pkg/archive/${__FreeBSDPkg} .tar.gz | tar -C $__RootfsDir /tmp -zxf -
326- cd $__RootfsDir /tmp/pkg-${__FreeBSDPkg}
320+ wget -O - " https://github.com/freebsd/pkg/archive/${__FreeBSDPkg} .tar.gz" | tar -C " $__RootfsDir " /tmp -zxf -
321+ cd " $__RootfsDir /tmp/pkg-${__FreeBSDPkg} "
327322 # needed for install to succeed
328- mkdir -p $__RootfsDir /host/etc
329- ./autogen.sh && ./configure --prefix=$__RootfsDir /host && make -j " $JOBS " && make install
330- rm -rf $__RootfsDir /tmp/pkg-${__FreeBSDPkg}
323+ mkdir -p " $__RootfsDir " /host/etc
324+ ./autogen.sh && ./configure --prefix=" $__RootfsDir " /host && make -j " $JOBS " && make install
325+ rm -rf " $__RootfsDir /tmp/pkg-${__FreeBSDPkg} "
331326 # install packages we need.
332- INSTALL_AS_USER=$( whoami) $__RootfsDir /host/sbin/pkg -r $__RootfsDir -C $__RootfsDir /usr/local/etc/pkg.conf update
333- INSTALL_AS_USER=$( whoami) $__RootfsDir /host/sbin/pkg -r $__RootfsDir -C $__RootfsDir /usr/local/etc/pkg.conf install --yes $__FreeBSDPackages
327+ INSTALL_AS_USER=$( whoami) " $__RootfsDir " /host/sbin/pkg -r " $__RootfsDir " -C " $__RootfsDir " /usr/local/etc/pkg.conf update
328+ INSTALL_AS_USER=$( whoami) " $__RootfsDir " /host/sbin/pkg -r " $__RootfsDir " -C " $__RootfsDir " /usr/local/etc/pkg.conf install --yes $__FreeBSDPackages
334329elif [[ " $__CodeName " == " illumos" ]]; then
335330 mkdir " $__RootfsDir /tmp"
336331 pushd " $__RootfsDir /tmp"
@@ -358,7 +353,7 @@ elif [[ "$__CodeName" == "illumos" ]]; then
358353 if [[ " $__UseMirror " == 1 ]]; then
359354 BaseUrl=http://pkgsrc.smartos.skylime.net
360355 fi
361- BaseUrl=" $BaseUrl " /packages/SmartOS/2020Q1/${__illumosArch} /All
356+ BaseUrl=" $BaseUrl /packages/SmartOS/2020Q1/${__illumosArch} /All"
362357 echo " Downloading dependencies."
363358 read -ra array <<< " $__IllumosPackages"
364359 for package in " ${array[@]} " ; do
@@ -376,26 +371,26 @@ elif [[ "$__CodeName" == "illumos" ]]; then
376371 wget -P " $__RootfsDir " /usr/include/net https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/io/bpf/net/dlt.h
377372 wget -P " $__RootfsDir " /usr/include/netpacket https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/inet/sockmods/netpacket/packet.h
378373 wget -P " $__RootfsDir " /usr/include/sys https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/sys/sdt.h
379- elif [[ -n $__CodeName ]]; then
380- qemu-debootstrap $__Keyring --arch $__UbuntuArch $__CodeName $__RootfsDir $__UbuntuRepo
381- cp $__CrossDir /$__BuildArch /sources.list.$__CodeName $__RootfsDir /etc/apt/sources.list
382- chroot $__RootfsDir apt-get update
383- chroot $__RootfsDir apt-get -f -y install
384- chroot $__RootfsDir apt-get -y install $__UbuntuPackages
385- chroot $__RootfsDir symlinks -cr /usr
386- chroot $__RootfsDir apt-get clean
374+ elif [[ -n " $__CodeName " ]]; then
375+ qemu-debootstrap $__Keyring --arch " $__UbuntuArch " " $__CodeName " " $__RootfsDir " " $__UbuntuRepo "
376+ cp " $__CrossDir /$__BuildArch /sources.list.$__CodeName " " $__RootfsDir /etc/apt/sources.list"
377+ chroot " $__RootfsDir " apt-get update
378+ chroot " $__RootfsDir " apt-get -f -y install
379+ chroot " $__RootfsDir " apt-get -y install $__UbuntuPackages
380+ chroot " $__RootfsDir " symlinks -cr /usr
381+ chroot " $__RootfsDir " apt-get clean
387382
388- if [ $__SkipUnmount == 0 ]; then
389- umount $__RootfsDir /* || true
383+ if [[ " $__SkipUnmount " == " 0 " ] ]; then
384+ umount " $__RootfsDir " /* || true
390385 fi
391386
392387 if [[ " $__BuildArch " == " armel" && " $__CodeName " == " jessie" ]]; then
393- pushd $__RootfsDir
394- patch -p1 < $__CrossDir /$__BuildArch /armel.jessie.patch
388+ pushd " $__RootfsDir "
389+ patch -p1 < " $__CrossDir /$__BuildArch /armel.jessie.patch"
395390 popd
396391 fi
397392elif [[ " $__Tizen " == " tizen" ]]; then
398- ROOTFS_DIR=$__RootfsDir $__CrossDir /$__BuildArch /tizen-build-rootfs.sh
393+ ROOTFS_DIR=" $__RootfsDir $__CrossDir /$__BuildArch /tizen-build-rootfs.sh"
399394else
400395 echo " Unsupported target platform."
401396 usage;
0 commit comments