Reliably build arbitrary Kconfig-based revisions of SeaBIOS
authorPeter Stuge <peter@stuge.se>
Mon, 7 Feb 2011 20:16:40 +0000 (20:16 +0000)
committerPeter Stuge <peter@stuge.se>
Mon, 7 Feb 2011 20:16:40 +0000 (20:16 +0000)
Reliability is accomplished by checking out the desired SeaBIOS commitish
into a branch named 'coreboot' in the local SeaBIOS git repository. Using
a branch allows TAG-$(CONFIG_SEABIOS_..) to refer to any commitish in the
SeaBIOS git repo, not just branches and tags.

Configuration is done with make defconfig followed by enabling and
disabling of the relevant coreboot-specific SeaBIOS options by appending
to .config using echo. This works, because later entries in .config will
overwrite earlier ones.

Signed-off-by: Peter Stuge <peter@stuge.se>
Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6335 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

payloads/external/SeaBIOS/Makefile.inc
src/arch/x86/Makefile.inc

index 0ffdb638e1b4aac1de68129ac1726cb97bc0a250..575669c675997412ae6d4dcf06c979020262bcde 100644 (file)
@@ -1,31 +1,38 @@
 
 
 TAG-$(CONFIG_SEABIOS_MASTER)=origin/master
-TAG-$(CONFIG_SEABIOS_STABLE)=rel-0.6.1.3
+TAG-$(CONFIG_SEABIOS_STABLE)=1efb10b9ea30c45a8c9c6230234fefa10d2886ed
 
-all: seabios
-
-seabios: patch
-       cd seabios; $(MAKE)
+unexport KCONFIG_AUTOCONFIG
 
-patch: checkout
-       test -r seabios/.patched || \
-       perl -pi -e "s,#define CONFIG_COREBOOT 0,#define CONFIG_COREBOOT 1,;" \
-                -e "s,#define CONFIG_DEBUG_SERIAL 0,#define CONFIG_DEBUG_SERIAL 1,;" \
-                -e "s,#define CONFIG_VGAHOOKS 0,#define CONFIG_VGAHOOKS 1,;" \
-                seabios/src/config.h
-       touch seabios/.patched
+all: seabios
 
 checkout:
-       echo "Checking out SeaBIOS $(TAG-y)"
+       echo "    GIT        SeaBIOS $(TAG-y)"
        test -d seabios && ( cd seabios; git fetch ) || \
-       git clone git://git.linuxtogo.org/home/kevin/seabios.git seabios
-       cd seabios; git checkout -m $(TAG-y)
+               git clone git://git.linuxtogo.org/home/kevin/seabios.git
+       cd seabios; git checkout master; git branch -D coreboot 2>/dev/null; git checkout -b coreboot $(TAG-y)
+
+config: checkout
+       echo "    CONFIG     SeaBIOS $(TAG-y)"
+       $(MAKE) -C seabios defconfig
+       echo "CONFIG_COREBOOT=y" >> seabios/.config
+       echo "CONFIG_DEBUG_SERIAL=y" >> seabios/.config
+       echo "CONFIG_COREBOOT_FLASH=y" >> seabios/.config
+       echo "CONFIG_LZMA=y" >> seabios/.config
+       echo "CONFIG_FLASH_FLOPPY=y" >> seabios/.config
+       echo "CONFIG_VGAHOOKS=y" >> seabios/.config
+       # This shows how to force a previously set .config option *off*
+       #echo "# CONFIG_SMBIOS is not set" >> seabios/.config
+
+seabios: config
+       echo "    MAKE       SeaBIOS $(TAG-y)"
+       $(MAKE) -C seabios
 
 clean:
-       test -d seabios && (cd seabios; $(MAKE) clean) || exit 0
+       test -d seabios && $(MAKE) -C seabios clean || exit 0
 
 distclean:
        rm -rf seabios
 
-.PHONY: seabios
+.PHONY: checkout config seabios clean distclean
index a07e3cd5c58fc87ab04f675a866e238ff72269e1..afdcb9efcacd3b72dbf5b6ced47e0b75eb10f216 100644 (file)
@@ -278,6 +278,7 @@ endif
 
 seabios:
        $(MAKE) -C payloads/external/SeaBIOS -f Makefile.inc \
+                       HOSTCC="$(HOSTCC)" \
                        CC="$(CC)" LD="$(LD)" OBJDUMP="$(OBJDUMP)" \
                        OBJCOPY="$(OBJCOPY)" STRIP="$(STRIP)" \
                        CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \