# build and install gcc wrapper # Which compiler do we build the wrapper with, and should it be static? test $BUILD_STATIC == none && global STATIC_FLAGS := '' || global STATIC_FLAGS := '--static' test -z $HOST_ARCH && global TEMP := $CC || global TEMP := ""$(HOST_ARCH)-cc"" global LIBC_TYPE := 'musl' test ! -z $UCLIBC_CONFIG && test -z $MUSL && global LIBC_TYPE := 'uClibc' # Build wrapper binary mkdir -p "$STAGE_DIR/bin" && $TEMP "$SOURCES/toys/ccwrap.c" -Os $CFLAGS \ -o "$STAGE_DIR/bin/$(TOOLCHAIN_PREFIX)cc" $STATIC_FLAGS \ -DDYNAMIC_LINKER='"'/lib/ld-$(LIBC_TYPE).so.0'"' \ $(ELF2FLT:+-DELF2FLT) && # ${HOST_ARCH:+${ELF2FLT:+-DELF2FLT}} && echo -e "#!/bin/bash\n\n$(TOOLCHAIN_PREFIX)cc -E "'"$@"' \ > "$STAGE_DIR/bin/$(TOOLCHAIN_PREFIX)cpp" && chmod +x "$STAGE_DIR/bin/$(TOOLCHAIN_PREFIX)cpp" || dienow (CommandList children: [ (AndOr children: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$BUILD_STATIC"))} {(Lit_Other "=") (Lit_Other "=")} {(none)} {(Lit_Other "]")} ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:STATIC_FLAGS) op:Equal rhs:{(SQ )} spids:[23])] spids: [23] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STATIC_FLAGS) op: Equal rhs: {(--static)} spids: [27] ) ] spids: [27] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$HOST_ARCH"))} {(Lit_Other "]")}) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEMP) op: Equal rhs: {(DQ ($ VSub_Name "$CC"))} spids: [42] ) ] spids: [42] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEMP) op: Equal rhs: {(DQ (${ VSub_Name HOST_ARCH) (-cc))} spids: [49] ) ] spids: [49] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:LIBC_TYPE) op:Equal rhs:{(musl)} spids:[57])] spids: [57] ) (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} {(DQ ($ VSub_Name "$UCLIBC_CONFIG"))} {(Lit_Other "]")} ) (AndOr children: [ (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$MUSL"))} {(Lit_Other "]")}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:LIBC_TYPE) op:Equal rhs:{(uClibc)} spids:[86])] spids: [86] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$STAGE_DIR") (/bin))}) (AndOr children: [ (C {(DQ ($ VSub_Name "$TEMP"))} {(DQ ($ VSub_Name "$SOURCES") (/toys/ccwrap.c))} {(-Os)} {($ VSub_Name "$CFLAGS")} {(-o)} {(DQ ($ VSub_Name "$STAGE_DIR") (/bin/) (${ VSub_Name TOOLCHAIN_PREFIX) (cc))} {($ VSub_Name "$STATIC_FLAGS")} {(-DDYNAMIC_LINKER) (Lit_Other "=") (EscapedLiteralPart token:) (/lib/ld-) (${ VSub_Name LIBC_TYPE) (.so.0) (EscapedLiteralPart token:) } { (BracedVarSub token: suffix_op: (StringUnary op_id:VTest_ColonPlus arg_word:{(-DELF2FLT)}) spids: [147 151] ) } ) (AndOr children: [ (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ("#!/bin/bash") (EscapedLiteralPart token:) (EscapedLiteralPart token:) (${ VSub_Name TOOLCHAIN_PREFIX) ("cc -E ") ) (SQ <"\"$@\"">) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: { (DQ ($ VSub_Name "$STAGE_DIR") (/bin/) (${ VSub_Name TOOLCHAIN_PREFIX) (cpp)) } spids: [177] ) ] ) (AndOr children: [ (C {(chmod)} {(Lit_Other "+") (x)} {(DQ ($ VSub_Name "$STAGE_DIR") (/bin/) (${ VSub_Name TOOLCHAIN_PREFIX) (cpp))} ) (C {(dienow)}) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] )