summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stuge <peter@stuge.se>2011-02-07 20:16:40 +0000
committerPeter Stuge <peter@stuge.se>2011-02-07 20:16:40 +0000
commitb1d1c4d0840c74ebfa2ced0c56d492a075e4599f (patch)
tree279818091759e0a5078c0f60028939e745443664
parent1440d0880b76c67beb341d59ee7b4fcb39307f60 (diff)
Reliably build arbitrary Kconfig-based revisions of SeaBIOS
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
-rw-r--r--payloads/external/SeaBIOS/Makefile.inc41
-rw-r--r--src/arch/x86/Makefile.inc1
2 files changed, 25 insertions, 17 deletions
diff --git a/payloads/external/SeaBIOS/Makefile.inc b/payloads/external/SeaBIOS/Makefile.inc
index 0ffdb638e1..575669c675 100644
--- a/payloads/external/SeaBIOS/Makefile.inc
+++ b/payloads/external/SeaBIOS/Makefile.inc
@@ -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
diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index a07e3cd5c5..afdcb9efca 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -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) \