Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
$(call cc-option,$(CC),--param large-stack-frame=4,-fno-inline)
CFLAGS16 = $(CFLAGS16INC) -g -fomit-frame-pointer
$(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=
# Run with "make V=1" to see the actual compile commands
ifdef V
Q=
MAKEFLAGS += --no-print-directory
endif
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
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
.PHONY : all clean distclean FORCE
vpath %.c src vgasrc
$(OUT)ccode32flat.o: src/acpi-dsdt.hex src/ssdt-proc.hex src/ssdt-pcihp.hex
####### Kconfig rules
$(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:
####### Generic rules
clean:
menu "VGA ROM"
choice
prompt "VGA Hardware Type"
menu "VGA ROM"
choice
prompt "VGA Hardware Type"
+ default NO_VGABIOS
+
+ config NO_VGABIOS
+ bool "None"
+ help
+ Do not build a VGA BIOS.
config VGA_STANDARD_VGA
bool "Standard VGA"
config VGA_STANDARD_VGA
bool "Standard VGA"
Build support for Geode LX vga.
endchoice
Build support for Geode LX vga.
endchoice
+ config BUILD_VGABIOS
+ bool
+ default !NO_VGABIOS
+
+ depends on BUILD_VGABIOS
bool "PCI ROM Headers"
default y
help
bool "PCI ROM Headers"
default y
help