(CommandList children: [ (C {(set)} {(-eu)}) (AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name CPP))} {(Lit_Other ']')}) (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$PROJROOT'))} {(Lit_Other ']')}) (BraceGroup children: [ (Sentence child: (SimpleCommand words: [{(echo)} {(DQ ('Require variables PROJROOT, CPP, CFLAGS, CPPFLAGS'))}] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) terminator: <Op_Semi ';'> ) (Sentence child: (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) terminator: <Op_Semi ';'> ) ] spids: [36] ) ] ) (Pipeline children: [ (BraceGroup children: [ (Sentence child: (C {(echo)} {(DQ ('#define INCLUDE_SDL'))}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(echo)} {(DQ ('#define INCLUDE_GL'))}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(echo)} { (DQ ('#include ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (config.h) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ) terminator: <Op_Semi ';'> ) (Sentence child: (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(ConstName)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Sentence child: (C {(echo)} {(DQ ('#ifdef ') ($ VSub_Name '$ConstName'))}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(echo)} {(DQ (validconst_) ($ VSub_Name '$ConstName'))}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(echo)} {(DQ ('#endif'))}) terminator: <Op_Semi ';'> ) ] spids: [93 122] ) ) terminator: <Op_Semi ';'> ) ] spids: [56] ) (C {(${ VSub_Name CPP)} {(${ VSub_Name CFLAGS)} {(${ VSub_Name CPPFLAGS)} {(-)}) (C {(grep)} {(validconst_)}) (C {(sed)} {(-e)} {(SQ <'s/validconst_\\(.*\\)$/\\1/'>)}) ] negated: F ) (Subshell child: (CommandList children: [ (C {(echo)}) (C {(echo)} {(DQ (" ConstList.txt has been generated by taking my own machine's valid list of"))} ) (C {(echo)} {(DQ (' constants and running it through your preprocessor. Hopefully it works'))} ) (C {(echo)} {(DQ (' for you. If not, try grepping your GL header files for #define GL*, and'))} ) (C {(echo)} {(DQ (" put the name of every constant you'd like to have at runtime into the"))} ) (C {(echo)} {(DQ (' ConstList.txt file.'))}) (C {(echo)} {(DQ (' Note that CmdlineGL can only use integer constants, and not all GL_* are.'))} ) (C {(echo)} {(DQ (" Also beware: 'make clean' will remove it!"))}) (C {(echo)}) ] ) redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] spids: [162 210] ) ] )