[SeaBIOS] [PATCHv2 4/4] Start using Kconfig to configure SeaBIOS settings.

Kevin O'Connor kevin at koconnor.net
Fri Jan 28 04:21:49 CET 2011


Create autoconf.h during the build.

Move a couple of config settings from config.h to Kconfig.
---
 .gitignore   |    2 ++
 Makefile     |   16 ++++++++++++----
 src/Kconfig  |   15 +++++++++++++++
 src/config.h |   11 ++---------
 4 files changed, 31 insertions(+), 13 deletions(-)
 create mode 100644 src/Kconfig

diff --git a/.gitignore b/.gitignore
index 3aa6a21..f9990fe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
 out
 *.pyc
+.config
+.config.old
diff --git a/Makefile b/Makefile
index b67c8fc..2e8ca76 100644
--- a/Makefile
+++ b/Makefile
@@ -60,7 +60,7 @@ OBJCOPY=objcopy
 OBJDUMP=objdump
 STRIP=strip
 
-.PHONY : all FORCE
+.PHONY : all clean distclean FORCE
 
 vpath %.c src vgasrc
 vpath %.S src vgasrc
@@ -114,16 +114,18 @@ $(OUT)%.lds: %.lds.S
 	@echo "  Precompiling $@"
 	$(Q)$(CPP) -P -D__ASSEMBLY__ $< -o $@
 
+$(OUT)asm-offsets.s: $(OUT)autoconf.h
+
 $(OUT)asm-offsets.h: $(OUT)asm-offsets.s
 	@echo "  Generating offset file $@"
 	$(Q)./tools/gen-offsets.sh $< $@
 
 
-$(OUT)ccode.16.s: ; $(call whole-compile, $(CFLAGS16) -S, $(addprefix src/, $(SRC16)),$@)
+$(OUT)ccode.16.s: $(OUT)autoconf.h ; $(call whole-compile, $(CFLAGS16) -S, $(addprefix src/, $(SRC16)),$@)
 
-$(OUT)code32seg.o: ; $(call whole-compile, $(CFLAGS32SEG), $(addprefix src/, $(SRC32SEG)),$@)
+$(OUT)code32seg.o: $(OUT)autoconf.h ; $(call whole-compile, $(CFLAGS32SEG), $(addprefix src/, $(SRC32SEG)),$@)
 
-$(OUT)ccode32flat.o: ; $(call whole-compile, $(CFLAGS32FLAT), $(addprefix src/, $(SRC32FLAT)),$@)
+$(OUT)ccode32flat.o: $(OUT)autoconf.h ; $(call whole-compile, $(CFLAGS32FLAT), $(addprefix src/, $(SRC32FLAT)),$@)
 
 $(OUT)code16.o: romlayout.S $(OUT)ccode.16.s $(OUT)asm-offsets.h
 	@echo "  Compiling (16bit) $@"
@@ -200,6 +202,12 @@ export KCONFIG_AUTOHEADER := autoconf.h
 export KCONFIG_CONFIG     := $(CURDIR)/.config
 MAKEFLAGS += --no-print-directory
 
+$(OUT)autoconf.h : $(KCONFIG_CONFIG)
+	$(Q)$(MAKE) silentoldconfig
+
+$(KCONFIG_CONFIG):
+	$(Q)$(MAKE) defconfig
+
 %onfig:
 	$(Q)mkdir -p $(OUT)/tools/kconfig/lxdialog
 	$(Q)mkdir -p $(OUT)/include/config
diff --git a/src/Kconfig b/src/Kconfig
new file mode 100644
index 0000000..f753c63
--- /dev/null
+++ b/src/Kconfig
@@ -0,0 +1,15 @@
+# Kconfig SeaBIOS configuration
+
+mainmenu "SeaBIOS Configuration"
+    config COREBOOT
+      bool "Configure as a coreboot payload."
+      default n
+    config DEBUG_LEVEL
+      int "Control how verbose debug output is."
+      default 1
+    config DEBUG_SERIAL
+      bool "Send debugging information to serial port"
+      default n
+    config VGAHOOKS
+      bool "Support bios callbacks specific to via vgabios."
+      default n
diff --git a/src/config.h b/src/config.h
index db3e578..6356941 100644
--- a/src/config.h
+++ b/src/config.h
@@ -1,6 +1,8 @@
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
+#include "../out/autoconf.h"
+
 // Configuration definitions.
 
 //#define CONFIG_APPNAME  "QEMU"
@@ -12,13 +14,6 @@
 #define CONFIG_APPNAME6 "BOCHS "
 #define CONFIG_APPNAME4 "BXPC"
 
-// Configure as a coreboot payload.
-#define CONFIG_COREBOOT 0
-
-// Control how verbose debug output is.
-#define CONFIG_DEBUG_LEVEL 1
-// Send debugging information to serial port
-#define CONFIG_DEBUG_SERIAL 0
 // Screen writes are also sent to debug ports.
 #define CONFIG_SCREEN_AND_DEBUG 1
 
@@ -119,8 +114,6 @@
 #define CONFIG_UUID_BACKDOOR 1
 // Support generation of ACPI tables (for emulators)
 #define CONFIG_ACPI 1
-// Support bios callbacks specific to via vgabios.
-#define CONFIG_VGAHOOKS 0
 // Support S3 resume handler.
 #define CONFIG_S3_RESUME 1
 // Run the vga rom during S3 resume.
-- 
1.7.3.5




More information about the SeaBIOS mailing list