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.