See patch.

The new TAG-stable points to the very latest commit in seabios.git,
which may not be quite right, but both stable and master must be
using Kconfig.


//Peter
Reliably build arbitrary Kconfig-based revisions of SeaBIOS

The reliability is accomplished by checking out the user's desired SeaBIOS
tag into a branch named 'coreboot' in the local SeaBIOS git repository.
Thanks to the use of a branch TAG-$(CONFIG_SEABIOS_..) can refer to any
commitish at all in the SeaBIOS git repo.

Configuration is done by make defconfig followed by enabling of several
coreboot-specific Kconfig options for SeaBIOS using perl.

Signed-off-by: Peter Stuge <pe...@stuge.se>

Index: src/arch/x86/Makefile.inc
===================================================================
--- src/arch/x86/Makefile.inc   (revision 6317)
+++ src/arch/x86/Makefile.inc   (working copy)
@@ -286,6 +286,7 @@
 
 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) \
Index: payloads/external/SeaBIOS/Makefile.inc
===================================================================
--- payloads/external/SeaBIOS/Makefile.inc      (revision 6317)
+++ payloads/external/SeaBIOS/Makefile.inc      (working copy)
@@ -1,31 +1,34 @@
 
 
 TAG-$(CONFIG_SEABIOS_MASTER)=origin/master
-TAG-$(CONFIG_SEABIOS_STABLE)=rel-0.6.1.3
+TAG-$(CONFIG_SEABIOS_STABLE)=42d977125110305704ad5794ba4da163faeed382
 
+unexport KCONFIG_AUTOCONFIG
+
 all: seabios
 
-seabios: patch
-       cd seabios; $(MAKE)
-
-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
-
 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
+       perl -pi -e 's,.*CONFIG_COREBOOT.*,CONFIG_COREBOOT=y,;' \
+                -e 's,.*CONFIG_DEBUG_SERIAL.*,CONFIG_DEBUG_SERIAL=y,;' \
+                -e 's,.*CONFIG_VGAHOOKS.*,CONFIG_VGAHOOKS=y,;' \
+                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
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to