vgabios: Build vgabios by default if enabled in Kconfig.
authorKevin O'Connor <kevin@koconnor.net>
Sun, 15 Jan 2012 06:52:27 +0000 (01:52 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Mon, 16 Jan 2012 17:02:34 +0000 (12:02 -0500)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Makefile
src/Kconfig

index beb8fd04441db398b7385e748a2d9d162c59f18b..0343ce555b72ce510a5d16a198f967f952d6ff30 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -47,8 +47,6 @@ CFLAGS16INC = $(CFLAGSSEG) -DMODE16=1 \
     $(call cc-option,$(CC),--param large-stack-frame=4,-fno-inline)
 CFLAGS16 = $(CFLAGS16INC) -g -fomit-frame-pointer
 
-all: $(OUT) $(OUT)bios.bin
-
 # Run with "make V=1" to see the actual compile commands
 ifdef V
 Q=
@@ -57,10 +55,24 @@ Q=@
 MAKEFLAGS += --no-print-directory
 endif
 
+# Common command definitions
+export HOSTCC             := $(CC)
+export CONFIG_SHELL       := sh
+export KCONFIG_AUTOHEADER := autoconf.h
+export KCONFIG_CONFIG     := $(CURDIR)/.config
 OBJCOPY=objcopy
 OBJDUMP=objdump
 STRIP=strip
 
+# Default targets
+-include $(KCONFIG_CONFIG)
+
+target-y = $(OUT) $(OUT)bios.bin
+target-$(CONFIG_BUILD_VGABIOS) += $(OUT)vgabios.bin
+
+all: $(target-y)
+
+# Make definitions
 .PHONY : all clean distclean FORCE
 
 vpath %.c src vgasrc
@@ -206,24 +218,16 @@ src/%.hex: src/%.dsl ./tools/acpi_extract_preprocess.py ./tools/acpi_extract.py
 $(OUT)ccode32flat.o: src/acpi-dsdt.hex src/ssdt-proc.hex src/ssdt-pcihp.hex
 
 ####### Kconfig rules
-export HOSTCC             := $(CC)
-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
-       $(Q)$(MAKE) -C $(OUT) -f $(CURDIR)/tools/kconfig/Makefile srctree=$(CURDIR) src=tools/kconfig obj=tools/kconfig Q=$(Q) Kconfig=$(CURDIR)/src/Kconfig $@
+define do-kconfig
+$(Q)mkdir -p $(OUT)/tools/kconfig/lxdialog
+$(Q)mkdir -p $(OUT)/include/config
+$(Q)$(MAKE) -C $(OUT) -f $(CURDIR)/tools/kconfig/Makefile srctree=$(CURDIR) src=tools/kconfig obj=tools/kconfig Q=$(Q) Kconfig=$(CURDIR)/src/Kconfig $1
+endef
 
-help:
-       $(Q)$(MAKE) -f $(CURDIR)/tools/kconfig/Makefile help
+$(OUT)autoconf.h : $(KCONFIG_CONFIG) ; $(call do-kconfig, silentoldconfig)
+$(KCONFIG_CONFIG): ; $(call do-kconfig, defconfig)
+%onfig: ; $(call do-kconfig, $@)
+help: ; $(call do-kconfig, $@)
 
 ####### Generic rules
 clean:
index e6ce1177dc921cd5612c78d3d66695f25b8c97d5..4b72bd1c65c4c9361b0199018bef40b93c5d873c 100644 (file)
@@ -327,7 +327,12 @@ endmenu
 menu "VGA ROM"
     choice
         prompt "VGA Hardware Type"
-        default VGA_CIRRUS
+        default NO_VGABIOS
+
+        config NO_VGABIOS
+            bool "None"
+            help
+                Do not build a VGA BIOS.
 
         config VGA_STANDARD_VGA
             bool "Standard VGA"
@@ -355,7 +360,12 @@ menu "VGA ROM"
                 Build support for Geode LX vga.
     endchoice
 
+    config BUILD_VGABIOS
+        bool
+        default !NO_VGABIOS
+
     config VGA_PCI
+        depends on BUILD_VGABIOS
         bool "PCI ROM Headers"
         default y
         help