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:
parent
1440d0880b
commit
b1d1c4d084
|
@ -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
|
||||||
|
|
|
@ -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) \
|
||||||
|
|
Loading…
Reference in New Issue