From 646cc8c4b21bd03fab3175fc9bf8bd37db1dd160 Mon Sep 17 00:00:00 2001 From: "yuhong.tao@intel.com" Date: Tue, 14 Aug 2018 23:04:15 +0800 Subject: [PATCH] DM: VMcfg: Kconfig & Makefile for VM Configuration VMcfg use Kconfig mechanism to generate a header file devicemodel/include/vmcfg_config.h, which contains many macro symbols for conditionally compiling. This feature is disabled by default, to enable it, You can switch to devicemodel/vmcfg/ and run 'make' with these options: 'make menuconfig' run 'make menuconfig' at ./devicemodel/vmcfg/, and configure manually. When you finished, save your changes to ./devicemode/vmcfg/.config 'make oldconfig' Overwrite ./devicemodel/vmcfg/.config with your config file, then run 'make oldconfig' at ./devicemodel/vmcfg 'make *_defconfig' E.g, there is ./devicemodel/vmcfg/config/mrb_defconfig, you can run 'make mrb_defconfig' at ./devicemodel/vmcfg/ Tracked-On: #1528 Acked-by: Yin Fengwei Signed-off-by: Tao Yuhong --- devicemodel/Makefile | 6 +++++- devicemodel/vmcfg/Kconfig | 5 +++++ devicemodel/vmcfg/Makefile | 3 +++ devicemodel/vmcfg/scripts/kconfig/kconfig.mk | 20 ++++++++++++++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 devicemodel/vmcfg/Kconfig create mode 100644 devicemodel/vmcfg/Makefile create mode 100644 devicemodel/vmcfg/scripts/kconfig/kconfig.mk diff --git a/devicemodel/Makefile b/devicemodel/Makefile index 9aa229e58..f955ab292 100644 --- a/devicemodel/Makefile +++ b/devicemodel/Makefile @@ -136,6 +136,7 @@ SRCS += arch/x86/pm.c OBJS := $(patsubst %.c,$(DM_OBJDIR)/%.o,$(SRCS)) HEADERS := $(shell find $(BASEDIR) -name '*.h') +HEADERS += $(BASEDIR)/include/vmcfg_config.h DISTCLEAN_OBJS := $(shell find $(BASEDIR) -name '*.o') PROGRAM := acrn-dm @@ -145,9 +146,12 @@ SAMPLES_MRB := $(wildcard samples/apl-mrb/*) BIOS_BIN := $(wildcard bios/*) -all: include/version.h $(PROGRAM) +all: include/version.h vmcfg_header $(PROGRAM) @echo -n "" +vmcfg_header: + make -C $(BASEDIR)/vmcfg $(BASEDIR)/include/vmcfg_config.h BASEDIR=$(BASEDIR) + $(PROGRAM): $(OBJS) $(CC) -o $(DM_OBJDIR)/$@ $(CFLAGS) $(LDFLAGS) $^ $(LIBS) diff --git a/devicemodel/vmcfg/Kconfig b/devicemodel/vmcfg/Kconfig new file mode 100644 index 000000000..c18dbce14 --- /dev/null +++ b/devicemodel/vmcfg/Kconfig @@ -0,0 +1,5 @@ +mainmenu "VM Configuration" + +config VM_CFG + bool "Enable build-in VM configuration" + default n diff --git a/devicemodel/vmcfg/Makefile b/devicemodel/vmcfg/Makefile new file mode 100644 index 000000000..097f9fa69 --- /dev/null +++ b/devicemodel/vmcfg/Makefile @@ -0,0 +1,3 @@ +BASEDIR ?= .. + +include $(BASEDIR)/vmcfg/scripts/kconfig/kconfig.mk diff --git a/devicemodel/vmcfg/scripts/kconfig/kconfig.mk b/devicemodel/vmcfg/scripts/kconfig/kconfig.mk new file mode 100644 index 000000000..9a3f6b789 --- /dev/null +++ b/devicemodel/vmcfg/scripts/kconfig/kconfig.mk @@ -0,0 +1,20 @@ +$(eval $(call check_dep_exec,menuconfig,MENUCONFIG_DEPS)) + +export KCONFIG_CONFIG := $(BASEDIR)/vmcfg/.config + +.PHONY: oldconfig +oldconfig: + @python3 $(BASEDIR)/../scripts/kconfig/silentoldconfig.py Kconfig $(KCONFIG_CONFIG) + +%_defconfig: + @python3 $(BASEDIR)/../scripts/kconfig/defconfig.py Kconfig $(BASEDIR)/vmcfg/config/$@ $(KCONFIG_CONFIG) + +$(KCONFIG_CONFIG): oldconfig + +$(BASEDIR)/include/vmcfg_config.h: $(KCONFIG_CONFIG) + echo @mkdir -p $(dir $@) + @mkdir -p $(dir $@) + @python3 $(BASEDIR)/../scripts/kconfig/generate_header.py Kconfig $< $@ + +menuconfig: $(MENUCONFIG_DEPS) $(HV_OBJDIR)/$(HV_CONFIG) + @python3 $(shell which menuconfig) Kconfig