(List (FunctionDef cc_path [] (List (= scope= flags=0 words=[{[LIT_CHARS i]}] bindings=[]) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub MY_CROSS_PATH]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('CC_PREFIX', {[DQ [VarSub MY_CC_PREFIX]]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub CC_PREFIX]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "MY_CROSS_PATH without MY_CC_PREFIX"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS dienow]}) ) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [VarSub MY_CROSS_PATH][LIT_CHARS ":"]]}) (Com {[LIT_CHARS return]}) ) ) (For i [{[DQ [VarSub BUILD]] [LIT_CHARS /] [LIT_LBRACE "{"] [LIT_COMMA ","] [LIT_CHARS simple-] [LIT_RBRACE "}"] [LIT_CHARS cross-compiler-] [DQ [VarSub 1][LIT_CHARS /bin]]}]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[DQ [VarSub i][LIT_CHARS /][VarSub 1][LIT_CHARS -cc]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS break]}) ) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [VarSub i][LIT_CHARS ":"]]}) ) ) (FunctionDef base_architecture [] (List (= scope= flags=0 words=[] bindings=[('ARCH', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS source]} {[DQ [VarSub CONFIG_DIR][LIT_CHARS /][VarSub 1]]}) ) ) (FunctionDef load_target [] (List (= scope= flags=0 words=[] bindings=[('ARCH_NAME', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('CONFIG_DIR', {[DQ [VarSub SOURCES][LIT_CHARS /targets]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub CONFIG_DIR][LIT_CHARS /][VarSub 1]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS base_architecture]} {[DQ [VarSub ARCH_NAME]]}) (= scope= flags=0 words=[] bindings=[('CONFIG_DIR', {[SQ ]})]) ) (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub CONFIG_DIR][LIT_CHARS /][VarSub 1][LIT_CHARS /settings]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS source]} {[DQ [VarSub CONFIG_DIR][LIT_CHARS /][VarSub 1][LIT_CHARS /settings]]}) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub ARCH]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS dienow]} {[DQ [LIT_CHARS "No base_architecture"]]}) ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Supported architectures: "]]}) (Com {[LIT_CHARS ls]} {[DQ [VarSub CONFIG_DIR]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=1 words=[] bindings=[('WORK', {[DQ [VarSub BUILD][LIT_CHARS /temp-][VarSub ARCH_NAME]]})]) (Com {[LIT_CHARS export_if_blank]} {[LIT_VAR_LIKE "CROSS_HOST="] [ComSub (Com {[LIT_CHARS uname]} {[LIT_CHARS -m]})] [LIT_CHARS -walrus-linux] =}) (Com {[LIT_CHARS export_if_blank]} {[LIT_VAR_LIKE "CROSS_TARGET="] [VarSub ARCH] [LIT_CHARS -unknown-linux] =}) (= scope= flags=0 words=[] bindings=[('STAGE_DIR', {[DQ [VarSub BUILD][LIT_CHARS /][VarSub STAGE_NAME][LIT_CHARS -][VarSub ARCH_NAME]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub KEEP_STAGEDIR]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS blank_tempdir]} {[DQ [VarSub STAGE_DIR]]}) (ElseTrue) (AndOr OP_OR_IF (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub STAGE_DIR]]}) (Com {[LIT_CHARS dienow]}) ) ) (Com {[LIT_CHARS blank_tempdir]} {[DQ [VarSub WORK]]} more_env=[('NO_CLEANUP', {[VarSub NO_CLEANUP transform_ops=[PatSub {[LIT_CHARS temp]} {[LIT_SLASH /]}]]})] ) (= scope= flags=1 words=[] bindings=[('PATH', {[DQ [ComSub (Com {[LIT_CHARS cc_path]} {[DQ [VarSub ARCH]]})][VarSub PATH]]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub HOST_ARCH]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub HOST_ARCH]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub ARCH]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('PATH', {[DQ [ComSub (Com {[LIT_CHARS cc_path]} {[DQ [VarSub HOST_ARCH]]})][VarSub PATH]]})]) ) ) (Com {[LIT_CHARS export_if_blank]} {[LIT_VAR_LIKE "CC_PREFIX="] [DQ [VarSub ARCH][LIT_CHARS -]] =}) (= scope= flags=0 words=[] bindings=[('DO_CROSS', {[DQ [LIT_CHARS "CROSS_COMPILE="][VarSub CC_PREFIX]]})]) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) ) (FunctionDef build_section [] (List (AndOr OP_AND_IF (Com {[LIT_CHARS is_in_list]} {[VarSub 1]} {[VarSub BUILD_STATIC]}) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub ARCH]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('STATIC_FLAGS', {[DQ [LIT_CHARS --static]]})]) ) ) (= scope= flags=0 words=[] bindings=[('OLDCPUS', {[VarSub CPUS]})]) (= scope= flags=0 words=[] bindings=[('OLDNOCLEAN', {[VarSub NO_CLEANUP]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS is_in_list]} {[VarSub 1]} {[VarSub DEBUG_PACKAGE]}) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('CPUS', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('NO_CLEANUP', {[LIT_CHARS 1]})]) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[DQ [VarSub SOURCES][LIT_CHARS /sections/][VarSub 1]] [LIT_CHARS .build]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS setupfor]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS .]} {[DQ [VarSub SOURCES][LIT_CHARS /sections/][VarSub 1]] [LIT_CHARS .build]}) (Com {[LIT_CHARS cleanup]}) ) (ElseTrue) (List (Com {[LIT_CHARS announce]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS .]} {[DQ [VarSub SOURCES]] [LIT_CHARS /sections/] [DQ [VarSub 1]] [LIT_CHARS .sh]}) ) ) (= scope= flags=0 words=[] bindings=[('CPUS', {[VarSub OLDCPUS]})]) (= scope= flags=0 words=[] bindings=[('NO_CLEANUP', {[VarSub OLDNOCLEAN]})]) ) ) (FunctionDef getconfig [] (List (For i [{[LIT_LBRACE "{"] [VarSub ARCH_NAME] [LIT_COMMA ","] [VarSub ARCH] [LIT_RBRACE "}"] [LIT_CHARS /miniconfig-] [VarSub 1]}]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub CONFIG_DIR][LIT_CHARS /][VarSub i]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS cat]} {[DQ [VarSub CONFIG_DIR][LIT_CHARS /][VarSub i]]}) (Com {[LIT_CHARS return]}) ) ) ) (Com {[LIT_CHARS cat]} {[DQ [VarSub SOURCES][LIT_CHARS /baseconfig-][VarSub 1]]}) (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS "echo "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "{"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 1]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS a-z]} {[LIT_CHARS A-Z]}) )][LIT_CHARS "_CONFIG}"][\ LIT_ESCAPED_CHAR "\\\""]]}) ) ) (FunctionDef recent_binary_files [] (List (= scope= flags=0 words=[] bindings=[('PREVIOUS', {[SQ ]})]) (Pipeline (Subshell (List (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub STAGE_DIR]]}) (Com {[LIT_CHARS dienow]}) ) (Pipeline (Com {[LIT_CHARS find]} {[LIT_CHARS .]} {[LIT_CHARS -depth]} {[LIT_CHARS -newer]} {[DQ [VarSub CURSRC][LIT_CHARS /BUILD-TIMESTAMP]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) ) ) ) (While (Com {[LIT_CHARS read]} {[LIT_CHARS i]}) (List (= scope= flags=0 words=[] bindings=[('TEMP', {[DQ [VarSub PREVIOUS transform_ops=[VS_UNARY_DPOUND {[DQ [VarSub i]] [LIT_SLASH /]}]]]})]) (If (Com {[LIT_OTHER "["]} {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub PREVIOUS transform_ops=[(#len)]]}} {A Atom NODE_ARITH_WORD {[VarSub TEMP transform_ops=[(#len)]]}}}]} {[LIT_CHARS -ne]} {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub i transform_ops=[(#len)]]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [VarSub i]]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS -ne]} {[SQ ]}) ) ) (= scope= flags=0 words=[] bindings=[('PREVIOUS', {[DQ [VarSub i]]})]) ) ) ) ) ) (FunctionDef cleanup [] (List (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[VarSub ?]} {[LIT_CHARS -ne]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS dienow]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub BINARY_PACKAGE_TARBALLS]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('TARNAME', {[DQ [VarSub PACKAGE][LIT_CHARS -][VarSub STAGE_NAME][LIT_CHARS -][VarSub ARCH_NAME]] [LIT_CHARS .tar.gz]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [ComSub (Com {[LIT_CHARS recent_binary_files]})]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS Creating]} {[DQ [VarSub TARNAME]]}) (Pipeline (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS recent_binary_files]}) (Com {[LIT_CHARS xargs]} {[LIT_CHARS -0]} {[LIT_CHARS tar]} {[LIT_CHARS -czvf]} {[DQ [VarSub BUILD][LIT_CHARS /][VarSub TARNAME]]} {[LIT_CHARS -C]} {[DQ [VarSub STAGE_DIR]]}) ) (Com {[LIT_CHARS dienow]}) ) (Com {[LIT_CHARS dotprogress]}) ) ) ) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub NO_CLEANUP]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "skip cleanup "][VarSub PACKAGE][LIT_CHARS " "][VarSub @]]}) (Com {[LIT_CHARS return]}) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub WORK]]}) (Com {[LIT_CHARS dienow]}) ) (For i [{[VarSub WORKDIR_LIST]}]) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "cleanup "][VarSub i]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub i]]}) (Com {[LIT_CHARS dienow]}) ) ) ) (= scope= flags=0 words=[] bindings=[('WORKDIR_LIST', {[SQ ]})]) ) ) (FunctionDef blank_workdir [] (List (= scope= flags=0 words=[] bindings=[('WORKDIR_LIST', {[DQ [VarSub 1][LIT_CHARS " "][VarSub WORKDIR_LIST]]})]) (Com {[LIT_CHARS blank_tempdir]} {[DQ [VarSub WORK][LIT_CHARS /][VarSub 1]]} more_env=[('NO_CLEANUP', {[SQ ]})] ) (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub WORK][LIT_CHARS /][VarSub 1]]}) (Com {[LIT_CHARS dienow]}) ) ) ) (FunctionDef setupfor [] (List (= scope= flags=1 words=[] bindings=[('WRAPPY_LOGPATH', {[DQ [VarSub BUILD][LIT_CHARS /logs/cmdlines.][VarSub ARCH_NAME][LIT_CHARS .][VarSub STAGE_NAME][LIT_CHARS .setupfor]]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS extract_package]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (= scope= flags=0 words=[] bindings=[('SNAPFROM', {[DQ [ComSub (Com {[LIT_CHARS package_cache]} {[DQ [VarSub 1]]})]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Snapshot '"][VarSub PACKAGE][LIT_CHARS "'..."]]}) (For LINKTYPE [{[LIT_CHARS l]}, {[LIT_CHARS s]}, {[LIT_CHARS n]}]) (List (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub REUSE_CURSRC]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS blank_workdir]} {[DQ [VarSub PACKAGE]]}) (= scope= flags=0 words=[] bindings=[('CURSRC', {[DQ [ComSub (Com {[LIT_CHARS pwd]})]]})]) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS cp]} {[LIT_CHARS -] [VarSub LINKTYPE] [LIT_CHARS fR]} {[DQ [VarSub SNAPFROM][LIT_CHARS /]] [LIT_OTHER "*"]} {[DQ [VarSub CURSRC]]}) (Com {[LIT_CHARS break]}) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub CURSRC]]}) (Com {[LIT_CHARS dienow]}) ) (= scope= flags=1 words=[] bindings=[('WRAPPY_LOGPATH', {[DQ [VarSub BUILD][LIT_CHARS /logs/cmdlines.][VarSub ARCH_NAME][LIT_CHARS .][VarSub STAGE_NAME][LIT_CHARS .][VarSub 1]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub BINARY_PACKAGE_TARBALLS]]} {[LIT_OTHER "]"]}) (List (AndOr OP_OR_IF (Com {[LIT_CHARS touch]} {[DQ [VarSub CURSRC][LIT_CHARS /BUILD-TIMESTAMP]]}) (Com {[LIT_CHARS dienow]}) ) (= scope= flags=0 words=[] bindings=[('TIME', {[ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS s]})]})]) (While (Com {[LIT_CHARS true]}) (List (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[VarSub TIME]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS s]})]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS break]}) ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS .1]}) ) ) ) ) ) ) (FunctionDef getversion [] (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ] [DQ [VarSub 2]] [SQ ]}) ) ) (FunctionDef get_download_version [] (Com {[LIT_CHARS getversion]} {[ComSub (Pipeline (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[SQ ]} {[DQ [VarSub TOP][LIT_CHARS /download.sh]]}) (Com {[LIT_CHARS grep]} {[VarSub 1] [LIT_CHARS -]}) )]}) ) (FunctionDef identify_release [] (List (= scope= flags=0 words=[] bindings=[('DIR', {[DQ [VarSub SRCDIR][LIT_CHARS /][VarSub 1]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -d]} {[DQ [VarSub DIR]]} {[LIT_OTHER "]"]}) (Subshell (List (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub DIR]]}) (Com {[LIT_CHARS dienow]}) ) (= scope= flags=0 words=[] bindings=[('ID', {[DQ [ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS -1]} {[LIT_CHARS --format] [LIT_OTHER "="] [LIT_OTHER "%"] [LIT_CHARS H]})]]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub ID]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[LIT_CHARS git]} {[DQ [VarSub ID]]}) (Com {[LIT_CHARS return]}) ) ) (= scope= flags=0 words=[] bindings=[('ID', {[DQ [ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS hg]} {[LIT_CHARS identify]} {[LIT_CHARS -n]})]]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub ID]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[LIT_CHARS hg]} {[DQ [VarSub ID]]}) (Com {[LIT_CHARS return]}) ) ) (= scope= flags=0 words=[] bindings=[('ID', {[DQ [ComSub (Pipeline (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS svn]} {[LIT_CHARS info]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[DQ [LIT_CHARS "s/^Revision: //p"]]}) )]]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub ID]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[LIT_CHARS svn]} {[DQ [VarSub ID]]}) (Com {[LIT_CHARS return]}) ) ) ) ) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS release]} {[LIT_CHARS version]} {[ComSub (Com {[LIT_CHARS get_download_version]} {[VarSub 1]})]}) ) ) (FunctionDef do_manifest [] (List (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub SCRIPT_VERS]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('SCRIPT_VERS', {[DQ [LIT_CHARS "mercurial rev "][ComSub (List (Com {[LIT_CHARS cd]} {[DQ [VarSub TOP]]}) (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS hg]} {[LIT_CHARS identify]} {[LIT_CHARS -n]}) )]]})]) ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Built on "][ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS F]})][LIT_CHARS " from:\n"][LIT_CHARS "\n"][LIT_CHARS " Build script:\n"][LIT_CHARS " Aboriginal Linux (http://landley.net/aboriginal) "][VarSub SCRIPT_VERS][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS " Base packages:\n"][LIT_CHARS " uClibc (http://uclibc.org) "][ComSub (Com {[LIT_CHARS identify_release]} {[LIT_CHARS uClibc]})][LIT_CHARS "\n"][LIT_CHARS " BusyBox (http://busybox.net) "][ComSub (Com {[LIT_CHARS identify_release]} {[LIT_CHARS busybox]})][LIT_CHARS "\n"][LIT_CHARS " Linux (http://kernel.org/pub/linux/kernel) "][ComSub (Com {[LIT_CHARS identify_release]} {[LIT_CHARS linux]})][LIT_CHARS "\n"][LIT_CHARS " toybox (http://landley.net/toybox) "][ComSub (Com {[LIT_CHARS identify_release]} {[LIT_CHARS toybox]})][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS " Toolchain packages:\n"][LIT_CHARS " Binutils (http://www.gnu.org/software/binutils/) "][ComSub (Com {[LIT_CHARS identify_release]} {[LIT_CHARS binutils]})][LIT_CHARS "\n"][LIT_CHARS " GCC (http://gcc.gnu.org) "][ComSub (Com {[LIT_CHARS identify_release]} {[LIT_CHARS gcc-core]})][LIT_CHARS "\n"][LIT_CHARS " gmake (http://www.gnu.org/software/make) "][ComSub (Com {[LIT_CHARS identify_release]} {[LIT_CHARS make]})][LIT_CHARS "\n"][LIT_CHARS " bash (ftp://ftp.gnu.org/gnu/bash) "][ComSub (Com {[LIT_CHARS identify_release]} {[LIT_CHARS bash]})][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS " Optional packages:\n"][LIT_CHARS " distcc (http://distcc.samba.org) "][ComSub (Com {[LIT_CHARS identify_release]} {[LIT_CHARS distcc]})][LIT_CHARS "\n"][LIT_CHARS " uClibc++ (http://cxx.uclibc.org) "][ComSub (Com {[LIT_CHARS identify_release]} {[LIT_CHARS uClibc] [LIT_OTHER "+"] [LIT_OTHER "+"]})][LIT_CHARS "\n"]]} 0), > ) ) ) (FunctionDef link_arch_name [] (List (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub ARCH]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [VarSub ARCH_NAME]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub BUILD][LIT_CHARS /][VarSub 2]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[DQ [VarSub 1]]} {[DQ [VarSub BUILD][LIT_CHARS /][VarSub 2]]}) (Com {[LIT_CHARS dienow]}) ) ) ) ) (FunctionDef check_for_base_arch [] (If (Com {[LIT_OTHER "["]} {[DQ [VarSub ARCH]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub ARCH_NAME]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS link_arch_name]} {[VarSub STAGE_NAME] [LIT_CHARS -] [LIT_LBRACE "{"] [DQ [VarSub ARCH]] [LIT_COMMA ","] [DQ [VarSub ARCH_NAME]] [LIT_RBRACE "}"]}) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[VarSub STAGE_NAME] [LIT_CHARS -] [DQ [VarSub ARCH]] [LIT_CHARS .tar.gz]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS link_arch_name]} {[VarSub STAGE_NAME] [LIT_CHARS -] [LIT_LBRACE "{"] [DQ [VarSub ARCH]] [LIT_COMMA ","] [DQ [VarSub ARCH_NAME]] [LIT_RBRACE "}"] [LIT_CHARS .tar.gz]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[DQ [VarSub BUILD][LIT_CHARS /][VarSub STAGE_NAME][LIT_CHARS -][VarSub ARCH]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS announce]} {[DQ [LIT_CHARS "Using existing "][VarSub STAGE_NAME][LIT_CHARS -][VarSub ARCH]]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) ) (ElseTrue) (AndOr OP_OR_IF (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub BUILD][LIT_CHARS /][VarSub STAGE_NAME][LIT_CHARS -][VarSub ARCH]]}) (Com {[LIT_CHARS dienow]}) ) ) ) ) ) (FunctionDef create_stage_tarball [] (List (Com {[LIT_CHARS rmdir]} {[DQ [VarSub WORK]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub BUILD]]}) (Com {[LIT_CHARS dienow]}) ) (Com {[LIT_CHARS link_arch_name]} {[VarSub STAGE_NAME] [LIT_CHARS -] [LIT_LBRACE "{"] [VarSub ARCH] [LIT_COMMA ","] [VarSub ARCH_NAME] [LIT_RBRACE "}"]}) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub NO_STAGE_TARBALLS]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS creating]} {[DQ [VarSub STAGE_NAME][LIT_CHARS -][VarSub ARCH]] [LIT_CHARS .tar.gz]}) (Pipeline (AndOr OP_OR_IF (Com {[LIT_CHARS tar]} {[LIT_CHARS czvf]} {[DQ [VarSub STAGE_NAME][LIT_CHARS -][VarSub ARCH]] [LIT_CHARS .tar.gz]} {[DQ [VarSub STAGE_NAME][LIT_CHARS -][VarSub ARCH]]}) (Com {[LIT_CHARS dienow]}) ) (Com {[LIT_CHARS dotprogress]}) ) (Com {[LIT_CHARS link_arch_name]} {[VarSub STAGE_NAME] [LIT_CHARS -] [LIT_LBRACE "{"] [VarSub ARCH] [LIT_COMMA ","] [VarSub ARCH_NAME] [LIT_RBRACE "}"] [LIT_CHARS .tar.gz]}) ) ) ) ) (FunctionDef hosttools_path [] (List (= scope= flags=0 words=[{[LIT_CHARS X]}] bindings=[]) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [VarSub HOSTTOOLS]]}) (= scope= flags=0 words=[] bindings=[('X', {[LIT_CHARS 1]})]) (While (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[DQ [VarSub HOSTTOOLS][LIT_CHARS /fallback-][VarSub X]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [LIT_CHARS ":"][VarSub HOSTTOOLS][LIT_CHARS /fallback-][VarSub X]]}) (= scope= flags=0 words=[] bindings=[('X', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub X]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) ) ) ) (FunctionDef image_filesystem [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "make "][VarSub SYSIMAGE_TYPE][LIT_CHARS " "][VarSub 2]]}) (If (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub SYSIMAGE_TYPE]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS cpio]]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[DQ [VarSub SYSIMAGE_TYPE]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS rootfs]]} {[LIT_OTHER "]"]}) ) (List (AndOr OP_AND_IF (Com {[LIT_CHARS extract_package]} {[LIT_CHARS linux]}) (AndOr OP_OR_IF (Com {[VarSub CC]} {[DQ [ComSub (Com {[LIT_CHARS package_cache]} {[VarSub PACKAGE]})][LIT_CHARS /usr/gen_init_cpio.c]]} {[LIT_CHARS -o]} {[DQ [VarSub WORK]] [LIT_CHARS /my_gen_init_cpio]}) (Com {[LIT_CHARS dienow]}) ) ) (AndOr OP_OR_IF (Pipeline (Com {[DQ [VarSub WORK]] [LIT_CHARS /my_gen_init_cpio]} {[ComSub (List (AndOr OP_OR_IF (Com {[DQ [VarSub SOURCES]] [LIT_CHARS /toys/gen_initramfs_list.sh]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS dienow]}) ) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub 1]] [LIT_CHARS /init]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "slink /init /sbin/init.sh 755 0 0"]]}) ) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[DQ [VarSub 1]] [LIT_CHARS /dev]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "dir /dev 755 0 0"]]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "nod /dev/console 660 0 0 c 5 1"]]}) )]}) (Com {[LIT_CHARS gzip]} {[LIT_CHARS -9]} < (FilenameRedirectNode filename={[DQ [VarSub 2][LIT_CHARS .cpio.gz]]} "> 1), > ) ) (Com {[LIT_CHARS dienow]}) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS Initramfs]} {[LIT_CHARS generated.]}) ) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub SYSIMAGE_TYPE]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS ext2]]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[DQ [VarSub SYSIMAGE_TYPE]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS ext3]]} {[LIT_OTHER "]"]}) ) (List (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub SYSIMAGE_HDA_MEGS]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('SYSIMAGE_HDA_MEGS', {[LIT_CHARS 64]})]) ) (= scope= flags=0 words=[] bindings=[('BLOCKS', {[ArithSub {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1024]}} {A2 AS_OP_SLASH {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[ComSub (Pipeline (Com {[LIT_CHARS du]} {[LIT_CHARS -m]} {[LIT_CHARS -s]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 12]}}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 10]}}}}]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[VarSub BLOCKS]} {[LIT_CHARS -lt]} {[LIT_CHARS 4096]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('BLOCKS', {[LIT_CHARS 4096]})]) ) (= scope= flags=0 words=[] bindings=[('FILE', {[DQ [VarSub 2][LIT_CHARS .][VarSub SYSIMAGE_TYPE]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "/dev d 755 0 0 - - - - -"]]} < (FilenameRedirectNode filename={[DQ [VarSub WORK][LIT_CHARS /devs]]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "/dev/console c 640 0 0 5 1 0 0 -"]]} < (FilenameRedirectNode filename={[DQ [VarSub WORK][LIT_CHARS /devs]]} >"> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS genext2fs]} {[LIT_CHARS -z]} {[LIT_CHARS -D]} {[DQ [VarSub WORK][LIT_CHARS /devs]]} {[LIT_CHARS -d]} {[DQ [VarSub 1]]} {[LIT_CHARS -b]} {[VarSub BLOCKS]} {[LIT_CHARS -i]} {[LIT_CHARS 1024]} {[DQ [VarSub FILE]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS rm]} {[DQ [VarSub WORK][LIT_CHARS /devs]]}) (Com {[LIT_CHARS dienow]}) ) ) ) ) (If (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub SYSIMAGE_HDA_MEGS]]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[ArithSub {A2 AS_OP_SLASH {A Atom NODE_ARITH_WORD {[ComSub (Com {[LIT_CHARS stat]} {[LIT_CHARS -c]} {[LIT_OTHER "%"] [LIT_CHARS s]} {[DQ [VarSub FILE]]})]}} {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1024]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1024]}}}}]} {[LIT_CHARS -lt]} {[DQ [VarSub SYSIMAGE_HDA_MEGS]]} {[LIT_OTHER "]"]}) ) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS resizing]} {[LIT_CHARS image]} {[LIT_CHARS to]} {[VarSub SYSIMAGE_HDA_MEGS]}) (AndOr OP_OR_IF (Com {[LIT_CHARS resize2fs]} {[DQ [VarSub FILE]]} {[VarSub SYSIMAGE_HDA_MEGS] [LIT_CHARS M]}) (Com {[LIT_CHARS dienow]}) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS tune2fs]} {[LIT_CHARS -c]} {[LIT_CHARS 0]} {[LIT_CHARS -i]} {[LIT_CHARS 0]} {[ComSub (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub SYS_IMAGE_TYPE]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS ext3]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS -j]}) )]} {[DQ [VarSub FILE]]}) (Com {[LIT_CHARS dienow]}) ) (Com {[LIT_CHARS echo]} {[VarSub SYSIMAGE_TYPE]} {[LIT_CHARS generated]}) ) (Com {[LIT_OTHER "["]} {[DQ [VarSub SYSIMAGE_TYPE]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS squashfs]]} {[LIT_OTHER "]"]}) (AndOr OP_OR_IF (Com {[LIT_CHARS mksquashfs]} {[DQ [VarSub 1]]} {[DQ [VarSub 2][LIT_CHARS .sqf]]} {[LIT_CHARS -noappend]} {[LIT_CHARS -all-root]} {[VarSub FORK test_op=VS_TEST_COLON_PLUS {[LIT_CHARS -no-progress]}]}) (Com {[LIT_CHARS dienow]}) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Unknown image type "][VarSub SYSIMAGE_TYPE]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS dienow]}) ) ) ) ) )