1
+ # acrn-hypervisor/Makefile
1
2
2
3
# global helper variables
3
4
T := $(CURDIR )
4
5
6
+ ifneq ($(KCONFIG_FILE ) ,)
7
+ ifneq ($(KCONFIG_FILE), $(wildcard $(KCONFIG_FILE)))
8
+ $(error KCONFIG_FILE : $(KCONFIG_FILE ) does not exist)
9
+ endif
10
+ override KCONFIG_FILE := $(realpath $(KCONFIG_FILE ) )
11
+ else
12
+ override KCONFIG_FILE := $(T ) /hypervisor/build/.config
13
+ endif
14
+
5
15
BOARD ?= kbl-nuc-i7
6
16
7
17
ifneq (,$(filter $(BOARD ) ,apl-mrb) )
@@ -22,7 +32,6 @@ TOOLS_OUT := $(ROOT_OUT)/misc/tools
22
32
DOC_OUT := $(ROOT_OUT ) /doc
23
33
BUILD_VERSION ?=
24
34
BUILD_TAG ?=
25
- DEFAULT_MENU_CONFIG_FILE ?= $(T ) /hypervisor/build/.config
26
35
GENED_ACPI_INFO_HEADER = $(T ) /hypervisor/arch/x86/configs/$(BOARD ) /$(BOARD ) _acpi_info.h
27
36
HV_CFG_LOG = $(HV_OUT ) /cfg.log
28
37
@@ -59,22 +68,22 @@ endif
59
68
60
69
include $(T ) /hypervisor/scripts/makefile/cfg_update.mk
61
70
62
- ifeq ($(DEFAULT_MENU_CONFIG_FILE ) , $(wildcard $(DEFAULT_MENU_CONFIG_FILE ) ) )
63
- BOARD_IN_MENUCONFIG := $(shell grep CONFIG_BOARD= $(DEFAULT_MENU_CONFIG_FILE ) | awk -F '"' '{print $$2}')
64
- SCENARIO_IN_MENUCONFIG := $(shell grep -E "SDC=y|SDC2=y|INDUSTRY=y|LOGICAL_PARTITION=y|HYBRID=y" \
65
- $(DEFAULT_MENU_CONFIG_FILE ) | awk -F "=" '{print $$1}' | cut -d '_' -f 2- | tr A-Z a-z)
71
+ ifeq ($(KCONFIG_FILE ) , $(wildcard $(KCONFIG_FILE ) ) )
72
+ BOARD_IN_KCONFIG := $(shell grep CONFIG_BOARD= $(KCONFIG_FILE ) | awk -F '"' '{print $$2}')
73
+ SCENARIO_IN_KCONFIG := $(shell grep -E "SDC=y|SDC2=y|INDUSTRY=y|LOGICAL_PARTITION=y|HYBRID=y" \
74
+ $(KCONFIG_FILE ) | awk -F "=" '{print $$1}' | cut -d '_' -f 2- | tr A-Z a-z)
66
75
67
- RELEASE := $(shell grep CONFIG_RELEASE=y $(DEFAULT_MENU_CONFIG_FILE ) )
76
+ RELEASE := $(shell grep CONFIG_RELEASE=y $(KCONFIG_FILE ) )
68
77
ifneq ($(RELEASE),)
69
78
override RELEASE := 1
70
79
endif
71
80
72
- ifneq ($(BOARD_IN_MENUCONFIG ),$(BOARD))
73
- override BOARD := $(BOARD_IN_MENUCONFIG )
81
+ ifneq ($(BOARD_IN_KCONFIG ),$(BOARD))
82
+ override BOARD := $(BOARD_IN_KCONFIG )
74
83
endif
75
84
76
- ifneq ($(SCENARIO_IN_MENUCONFIG ),$(SCENARIO))
77
- override SCENARIO := $(SCENARIO_IN_MENUCONFIG )
85
+ ifneq ($(SCENARIO_IN_KCONFIG ),$(SCENARIO))
86
+ override SCENARIO := $(SCENARIO_IN_KCONFIG )
78
87
endif
79
88
80
89
endif
@@ -111,19 +120,17 @@ hypervisor:
111
120
&& [ " $( SCENARIO) " != " logical_partition" ] && [ " $( SCENARIO) " != " hybrid" ]; then \
112
121
echo " SCENARIO <$( SCENARIO) > is not supported. " ; exit 1; \
113
122
fi
114
- $(MAKE ) -C $(T ) /hypervisor HV_OBJDIR=$(HV_OUT ) clean;
115
- @if [ -f $( DEFAULT_MENU_CONFIG_FILE ) ] ; then \
116
- mkdir -p $(HV_OUT ) && cp $( DEFAULT_MENU_CONFIG_FILE ) $( HV_OUT ) /.config ; \
117
- else \
118
- $( MAKE ) -C $( T ) /hypervisor HV_OBJDIR= $( HV_OUT ) BOARD_FILE= $( BOARD_FILE ) SCENARIO_FILE= $( SCENARIO_FILE ) defconfig ; \
119
- echo " CONFIG_$( shell echo $( SCENARIO) | tr a-z A-Z) =y" >> $(HV_OUT ) /.config; \
123
+ $(MAKE ) -C $(T ) /hypervisor HV_OBJDIR=$(HV_OUT ) BOARD_FILE= $( BOARD_FILE ) SCENARIO_FILE= $( SCENARIO_FILE ) clean;
124
+ $( MAKE ) -C $(T ) /hypervisor HV_OBJDIR= $( HV_OUT ) BOARD_FILE= $( BOARD_FILE ) SCENARIO_FILE= $( SCENARIO_FILE ) defconfig ;
125
+ @if [ -f $( KCONFIG_FILE ) ] ; then \
126
+ cp $( KCONFIG_FILE ) $( HV_OUT ) /.config ; \
127
+ elif [ " $( CONFIG_XML_ENABLED ) " != " true " ] ; then \
128
+ echo " CONFIG_$( shell echo $( SCENARIO) | tr a-z A-Z) =y" >> $(HV_OUT ) /.config; \
120
129
if [ " $( SCENARIO) " != " sdc" ]; then \
121
130
echo " CONFIG_MAX_KATA_VM_NUM=0" >> $(HV_OUT ) /.config; \
122
131
fi ; \
123
- if [ " $( CONFIG_XML_ENABLED) " = " true" ]; then \
124
- echo " CONFIG_ENFORCE_VALIDATED_ACPI_INFO=y" >> $(HV_OUT ) /.config; \
125
- fi ; \
126
- fi
132
+ fi ; \
133
+ $(MAKE ) -C $(T ) /hypervisor HV_OBJDIR=$(HV_OUT ) BOARD_FILE=$(BOARD_FILE ) SCENARIO_FILE=$(SCENARIO_FILE ) oldconfig;
127
134
$(MAKE ) -C $(T ) /hypervisor HV_OBJDIR=$(HV_OUT ) BOARD_FILE=$(BOARD_FILE ) SCENARIO_FILE=$(SCENARIO_FILE )
128
135
# ifeq ($(FIRMWARE),uefi)
129
136
@if [ "$(SCENARIO)" != "logical_partition" ] && [ "$(SCENARIO)" != "hybrid" ]; then \
@@ -132,13 +139,15 @@ hypervisor:
132
139
fi
133
140
# endif
134
141
@echo -e "\n\033[47;30mACRN Configuration Summary:\033[0m \nBOARD = $(BOARD)\t SCENARIO = $(SCENARIO)" > $(HV_CFG_LOG); \
135
- if [ -f $(DEFAULT_MENU_CONFIG_FILE ) ]; then \
136
- echo "Hypervisor configuration is based on menuconfig file: ./hypervisor/build/.config ;" >> $(HV_CFG_LOG); \
142
+ if [ -f $(KCONFIG_FILE ) ]; then \
143
+ echo -e "Hypervisor configuration is based on:\n\tKconfig file:\t$(KCONFIG_FILE) ;" >> $(HV_CFG_LOG); \
137
144
else \
138
- echo "Hypervisor configuration is based on ./hypervisor/arch/x86/Kconfig and ./hypervisor/arch/x86/configs/$(BOARD).config;" >> $(HV_CFG_LOG); \
145
+ echo -e "Hypervisor configuration is based on:\n\t$(BOARD) defconfig file:\t$(T)/hypervisor/arch/x86/configs/$(BOARD).config;" \
146
+ "\n\tOthers are set by default in:\t$(T)/hypervisor/arch/x86/Kconfig;" >> $(HV_CFG_LOG); \
139
147
fi; \
140
148
if [ "$(CONFIG_XML_ENABLED)" = "true" ]; then \
141
- echo "VM configuration is based on $(BOARD_FILE) and $(SCENARIO_FILE);" >> $(HV_CFG_LOG); \
149
+ echo -e "VM configuration is based on:\n\tBOARD File:\t$(BOARD_FILE);" \
150
+ "\n\tSCENARIO File:\t$(SCENARIO_FILE);" >> $(HV_CFG_LOG); \
142
151
else \
143
152
echo "VM configuration is based on current code base;" >> $(HV_CFG_LOG); \
144
153
fi; \
0 commit comments