[coreboot] Reliably build any Kconfig-based SeaBIOS revision
Peter Stuge
peter at stuge.se
Sat Jan 29 21:26:08 CET 2011
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
-------------- next part --------------
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 <peter at 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
More information about the coreboot
mailing list