ABUILD_VERSION="0.9"
# Where shall we place all the build trees?
-TARGET=$( pwd )/coreboot-builds
+TARGET=coreboot-builds
XMLFILE=$( pwd )/abuild.xml
# path to payload. Should be more generic
# clang mode enabled by -sb option.
scanbuild=false
+# use ccache
+ccache=false
+
# stackprotect mode enabled by -ns option.
stackprotect=false
echo "CONFIG_DEFAULT_CONSOLE_LOGLEVEL=$loglevel" >> .config
fi
+ if [ "$ccache" = "true" ]; then
+ printf "(ccache enabled) "
+ echo "CONFIG_CCACHE=y" >> .config
+ fi
+
if [ "$scanbuild" = "true" ]; then
printf "(scan-build enabled) "
echo "CONFIG_SCANBUILD_ENABLE=y" >> .config
MAINBOARD=$2
CONFIG=$3
create_config $VENDOR $MAINBOARD $CONFIG
+
+ # Allow simple "make" in the target directory
+ MAKEFILE=$TARGET/${VENDOR}_${MAINBOARD}/Makefile
+ echo "# autogenerated makefile" > $MAKEFILE
+ echo "TOP=$ROOT" >> $MAKEFILE
+ echo "OUT=$TARGET/${VENDOR}_${MAINBOARD}" >> $MAKEFILE
+ echo "coreboot.rom:" >> $MAKEFILE
+ echo " cp config.build \$(TOP)/.config" >> $MAKEFILE
+ echo " cd \$(TOP); \$(MAKE) oldconfig obj=\$(OUT)" >> $MAKEFILE
+ echo " cd \$(TOP); \$(MAKE) obj=\$(OUT)" >> $MAKEFILE
}
function compile_target
printf " [-s|--silent] omit compiler calls in logs\n"
printf " [-ns|--nostackprotect] use gcc -fno-stack-protector option\n"
printf " [-sb|--scan-build] use clang's static analyzer\n"
+ printf " [-y|--ccache] use ccache\n"
printf " [-C|--config] configure-only mode\n"
printf " [-l|--loglevel <num>] set loglevel\n"
printf " [lbroot] absolute path to coreboot sources\n"
getoptbrand="`getopt -V`"
if [ "${getoptbrand:0:6}" == "getopt" ]; then
# Detected GNU getopt that supports long options.
- args=`getopt -l version,verbose,help,all,target:,broken,payloads:,test,cpus:,silent,xml,config,loglevel: Vvhat:bp:Tc:sxCl: -- "$@"`
+ args=`getopt -l version,verbose,help,all,target:,broken,payloads:,test,cpus:,silent,xml,config,loglevel:,ccache Vvhat:bp:Tc:sxCl:y -- "$@"`
eval set "$args"
else
# Detected non-GNU getopt
- args=`getopt Vvhat:bp:Tc:sxCl:o $*`
+ args=`getopt Vvhat:bp:Tc:sxCl:y $*`
set -- $args
fi
-a|--all) shift; buildall=true;;
-b|--broken) shift; buildbroken=true;;
-r|--remove) shift; remove=true; shift;;
- -v|--verbose) shift; verbose=true;;
+ -v|--verbose) shift; verbose=true; silent='V=1';;
-V|--version) shift; myversion; exit 0;;
-h|--help) shift; myversion; myhelp; exit 0;;
-p|--payloads) shift; payloads="$1"; shift;;
-s|--silent) shift; silent="-s";;
-ns|--nostackprotect) shift; stackprotect=true;;
-sb|--scan-build) shift; scanbuild=true;;
+ -y|--ccache) shift; ccache=true;;
-C|--config) shift; configureonly=1;;
-l|--loglevel) shift; loglevel="$1"; shift;;
--) shift; break;;