(List (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS nounset]}) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]}) (= scope= flags=2 words=[] bindings=[('SCRIPT_DIR', {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub 0]})]})]) (= scope= flags=2 words=[] bindings=[('INSTALL_ROOT', {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /toolchain/linux_x86/arm_trusted]})]) (= scope= flags=2 words=[] bindings=[('TMP', {[LIT_CHARS /tmp/armhf-crosstool-trusty]})]) (= scope= flags=2 words=[] bindings=[('REQUIRED_TOOLS', {[DQ [LIT_CHARS wget]]})]) (= scope= flags=2 words=[] bindings=[('MAKE_OPTS', {[DQ [LIT_CHARS -j8]]})]) (= scope= flags=2 words=[] bindings=[('CROSS_ARM_TC_REPO', {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_CHARS //archive.ubuntu.com/ubuntu]})]) (= scope= flags=2 words=[] bindings=[('ARMHF_REPO', {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_CHARS //ports.ubuntu.com/ubuntu-ports]})]) (= scope= flags=2 words=[] bindings=[('PACKAGE_LIST', {[DQ [VarSub ARMHF_REPO][LIT_CHARS /dists/trusty/main/binary-armhf/Packages.bz2]]})]) (= scope= flags=2 words=[] bindings=[('PACKAGE_LIST2', {[DQ [VarSub ARMHF_REPO][LIT_CHARS /dists/trusty-security/main/binary-armhf/Packages.bz2]]})]) (= scope= flags=2 words=[] bindings=[('CROSS_ARM_TC_PACKAGES', {[DQ [LIT_CHARS " g++-arm-linux-gnueabihf"]]})]) (= scope= flags=2 words=[] bindings=[('ARMHF_BASE_PACKAGES', {[DQ [LIT_CHARS " libssl-dev "][LIT_CHARS " libssl1.0.0 "][LIT_CHARS " libgcc1 "][LIT_CHARS " libc6 "][LIT_CHARS " libc6-dev "][LIT_CHARS " libstdc++6 "][LIT_CHARS " libx11-dev "][LIT_CHARS " libx11-6 "][LIT_CHARS " x11proto-core-dev "][LIT_CHARS " libxt-dev "][LIT_CHARS " libxt6 "][LIT_CHARS " zlib1g "][LIT_CHARS " zlib1g-dev"]]})]) (= scope= flags=2 words=[] bindings=[('ARMHF_BASE_DEP_LIST', {[DQ [VarSub SCRIPT_DIR][LIT_CHARS /packagelist.trusty.armhf.base]]})]) (= scope= flags=2 words=[] bindings=[('ARMHF_BASE_DEP_FILES', {[DQ [ComSub (Com {[LIT_CHARS cat]} {[VarSub ARMHF_BASE_DEP_LIST]})]]})]) (= scope= flags=2 words=[] bindings=[('ARMHF_EXTRA_PACKAGES', {[DQ [LIT_CHARS " comerr-dev "][LIT_CHARS " krb5-multidev "][LIT_CHARS " libasound2 "][LIT_CHARS " libasound2-dev "][LIT_CHARS " libatk1.0-0 "][LIT_CHARS " libatk1.0-dev "][LIT_CHARS " libcairo2 "][LIT_CHARS " libcairo2-dev "][LIT_CHARS " libcairo-gobject2 "][LIT_CHARS " libcairo-script-interpreter2 "][LIT_CHARS " libcomerr2 "][LIT_CHARS " libcups2 "][LIT_CHARS " libcups2-dev "][LIT_CHARS " libdbus-1-3 "][LIT_CHARS " libdbus-1-dev "][LIT_CHARS " libexpat1 "][LIT_CHARS " libexpat1-dev "][LIT_CHARS " libffi6 "][LIT_CHARS " libfontconfig1 "][LIT_CHARS " libfontconfig1-dev "][LIT_CHARS " libfreetype6 "][LIT_CHARS " libfreetype6-dev "][LIT_CHARS " libgconf-2-4 "][LIT_CHARS " libgconf2-4 "][LIT_CHARS " libgconf2-dev "][LIT_CHARS " libgpg-error0 "][LIT_CHARS " libgpg-error-dev "][LIT_CHARS " libgcrypt11 "][LIT_CHARS " libgcrypt11-dev "][LIT_CHARS " libgdk-pixbuf2.0-0 "][LIT_CHARS " libgdk-pixbuf2.0-dev "][LIT_CHARS " libgnutls26 "][LIT_CHARS " libgnutlsxx27 "][LIT_CHARS " libgnutls-dev "][LIT_CHARS " libgnutls-openssl27 "][LIT_CHARS " libgssapi-krb5-2 "][LIT_CHARS " libgssrpc4 "][LIT_CHARS " libgtk2.0-0 "][LIT_CHARS " libgtk2.0-dev "][LIT_CHARS " libglib2.0-0 "][LIT_CHARS " libglib2.0-dev "][LIT_CHARS " libgnome-keyring0 "][LIT_CHARS " libgnome-keyring-dev "][LIT_CHARS " libkadm5clnt-mit9 "][LIT_CHARS " libkadm5srv-mit9 "][LIT_CHARS " libkdb5-7 "][LIT_CHARS " libkrb5-3 "][LIT_CHARS " libkrb5-dev "][LIT_CHARS " libkrb5support0 "][LIT_CHARS " libk5crypto3 "][LIT_CHARS " libnspr4 "][LIT_CHARS " libnspr4-dev "][LIT_CHARS " libnss3 "][LIT_CHARS " libnss3-dev "][LIT_CHARS " libnss-db "][LIT_CHARS " liborbit2 "][LIT_CHARS " libcap-dev "][LIT_CHARS " libcap2 "][LIT_CHARS " libpam0g "][LIT_CHARS " libpam0g-dev "][LIT_CHARS " libpango-1.0-0 "][LIT_CHARS " libpango1.0-dev "][LIT_CHARS " libpangocairo-1.0-0 "][LIT_CHARS " libpangoft2-1.0-0 "][LIT_CHARS " libpangoxft-1.0-0 "][LIT_CHARS " libpci3 "][LIT_CHARS " libpci-dev "][LIT_CHARS " libpcre3 "][LIT_CHARS " libpcre3-dev "][LIT_CHARS " libpcrecpp0 "][LIT_CHARS " libpixman-1-0 "][LIT_CHARS " libpixman-1-dev "][LIT_CHARS " libpng12-0 "][LIT_CHARS " libpng12-dev "][LIT_CHARS " libpulse0 "][LIT_CHARS " libpulse-dev "][LIT_CHARS " libpulse-mainloop-glib0 "][LIT_CHARS " libselinux1 "][LIT_CHARS " libspeechd2 "][LIT_CHARS " libspeechd-dev "][LIT_CHARS " libstdc++-4.8-dev "][LIT_CHARS " libudev1 "][LIT_CHARS " libudev-dev "][LIT_CHARS " libxext-dev "][LIT_CHARS " libxext6 "][LIT_CHARS " libxau-dev "][LIT_CHARS " libxau6 "][LIT_CHARS " libxcb1 "][LIT_CHARS " libxcb1-dev "][LIT_CHARS " libxcb-render0 "][LIT_CHARS " libxcb-render0-dev "][LIT_CHARS " libxcb-shm0 "][LIT_CHARS " libxcb-shm0-dev "][LIT_CHARS " libxcomposite1 "][LIT_CHARS " libxcomposite-dev "][LIT_CHARS " libxcursor1 "][LIT_CHARS " libxcursor-dev "][LIT_CHARS " libxdamage1 "][LIT_CHARS " libxdamage-dev "][LIT_CHARS " libxdmcp6 "][LIT_CHARS " libxfixes3 "][LIT_CHARS " libxfixes-dev "][LIT_CHARS " libxi6 "][LIT_CHARS " libxi-dev "][LIT_CHARS " libxinerama1 "][LIT_CHARS " libxinerama-dev "][LIT_CHARS " libxrandr2 "][LIT_CHARS " libxrandr-dev "][LIT_CHARS " libxrender1 "][LIT_CHARS " libxrender-dev "][LIT_CHARS " libxss1 "][LIT_CHARS " libxss-dev "][LIT_CHARS " libxtst6 "][LIT_CHARS " libxtst-dev "][LIT_CHARS " speech-dispatcher "][LIT_CHARS " x11proto-composite-dev "][LIT_CHARS " x11proto-damage-dev "][LIT_CHARS " x11proto-fixes-dev "][LIT_CHARS " x11proto-input-dev "][LIT_CHARS " x11proto-kb-dev "][LIT_CHARS " x11proto-randr-dev "][LIT_CHARS " x11proto-record-dev "][LIT_CHARS " x11proto-render-dev "][LIT_CHARS " x11proto-scrnsaver-dev "][LIT_CHARS " x11proto-xext-dev"]]})]) (= scope= flags=2 words=[] bindings=[('ARMHF_EXTRA_DEP_LIST', {[DQ [VarSub SCRIPT_DIR][LIT_CHARS /packagelist.trusty.armhf.extra]]})]) (= scope= flags=2 words=[] bindings=[('ARMHF_EXTRA_DEP_FILES', {[DQ [ComSub (Com {[LIT_CHARS cat]} {[VarSub ARMHF_EXTRA_DEP_LIST]})]]})]) (FunctionDef Banner [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "######################################################################"]]}) (Com {[LIT_CHARS echo]} {[VarSub *]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "######################################################################"]]}) ) ) (FunctionDef SubBanner [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS ......................................................................]]}) (Com {[LIT_CHARS echo]} {[VarSub *]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS ......................................................................]]}) ) ) (FunctionDef Usage [] (Pipeline (Com {[LIT_CHARS egrep]} {[DQ [LIT_CHARS "^#@"]]} {[VarSub 0]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS --bytes] [LIT_OTHER "="] [LIT_CHARS 3-]}) ) ) (FunctionDef DownloadOrCopy [] (If (DBracket {B1 UNARY_FILE_f {[DQ [VarSub 2]]}}) (Com {[LIT_CHARS echo]} {[DQ [VarSub 2][LIT_CHARS " already in place"]]}) (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[VarSub 1]} {[SQ ]}}) (List (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "downloading from "][VarSub 1][LIT_CHARS " -> "][VarSub 2]]}) (Com {[LIT_CHARS wget]} {[VarSub 1]} {[LIT_CHARS -O]} {[VarSub 2]}) ) (ElseTrue) (List (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "copying from "][VarSub 1]]}) (Com {[LIT_CHARS cp]} {[VarSub 1]} {[VarSub 2]}) ) ) ) (FunctionDef SanityCheck [] (List (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "Sanity Checks"]]}) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[ComSub (Com {[LIT_CHARS basename]} {[ComSub (Com {[LIT_CHARS pwd]})]})]} {[DQ [LIT_CHARS native_client]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: run this script from the native_client/ dir"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (If (Pipeline! (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub INSTALL_ROOT]]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: "][VarSub INSTALL_ROOT][LIT_CHARS " can't be created."]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (If (Pipeline! (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub TMP]]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: "][VarSub TMP][LIT_CHARS " can't be created."]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (For tool [{[VarSub REQUIRED_TOOLS]}]) (If (Pipeline! (Com {[LIT_CHARS which]} {[VarSub tool]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Required binary "][VarSub tool][LIT_CHARS " not found."]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS Exiting.]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) ) ) (FunctionDef ChangeDirectory [] (List (Com {[LIT_CHARS cd]} {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub BASH_SOURCE]})]}) (Com {[LIT_CHARS cd]} {[LIT_CHARS ../..]}) ) ) (FunctionDef ClearInstallDir [] (List (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "clearing dirs in "][VarSub INSTALL_ROOT]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub INSTALL_ROOT] [LIT_CHARS /] [LIT_OTHER "*"]}) ) ) (FunctionDef CreateTarBall [] (List (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 1]})]) (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "creating tar ball "][VarSub tarball]]}) (Com {[LIT_CHARS tar]} {[LIT_CHARS cfz]} {[VarSub tarball]} {[LIT_CHARS -C]} {[VarSub INSTALL_ROOT]} {[LIT_CHARS .]}) ) ) (FunctionDef InstallCrossArmBasePackages [] (Com {[LIT_CHARS sudo]} {[LIT_CHARS apt-get]} {[LIT_CHARS install]} {[VarSub CROSS_ARM_TC_PACKAGES]}) ) (FunctionDef InstallTrustedLinkerScript [] (List (= scope= flags=0 words=[] bindings=[('trusted_ld_script', {[VarSub INSTALL_ROOT] [LIT_CHARS /ld_script_arm_trusted]})]) (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "installing trusted linker script to "][VarSub trusted_ld_script]]}) (Pipeline (Com {[LIT_CHARS arm-linux-gnueabihf-ld]} {[LIT_CHARS --verbose]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -A]} {[LIT_CHARS 10000]} {[DQ [LIT_CHARS "======="]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[DQ [LIT_CHARS "======="]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} < (FilenameRedirectNode filename={[VarSub trusted_ld_script]} "> 1), > ) ) ) ) (FunctionDef HacksAndPatches [] (List (= scope= flags=0 words=[] bindings=[('rel_path', {[LIT_CHARS toolchain/linux_x86/arm_trusted]})]) (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "Misc Hacks & Patches"]]}) (= scope= flags=0 words=[] bindings=[('lscripts', {[DQ [VarSub rel_path][LIT_CHARS "/usr/lib/arm-linux-gnueabihf/libpthread.so "][LIT_CHARS " "][VarSub rel_path][LIT_CHARS /usr/lib/arm-linux-gnueabihf/libc.so]]})]) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Rewriting Linker Scripts"]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[SQ ]} {[VarSub lscripts]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[SQ ]} {[VarSub lscripts]}) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Package Configs Symlink"]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub rel_path] [LIT_CHARS /usr/share]}) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[LIT_CHARS ../lib/arm-linux-gnueabihf/pkgconfig]} {[VarSub rel_path] [LIT_CHARS /usr/share/pkgconfig]}) ) ) (FunctionDef InstallMissingArmLibrariesAndHeadersIntoJail [] (List (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "Install Libs And Headers Into Jail"]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub TMP] [LIT_CHARS /armhf-packages]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub INSTALL_ROOT]}) (For file [{[VarSub @]}]) (List (= scope= flags=0 words=[] bindings=[('package', {[DQ [VarSub TMP][LIT_CHARS /armhf-packages/][VarSub file transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]]})]) (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "installing "][VarSub file]]}) (Com {[LIT_CHARS DownloadOrCopy]} {[VarSub ARMHF_REPO] [LIT_CHARS /pool/] [VarSub file]} {[VarSub package]}) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "extracting to "][VarSub INSTALL_ROOT]]}) (If (DBracket {B! {B1 UNARY_FILE_s {[VarSub package]}}}) (List (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: bad package "][VarSub package]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (Pipeline (Com {[LIT_CHARS dpkg]} {[LIT_CHARS --fsys-tarfile]} {[VarSub package]}) (Com {[LIT_CHARS tar]} {[LIT_CHARS -xvf]} {[LIT_CHARS -]} {[LIT_CHARS --exclude] [LIT_OTHER "="] [LIT_CHARS ./usr/share]} {[LIT_CHARS -C]} {[VarSub INSTALL_ROOT]}) ) ) ) ) ) (FunctionDef CleanupJailSymlinks [] (List (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "jail symlink cleanup"]]}) (Com {[LIT_CHARS pushd]} {[VarSub INSTALL_ROOT]}) (Pipeline (Com {[LIT_CHARS find]} {[LIT_CHARS usr/lib]} {[LIT_CHARS -type]} {[LIT_CHARS l]} {[LIT_CHARS -printf]} {[SQ ]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS link]} {[LIT_CHARS target]}) (List (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[VarSub target]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (Com {[LIT_CHARS continue]}) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub link][LIT_CHARS ": "][VarSub target]]}) (Case to_match={[DQ [VarSub link]]}, pat_word_list=[[{[LIT_CHARS usr/lib/arm-linux-gnueabihf/] [LIT_OTHER "*"]}], [{[LIT_CHARS usr/lib/] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS ln]} {[LIT_CHARS -snfv]} {[DQ [LIT_CHARS ../../..][VarSub target]]} {[DQ [VarSub link]]}) (Com {[LIT_CHARS ln]} {[LIT_CHARS -snfv]} {[DQ [LIT_CHARS ../..][VarSub target]]} {[DQ [VarSub link]]}) ) ) ) ) (Pipeline (Com {[LIT_CHARS find]} {[LIT_CHARS usr/lib]} {[LIT_CHARS -type]} {[LIT_CHARS l]} {[LIT_CHARS -printf]} {[SQ ]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS link]} {[LIT_CHARS target]}) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -r]} {[DQ [VarSub link]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: FOUND BAD LINK "][VarSub link]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) ) ) (Com {[LIT_CHARS popd]}) ) ) (= scope= flags=2 words=[] bindings=[('QEMU_TARBALL', {[ComSub (Com {[LIT_CHARS readlink]} {[LIT_CHARS -f]} {[LIT_CHARS ../third_party/qemu/qemu-1.0.1.tar.gz]})]})]) (= scope= flags=2 words=[] bindings=[('QEMU_PATCH', {[ComSub (Com {[LIT_CHARS readlink]} {[LIT_CHARS -f]} {[LIT_CHARS ../third_party/qemu/qemu-1.0.1.patch_arm]})]})]) (= scope= flags=2 words=[] bindings=[('QEMU_DIR', {[LIT_CHARS qemu-1.0.1]})]) (FunctionDef BuildAndInstallQemu [] (List (= scope= flags=0 words=[] bindings=[('saved_dir', {[ComSub (Com {[LIT_CHARS pwd]})]})]) (= scope= flags=0 words=[] bindings=[('tmpdir', {[DQ [VarSub TMP][LIT_CHARS /qemu.nacl]]})]) (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "Building qemu in "][VarSub tmpdir]]}) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub QEMU_TARBALL]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: missing qemu tarball: ../third_party/qemu/qemu-1.0.1.tar.gz"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub tmpdir]}) (Com {[LIT_CHARS mkdir]} {[VarSub tmpdir]}) (Com {[LIT_CHARS cd]} {[VarSub tmpdir]}) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Untaring "][VarSub QEMU_TARBALL]]}) (Com {[LIT_CHARS tar]} {[LIT_CHARS zxf]} {[VarSub QEMU_TARBALL]}) (Com {[LIT_CHARS cd]} {[VarSub QEMU_DIR]}) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Patching "][VarSub QEMU_PATCH]]}) (Com {[LIT_CHARS patch]} {[LIT_CHARS -p1]} < (FilenameRedirectNode filename={[VarSub QEMU_PATCH]} 0), > ) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS Configuring]]}) (Com {[LIT_CHARS env]} {[LIT_CHARS -i]} {[LIT_VAR_LIKE "PATH="] [LIT_CHARS /usr/bin/] [LIT_OTHER ":"] [LIT_CHARS /bin] =} {[LIT_CHARS ./configure]} {[LIT_CHARS --extra-cflags] [LIT_OTHER "="] [DQ [LIT_CHARS -m32]]} {[LIT_CHARS --extra-ldflags] [LIT_OTHER "="] [DQ [LIT_CHARS "-Wl,-rpath=/lib32"]]} {[LIT_CHARS --disable-system]} {[LIT_CHARS --enable-linux-user]} {[LIT_CHARS --disable-darwin-user]} {[LIT_CHARS --disable-bsd-user]} {[LIT_CHARS --target-list] [LIT_OTHER "="] [LIT_CHARS arm-linux-user]} {[LIT_CHARS --disable-smartcard-nss]} {[LIT_CHARS --disable-sdl]}) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS Make]]}) (Com {[LIT_CHARS env]} {[LIT_CHARS -i]} {[LIT_VAR_LIKE "PATH="] [LIT_CHARS /usr/bin/] [LIT_OTHER ":"] [LIT_CHARS /bin] =} {[LIT_VAR_LIKE "V="] [LIT_CHARS 99] =} {[LIT_CHARS make]} {[LIT_VAR_LIKE "MAKE_OPTS="] [VarSub MAKE_OPTS] =}) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Install "][VarSub INSTALL_ROOT]]}) (Com {[LIT_CHARS cp]} {[LIT_CHARS arm-linux-user/qemu-arm]} {[VarSub INSTALL_ROOT]}) (Com {[LIT_CHARS cd]} {[VarSub saved_dir]}) (Com {[LIT_CHARS cp]} {[LIT_CHARS tools/trusted_cross_toolchains/qemu_tool_arm.sh]} {[VarSub INSTALL_ROOT]}) (Com {[LIT_CHARS ln]} {[LIT_CHARS -sf]} {[LIT_CHARS qemu_tool_arm.sh]} {[VarSub INSTALL_ROOT] [LIT_CHARS /run_under_qemu_arm]}) ) ) (FunctionDef BuildJail [] (List (Com {[LIT_CHARS ClearInstallDir]}) (Com {[LIT_CHARS InstallMissingArmLibrariesAndHeadersIntoJail]} {[VarSub ARMHF_BASE_DEP_FILES]} {[VarSub ARMHF_EXTRA_DEP_FILES]}) (Com {[LIT_CHARS CleanupJailSymlinks]}) (Com {[LIT_CHARS InstallTrustedLinkerScript]}) (Com {[LIT_CHARS HacksAndPatches]}) (Com {[LIT_CHARS BuildAndInstallQemu]}) (Com {[LIT_CHARS CreateTarBall]} {[VarSub 1]}) ) ) (FunctionDef GeneratePackageList [] (List (= scope= flags=0 words=[] bindings=[('output_file', {[VarSub 1]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Updating: "][VarSub output_file]]}) (Com {[LIT_CHARS /bin/rm]} {[LIT_CHARS -f]} {[VarSub output_file]}) (Com {[LIT_CHARS shift]}) (For pkg [{[VarSub @]}]) (List (= scope= flags=0 words=[] bindings=[('pkg_full', {[ComSub (Pipeline (Com {[LIT_CHARS grep]} {[LIT_CHARS -A]} {[LIT_CHARS 1]} {[DQ [VarSub pkg][\ LIT_ESCAPED_CHAR "\\$"]]} {[VarSub TMP] [LIT_CHARS /Packages]}) (Com {[LIT_CHARS tail]} {[LIT_CHARS -1]}) (Com {[LIT_CHARS egrep]} {[LIT_CHARS -o]} {[DQ [LIT_CHARS "pool/.*"]]}) )]})]) (If (DBracket {B1 UNARY_STRING_z {[VarSub pkg_full]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: missing package: "][VarSub pkg]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Pipeline (Com {[LIT_CHARS echo]} {[VarSub pkg_full]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s/^pool"][\ LIT_ESCAPED_CHAR "\\/"][LIT_CHARS //]]} < (FilenameRedirectNode filename={[VarSub output_file]} >"> 1), > ) ) ) ) (Com {[LIT_CHARS sort]} {[VarSub output_file]} {[LIT_CHARS -o]} {[VarSub output_file]}) ) ) (FunctionDef UpdatePackageLists [] (List (= scope= flags=0 words=[] bindings=[('package_list', {[DQ [VarSub TMP][LIT_CHARS /Packages.trusty.bz2]]})]) (= scope= flags=0 words=[] bindings=[('package_list2', {[DQ [VarSub TMP][LIT_CHARS /Packages.trusty-security.bz2]]})]) (Com {[LIT_CHARS DownloadOrCopy]} {[VarSub PACKAGE_LIST]} {[VarSub package_list]}) (Com {[LIT_CHARS DownloadOrCopy]} {[VarSub PACKAGE_LIST2]} {[VarSub package_list2]}) (Pipeline (Com {[LIT_CHARS bzcat]} {[VarSub package_list]} {[VarSub package_list2]}) (Com {[LIT_CHARS egrep]} {[SQ ]} < (FilenameRedirectNode filename={[VarSub TMP] [LIT_CHARS /Packages]} "> 1), > ) ) (Com {[LIT_CHARS GeneratePackageList]} {[VarSub ARMHF_BASE_DEP_LIST]} {[DQ [VarSub ARMHF_BASE_PACKAGES]]}) (Com {[LIT_CHARS GeneratePackageList]} {[VarSub ARMHF_EXTRA_DEP_LIST]} {[DQ [VarSub ARMHF_EXTRA_PACKAGES]]}) ) ) (If (DBracket {B2 BINARY_INT_EQ {[VarSub #]} {[LIT_CHARS 0]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: you must specify a mode on the commandline"]]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS Usage]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [ComSub (Com {[LIT_CHARS type]} {[LIT_CHARS -t]} {[VarSub 1]})]]} {[DQ [LIT_CHARS function]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: unknown function '"][VarSub 1][LIT_CHARS "'."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "For help, try:"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][VarSub 0][LIT_CHARS " help"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (ElseTrue) (List (Com {[LIT_CHARS ChangeDirectory]}) (Com {[LIT_CHARS SanityCheck]}) (Com {[DQ [VarSub @]]}) ) ) )