Start using Kconfig to configure SeaBIOS settings.
authorKevin O'Connor <kevin@koconnor.net>
Thu, 27 Jan 2011 02:19:25 +0000 (21:19 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Sat, 29 Jan 2011 14:44:33 +0000 (09:44 -0500)
Create autoconf.h during the build.

Move a couple of config settings from config.h to Kconfig.

.gitignore
Makefile
src/Kconfig [new file with mode: 0644]
src/config.h

index 3aa6a21ab37f67790821724b23fab3af3938d844..f9990feba8ef89732cfa8c70a5b9d31886063315 100644 (file)
@@ -1,2 +1,4 @@
 out
 *.pyc
+.config
+.config.old
index c7dfc0b94c81369249ff6b3df95fc2a185b33a1f..3f89caf94237769387d4974bc58c077d4ffe8309 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -115,16 +115,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 CONFIG_SHELL       := sh
 export KCONFIG_AUTOHEADER := autoconf.h
 export KCONFIG_CONFIG     := $(CURDIR)/.config
 
+$(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 (file)
index 0000000..f753c63
--- /dev/null
@@ -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
index db3e578abb2008241c429c6f5ffeffed8677bba6..63569419e8d719146bfba9836341c3cf7b5e23a5 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
+#include "../out/autoconf.h"
+
 // Configuration definitions.
 
 //#define CONFIG_APPNAME  "QEMU"
 #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
 
 #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.