Patchwork Reliably build any Kconfig-based SeaBIOS revision

login
register
about
Submitter Stefan Reinauer
Date 2011-02-03 21:33:05
Message ID <20110203213305.GB28701@coreboot.org>
Download mbox | patch
Permalink /patch/2607/
State Accepted
Headers show

Comments

Stefan Reinauer - 2011-02-03 21:33:05
* Peter Stuge <peter@stuge.se> [110129 21:26]:
> 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

slightly reworked to get rid of the perl calls (and to work with the
latest HEAD version with options that are hidden during defconfig so a
perl call would not replace them.
Stefan Reinauer - 2011-02-06 23:03:29
* Stefan Reinauer <stefan.reinauer@coreboot.org> [110203 22:33]:
> * Peter Stuge <peter@stuge.se> [110129 21:26]:
> > 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
> 
> slightly reworked to get rid of the perl calls (and to work with the
> latest HEAD version with options that are hidden during defconfig so a
> perl call would not replace them.
> 
> 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@stuge.se>
> Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org>

Unless there's a reason not to, please commit the revised version (plus
the one line change to src/arch/x86/Makefile.inc which I forgot to diff)

Stefan
Peter Stuge - 2011-02-07 20:17:04
Stefan Reinauer wrote:
> > slightly reworked to get rid of the perl calls (and to work with the
> 
> Unless there's a reason not to, please commit the revised version (plus
> the one line change to src/arch/x86/Makefile.inc which I forgot to diff)

r6335


//Peter

Patch

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@stuge.se>                                                                                     
Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org>

Index: payloads/external/SeaBIOS/Makefile.inc
===================================================================
--- payloads/external/SeaBIOS/Makefile.inc	(revision 6326)
+++ payloads/external/SeaBIOS/Makefile.inc	(working copy)
@@ -1,31 +1,37 @@ 
 
 
 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
 
-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
+	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
+	#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