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

Kevin O'Connor kevin at koconnor.net
Thu Jan 27 03:38:57 CET 2011


Create autoconf.h during the build.

Move a couple of config settings from config.h to Kconfig.
---
 .gitignore    |    2 ++
 Makefile      |   12 +++++++++---
 src/Kconfig   |   15 +++++++++++++++
 src/config.h  |   11 ++---------
 src/defconfig |    6 ++++++
 5 files changed, 34 insertions(+), 12 deletions(-)
 create mode 100644 src/Kconfig
 create mode 100644 src/defconfig

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..e830728 100644
--- a/Makefile
+++ b/Makefile
@@ -119,11 +119,11 @@ $(OUT)asm-offsets.h: $(OUT)asm-offsets.s
 	$(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 +200,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.
diff --git a/src/defconfig b/src/defconfig
new file mode 100644
index 0000000..f632a4a
--- /dev/null
+++ b/src/defconfig
@@ -0,0 +1,6 @@
+# SeaBIOS default configuration
+#
+# CONFIG_COREBOOT is not set
+CONFIG_DEBUG_LEVEL=1
+# CONFIG_DEBUG_SERIAL is not set
+# CONFIG_VGAHOOKS is not set
-- 
1.7.3.4




More information about the SeaBIOS mailing list