The same mechanisms are used for normal and fallback images.
[coreboot.git] / util / abuild / abuild
index 8b292ddcb8238f6eef0b92695569ad5685a86554..b44447bec41fb5c487a8467708b5985419c20756 100755 (executable)
@@ -14,8 +14,8 @@
 
 #set -x # Turn echo on....
 
-ABUILD_DATE="January 29th, 2010"
-ABUILD_VERSION="0.9"
+ABUILD_DATE="December 10th, 2010"
+ABUILD_VERSION="0.9.1"
 
 # Where shall we place all the build trees?
 TARGET=coreboot-builds
@@ -154,7 +154,6 @@ function create_config
        fi
 
        [ "$update" = "true" ] && mv ${build_dir}/coreboot.rom coreboot.rom.tmp
-       $MAKE distclean obj=${build_dir}
        mkdir -p ${build_dir}
        mkdir -p $TARGET/sharedutils
        [ "$update" = "true" ] && mv coreboot.rom.tmp ${build_dir}/coreboot.rom
@@ -177,7 +176,7 @@ function create_config
                if [ "$PAYLOAD" != "/dev/null" ]; then
                        echo "# CONFIG_PAYLOAD_NONE is not set" >> ${build_dir}/config.build
                        echo "CONFIG_PAYLOAD_ELF=y" >> ${build_dir}/config.build
-                       echo "CONFIG_FALLBACK_PAYLOAD_FILE=\"$PAYLOAD\"" >> ${build_dir}/config.build
+                       echo "CONFIG_PAYLOAD_FILE=\"$PAYLOAD\"" >> ${build_dir}/config.build
                fi
 
                if [ "$loglevel" != "default" ]; then
@@ -240,12 +239,18 @@ function create_buildenv
 
        # Allow simple "make" in the target directory
        MAKEFILE=$TARGET/${VENDOR}_${MAINBOARD}/Makefile
-       echo "# autogenerated makefile" > $MAKEFILE
+       echo "# autogenerated" > $MAKEFILE
        echo "TOP=$ROOT" >> $MAKEFILE
-       echo "OUT=$TARGET/${VENDOR}_${MAINBOARD}" >> $MAKEFILE
+       echo "BUILD=$TARGET" >> $MAKEFILE
+       echo "OBJ=\$(BUILD)/${VENDOR}_${MAINBOARD}" >> $MAKEFILE
+       echo "OBJUTIL=\$(BUILD)/sharedutils" >> $MAKEFILE
        echo "all:" >> $MAKEFILE
-       echo "  cd \$(TOP); \$(MAKE) oldconfig DOTCONFIG=\$(OUT)/config.build obj=\$(OUT)" >> $MAKEFILE
-       echo "  cd \$(TOP); \$(MAKE) DOTCONFIG=\$(OUT)/config.build obj=\$(OUT)" >> $MAKEFILE
+       echo "  @cp -a config.h config.h.bak" >> $MAKEFILE
+       echo "  @cd \$(TOP); \$(MAKE) oldconfig DOTCONFIG=\$(OBJ)/config.build objutil=\$(OBJUTIL) obj=\$(OBJ)" >> $MAKEFILE
+       echo "  @tail -n+6 config.h > config.new; tail -n+6 config.h.bak > config.old" >> $MAKEFILE
+       echo "  @cmp -s config.new config.old && cp -a config.h.bak config.h || echo \"Config file changed\"" >> $MAKEFILE
+       echo "  @rm config.h.bak config.new config.old" >> $MAKEFILE
+       echo "  @cd \$(TOP); \$(MAKE) DOTCONFIG=\$(OBJ)/config.build objutil=\$(OBJUTIL) obj=\$(OBJ)" >> $MAKEFILE
 
        return $ret
 }
@@ -292,20 +297,6 @@ function compile_target
        fi
 }
 
-function built_successfully
-{
-       CURR=`pwd`
-       status="fail"
-       if [ -d "$TARGET/${VENDOR}_${MAINBOARD}" ]; then
-               cd $TARGET/${VENDOR}_${MAINBOARD}
-               if [ -r compile.status ] ; then
-                       status=`cat compile.status`
-               fi
-               cd $CURR
-       fi
-       [ "$buildall" != "true" -a "$status" == "ok" ]
-}
-
 function build_broken
 {
        CURR=`pwd`
@@ -406,15 +397,6 @@ function build_target
                CC="$CC -fno-stack-protector"
        fi
 
-       built_successfully $VENDOR $MAINBOARD && test $update = "false" && \
-       {
-               printf " ( mainboard/$VENDOR/$MAINBOARD previously ok )\n\n"
-               xml "  <status>previouslyok</status>"
-               xml ""
-               xml "</mainboard>"
-               return 0
-       }
-
        build_broken $VENDOR $MAINBOARD || \
        {
                printf " ( broken mainboard/$VENDOR/$MAINBOARD skipped )\n\n"