[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