(command.CommandList children: [ (C {<echo>} {(DQ <'*** BUILD BUSYBOX BEGIN ***'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SRC_DIR) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>}))} spids: [11] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:JOB_FACTOR) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-i>} {<Id.Lit_Other '^'> <JOB_FACTOR>} {<.config>}) (C {<cut>} {<-f2>} {<-d> (SQ <'='>)}) ] negated: F ) ) ) } spids: [20] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NUM_CORES) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<Id.Lit_Other '^'> <processor>} {<'/proc/cpuinfo'>}) (C {<wc>} {<-l>}) ] negated: F ) ) } spids: [49] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NUM_JOBS) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: <Id.Lit_ArithVarLike NUM_CORES> right: <Id.Lit_ArithVarLike JOB_FACTOR> ) ) } spids: [69] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SYSROOT) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>})) <'/work/sysroot'>} spids: [83] ) ] ) (C {<cd>} {<'work/busybox'>}) (C {<rm>} {<-rf>} {<busybox_installed>}) (C {<cd>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<ls>} {<-d>} {<busybox-> <Id.Lit_Star '*'>}) ) } ) (C {<echo>} {(DQ <'Preparing BusyBox work area. This may take a while...'>)}) (C {<make>} {<distclean>} {<-j>} {($ Id.VSub_DollarName '$NUM_JOBS')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USE_PREDEFINED_BUSYBOX_CONFIG) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-i>} {<Id.Lit_Other '^'> <USE_PREDEFINED_BUSYBOX_CONFIG>} {($ Id.VSub_DollarName '$SRC_DIR') <'/.config'>} ) (C {<cut>} {<-f2>} {<-d> (SQ <'='>)}) ] negated: F ) ) ) } spids: [141] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$USE_PREDEFINED_BUSYBOX_CONFIG'))} {<Id.Lit_Equals '='>} {(DQ <true>)} {<-a>} {<Id.KW_Bang '!'>} {<-f>} {($ Id.VSub_DollarName '$SRC_DIR') <'/minimal_config/busybox.config'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <'Config file '> ($ Id.VSub_DollarName '$SRC_DIR') <'/minimal_config/busybox.config does not exist.'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USE_PREDEFINED_BUSYBOX_CONFIG) op: assign_op.Equal rhs: {(DQ <false>)} spids: [207] ) ] ) ] spids: [168 195] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$USE_PREDEFINED_BUSYBOX_CONFIG'))} {<Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <'Using config file '> ($ Id.VSub_DollarName '$SRC_DIR') <'/minimal_config/busybox.config'> ) } ) (C {<cp>} {<-f>} {($ Id.VSub_DollarName '$SRC_DIR') <'/minimal_config/busybox.config'>} {<.config>} ) ] spids: [215 233] ) ] else_action: [ (C {<echo>} {(DQ <'Generating default BusyBox configuration...'>)}) (C {<make>} {<defconfig>} {<-j>} {($ Id.VSub_DollarName '$NUM_JOBS')}) (C {<sed>} {<-i>} {(DQ <'s/.*CONFIG_INETD.*/CONFIG_INETD=n/'>)} {<.config>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SYSROOT_ESCAPED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$SYSROOT') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) } ) (C {<sed>} {(SQ <'s/\\//\\\\\\//g'>)}) ] negated: F ) ) } spids: [316] ) ] ) (C {<sed>} {<-i>} {(DQ <'s/.*CONFIG_SYSROOT.*/CONFIG_SYSROOT='> ($ Id.VSub_DollarName '$SYSROOT_ESCAPED') <'/'>)} {<.config>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CFLAGS) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-i>} {<Id.Lit_Other '^'> <CFLAGS>} {<.config>}) (C {<cut>} {<-f2>} {<-d> (SQ <'='>)}) ] negated: F ) ) ) } spids: [353] ) ] ) (C {<echo>} {(DQ <'Building BusyBox...'>)}) (C {<make>} {<Id.Lit_VarLike 'EXTRA_CFLAGS='> (DQ ($ Id.VSub_DollarName '$CFLAGS'))} {<busybox>} {<-j>} {($ Id.VSub_DollarName '$NUM_JOBS')} ) (C {<echo>} {(DQ <'Generating BusyBox based initramfs area...'>)}) (C {<make>} {<Id.Lit_VarLike 'CONFIG_PREFIX='> (DQ <'../busybox_installed'>)} {<install>} {<-j>} {($ Id.VSub_DollarName '$NUM_JOBS')} ) (C {<cd>} {($ Id.VSub_DollarName '$SRC_DIR')}) (C {<echo>} {(DQ <'*** BUILD BUSYBOX END ***'>)}) ] )