4 OPTVAL=`getopt -o cb:l:s:k:L:v -n 'build-all' -- "$@"`
6 # XNU/BSD getopt is special...
7 OPTVAL=$(getopt cb:l:s:k:L:v "$@")
12 echo 'Usage: see source...'
22 b=$PWD # base directory
23 l=$b/build.log # where to log operations
24 s=$b/build.seq # build sequence
25 k=$b/kext.stage # where to place kexts after build
27 load='' # list of kexts to load
38 verbose=$(($verbose + 1))
66 echo "Internal error!"
93 function configure_xcode ()
100 module=$(basename $path)
101 pfile=$path/$module.xcode/project.pbxproj
102 if [ -r $pfile.template ] ;then
105 -include $b/build-config \
109 abort "missing $pfile.template"
113 if [ x$clean != x0 ] ;then
115 find $b/ -type d -name build
116 rm -fr $(find $b/ -type d -name build)
117 find $b/ -print0 | xargs -0 touch
120 cat $s | while read ;do
123 : # empty line. Do nothing
124 elif [ ${d:0:1} = '#' ] ;then
127 cd $d || abort "Cannot cd to $d"
128 message "________ Building in $d __________"
130 if [ $verbose -gt 0 ] ;then
131 xcodebuild 2>&1 | tee -a $l
133 xcodebuild >> $l 2>&1 || abort "Build failure in $d. See $l"
140 # copy all built kexts into $k
141 # sudo is used, because extensions are later chowned to root.
142 sudo rm -f ../include/arch
143 ln -s ../include/arch-xnu ../include/arch
144 sudo rm -fr $k || abort "Cannot clean $k"
145 mkdir $k || abort "Cannot create $k"
146 cp -R $(find ../ -name \*.kext -type d) $k || abort "Cannot stage kexts"
147 cd $k || abort "Cannot chdir to $k"
148 sudo chown -R root:wheel * || abort "Cannot chown kexts to root:wheel"
150 if [ x$load != x ] ;then
152 sudo kextload -r $k $load
154 sudo chown -R root:wheel *