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
This commit is contained in:
Peter Stuge 2011-02-07 20:16:40 +00:00
parent 1440d0880b
commit b1d1c4d084
2 changed files with 25 additions and 17 deletions

View File

@ -1,31 +1,38 @@
TAG-$(CONFIG_SEABIOS_MASTER)=origin/master TAG-$(CONFIG_SEABIOS_MASTER)=origin/master
TAG-$(CONFIG_SEABIOS_STABLE)=rel-0.6.1.3 TAG-$(CONFIG_SEABIOS_STABLE)=1efb10b9ea30c45a8c9c6230234fefa10d2886ed
unexport KCONFIG_AUTOCONFIG
all: seabios 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: checkout:
echo "Checking out SeaBIOS $(TAG-y)" echo " GIT SeaBIOS $(TAG-y)"
test -d seabios && ( cd seabios; git fetch ) || \ test -d seabios && ( cd seabios; git fetch ) || \
git clone git://git.linuxtogo.org/home/kevin/seabios.git seabios git clone git://git.linuxtogo.org/home/kevin/seabios.git
cd seabios; git checkout -m $(TAG-y) 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: clean:
test -d seabios && (cd seabios; $(MAKE) clean) || exit 0 test -d seabios && $(MAKE) -C seabios clean || exit 0
distclean: distclean:
rm -rf seabios rm -rf seabios
.PHONY: seabios .PHONY: checkout config seabios clean distclean

View File

@ -278,6 +278,7 @@ endif
seabios: seabios:
$(MAKE) -C payloads/external/SeaBIOS -f Makefile.inc \ $(MAKE) -C payloads/external/SeaBIOS -f Makefile.inc \
HOSTCC="$(HOSTCC)" \
CC="$(CC)" LD="$(LD)" OBJDUMP="$(OBJDUMP)" \ CC="$(CC)" LD="$(LD)" OBJDUMP="$(OBJDUMP)" \
OBJCOPY="$(OBJCOPY)" STRIP="$(STRIP)" \ OBJCOPY="$(OBJCOPY)" STRIP="$(STRIP)" \
CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \ CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \