(List (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub 2]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('REBUILD', {[DQ [VarSub 2]]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub 2]] [LIT_CHARS .sh]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "no stage "][VarSub 2]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) ) (If (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[VarSub #]} {[LIT_CHARS -lt]} {[LIT_CHARS 1]} {[LIT_OTHER "]"]}) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[VarSub #]} {[LIT_CHARS -gt]} {[LIT_CHARS 2]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[LIT_CHARS sources/targets/] [DQ [VarSub 1]]} {[LIT_OTHER "]"]}) ) ) (List (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][VarSub 0][LIT_CHARS " TARGET [REBUILD_FROM_STAGE]"]]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Supported architectures:"]]}) (Com {[LIT_CHARS ls]} {[LIT_CHARS sources/targets]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Build stages:"]]}) (Pipeline (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[SQ ]} {[DQ [VarSub 0]]}) (Com {[LIT_CHARS uniq]}) (Com {[LIT_CHARS xargs]} {[LIT_CHARS echo]}) ) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('ARCH', {[DQ [VarSub 1]]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[LIT_CHARS config]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS source]} {[LIT_CHARS config]}) ) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub BUILD]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('BUILD', {[DQ [LIT_CHARS build]]})]) ) (FunctionDef not_already [] (List (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub AGAIN]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [VarSub 1]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub REBUILD]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [VarSub 1]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS zap]} {[DQ [VarSub 1]]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub BUILD][LIT_CHARS /][VarSub 1][LIT_CHARS -][VarSub ARCH][LIT_CHARS .tar.gz]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "=== Skipping "][VarSub 1][LIT_CHARS -][VarSub ARCH][LIT_CHARS " (already there)"]]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) ) (FunctionDef zap [] (For i [{[DQ [VarSub @]]}]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub BUILD][LIT_CHARS /][VarSub i][LIT_CHARS -][VarSub ARCH][LIT_CHARS .tar.gz]]}) ) ) (FunctionDef do_stage [] (List (= scope= flags=0 words=[] bindings=[('STAGE', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]}) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub AFTER]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [VarSub STAGE]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS unset]} {[LIT_CHARS AFTER]}) (ElseTrue) (AndOr OP_OR_IF (Com {[LIT_CHARS time]} {[LIT_CHARS ./] [DQ [VarSub STAGE]] [LIT_CHARS .sh]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) ) (Com {[LIT_CHARS do_stage]} {[LIT_CHARS download]}) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub NO_HOST_TOOLS]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS do_stage]} {[LIT_CHARS host-tools]}) ) (If (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub MY_CROSS_PATH]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS not_already]} {[LIT_CHARS simple-cross-compiler]}) ) (List (Com {[LIT_CHARS zap]} {[LIT_CHARS root-filesystem]} {[LIT_CHARS cross-compiler]} {[LIT_CHARS native-compiler]}) (Com {[LIT_CHARS do_stage]} {[LIT_CHARS simple-cross-compiler]} {[DQ [VarSub ARCH]]}) ) ) (If (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub MY_CROSS_PATH]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub CROSS_COMPILER_HOST]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS not_already]} {[LIT_CHARS cross-compiler]}) ) ) (List (Com {[LIT_CHARS zap]} {[LIT_CHARS root-filesystem]} {[LIT_CHARS native-compiler]}) (If (Com {[LIT_CHARS not_already]} {[LIT_CHARS simple-cross-compiler]} more_env=[('ARCH', {[DQ [VarSub CROSS_COMPILER_HOST]]})] ) (Com {[LIT_CHARS do_stage]} {[LIT_CHARS simple-cross-compiler]} {[DQ [VarSub CROSS_COMPILER_HOST]]}) ) (Com {[LIT_CHARS do_stage]} {[LIT_CHARS cross-compiler]} {[DQ [VarSub ARCH]]}) ) ) (If (Pipeline! (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[LIT_VAR_LIKE "KARCH="] =} {[LIT_CHARS sources/targets/] [DQ [VarSub ARCH]]}) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS no]} {[LIT_CHARS KARCH]} {[LIT_CHARS in]} {[VarSub 1] [LIT_COMMA ","]} {[LIT_CHARS stopping]} {[LIT_CHARS here]}) ) (If (Com {[LIT_CHARS not_already]} {[LIT_CHARS root-filesystem]}) (Com {[LIT_CHARS do_stage]} {[LIT_CHARS root-filesystem]} {[DQ [VarSub ARCH]]}) ) (If (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub MY_CROSS_PATH]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Pipeline! (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[LIT_CHARS ELF2FLT]} {[LIT_CHARS sources/targets/] [DQ [VarSub ARCH]]}) ) (Com {[LIT_CHARS not_already]} {[LIT_CHARS native-compiler]}) ) ) (Com {[LIT_CHARS do_stage]} {[LIT_CHARS native-compiler]} {[DQ [VarSub ARCH]]}) ) (Com {[LIT_CHARS do_stage]} {[LIT_CHARS system-image]} {[DQ [VarSub ARCH]]}) )