HV: Make: enable build for new configs layout

The make command is same as old configs layout:

under acrn-hypervisor folder:
	make hypervisor BOARD=xxx SCENARIO=xxx [TARGET_DIR]=xxx [RELEASE=x]

under hypervisor folder:
	make BOARD=xxx SCENARIO=xxx [TARGET_DIR]=xxx [RELEASE=x]

if BOARD/SCENARIO parameter is not specified, the default will be:
	BOARD=nuc7i7dnb SCENARIO=industry

Tracked-On: #5077

Signed-off-by: Victor Sun <victor.sun@intel.com>
Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Victor Sun
2020-07-15 16:40:24 +08:00
committed by wenlingz
parent e792fa3d3c
commit a57a4fd7fb
11 changed files with 69 additions and 59 deletions

View File

@@ -3,7 +3,6 @@
# global helper variables
T := $(CURDIR)
# $(TARGET_DIR) must be relative path under $(T)
TARGET_DIR ?=
# BOARD/SCENARIO/BOARD_FILE/SCENARIO_FILE/KCONFIG_FILE parameters sanity check:
@@ -44,12 +43,15 @@ ifneq ($(BOARD)$(SCENARIO),)
endif
endif
ifeq ($(BOARD_FILE)$(SCENARIO_FILE),)
ifneq ($(TARGET_DIR),)
ifneq ($(TARGET_DIR), $(wildcard $(TARGET_DIR)))
ifneq ($(TARGET_DIR),)
CFG_DIR := $(realpath $(TARGET_DIR))
ifeq ($(CFG_DIR),)
ifeq ($(BOARD_FILE)$(SCENARIO_FILE),)
$(error TARGET_DIR $(TARGET_DIR) does not exist)
endif
endif
override TARGET_DIR := $(abspath $(TARGET_DIR))
endif
ifneq ($(BOARD_FILE)$(SCENARIO_FILE),)
@@ -95,6 +97,12 @@ endif
BOARD ?= kbl-nuc-i7
ifeq ($(BOARD), apl-nuc)
override BOARD := nuc6cayh
else ifeq ($(BOARD), kbl-nuc-i7)
override BOARD := nuc7i7dnb
endif
ifneq (,$(filter $(BOARD),apl-mrb))
FIRMWARE ?= sbl
else
@@ -112,9 +120,10 @@ TOOLS_OUT := $(ROOT_OUT)/misc/tools
DOC_OUT := $(ROOT_OUT)/doc
BUILD_VERSION ?=
BUILD_TAG ?=
GENED_ACPI_INFO_HEADER = $(T)/hypervisor/arch/x86/configs/$(BOARD)/$(BOARD)_acpi_info.h
HV_CFG_LOG = $(HV_OUT)/cfg.log
DEFAULT_DEFCONFIG_DIR = $(T)/hypervisor/arch/x86/configs
VM_CONFIGS_DIR = $(T)/misc/vm_configs
DEFCONFIG_FILE = scenarios/$(SCENARIO)/$(BOARD)/$(BOARD).config
GENED_ACPI_INFO_HEADER = $(VM_CONFIGS_DIR)/boards/$(BOARD)/$(BOARD)_acpi_info.h
export TOOLS_OUT BOARD SCENARIO FIRMWARE RELEASE
@@ -122,12 +131,6 @@ export TOOLS_OUT BOARD SCENARIO FIRMWARE RELEASE
all: hypervisor devicemodel tools
@cat $(HV_CFG_LOG)
ifeq ($(BOARD), apl-nuc)
override BOARD := nuc6cayh
else ifeq ($(BOARD), kbl-nuc-i7)
override BOARD := nuc7i7dnb
endif
include $(T)/hypervisor/scripts/makefile/cfg_update.mk
#help functions to build acrn and install acrn/acrn symbols
@@ -160,9 +163,9 @@ hypervisor:
@if [ "$(BOARD_FILE)" != "" ] && [ -f $(BOARD_FILE) ] && [ "$(SCENARIO_FILE)" != "" ] && [ -f $(SCENARIO_FILE) ] && [ "$(TARGET_DIR)" = "" ]; then \
echo "No TARGET_DIR parameter is specified, the original configuration source is overwritten!";\
fi
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT) BOARD_FILE=$(BOARD_FILE) SCENARIO_FILE=$(SCENARIO_FILE) TARGET_DIR=$(abspath $(TARGET_DIR)) defconfig;
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT) BOARD_FILE=$(BOARD_FILE) SCENARIO_FILE=$(SCENARIO_FILE) TARGET_DIR=$(abspath $(TARGET_DIR)) oldconfig;
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT) BOARD_FILE=$(BOARD_FILE) SCENARIO_FILE=$(SCENARIO_FILE) TARGET_DIR=$(abspath $(TARGET_DIR))
$(MAKE) -C $(T)/hypervisor BOARD=$(BOARD) HV_OBJDIR=$(HV_OUT) BOARD_FILE=$(BOARD_FILE) SCENARIO_FILE=$(SCENARIO_FILE) TARGET_DIR=$(TARGET_DIR) defconfig;
$(MAKE) -C $(T)/hypervisor BOARD=$(BOARD) HV_OBJDIR=$(HV_OUT) BOARD_FILE=$(BOARD_FILE) SCENARIO_FILE=$(SCENARIO_FILE) TARGET_DIR=$(TARGET_DIR) oldconfig;
$(MAKE) -C $(T)/hypervisor BOARD=$(BOARD) HV_OBJDIR=$(HV_OUT) BOARD_FILE=$(BOARD_FILE) SCENARIO_FILE=$(SCENARIO_FILE) TARGET_DIR=$(TARGET_DIR)
#ifeq ($(FIRMWARE),uefi)
@if [ "$(SCENARIO)" != "logical_partition" ] && [ "$(SCENARIO)" != "hybrid" ]; then \
echo "building hypervisor as EFI executable..."; \
@@ -175,21 +178,22 @@ hypervisor:
if [ -f $(KCONFIG_FILE) ]; then \
echo -e "Hypervisor configuration is based on:\n\tKconfig file:\t$(KCONFIG_FILE);" >> $(HV_CFG_LOG); \
fi; \
echo -e "Hypervisor configuration is based on:" >> $(HV_CFG_LOG); \
if [ "$(TARGET_DIR)" = "" ]; then \
if [ ! -f $(KCONFIG_FILE) ]; then \
echo -e "Hypervisor configuration is based on:\n\t$(BOARD) " \
"defconfig file:\t$(DEFAULT_DEFCONFIG_DIR)/$(BOARD).config;" >> $(HV_CFG_LOG); \
echo -e "\tdefconfig file:\t\t\t$(VM_CONFIGS_DIR)/$(DEFCONFIG_FILE);" >> $(HV_CFG_LOG); \
fi; \
elif [ ! -f $(KCONFIG_FILE) ]; then \
echo -e "Hypervisor configuration is based on:\n\t$(BOARD) " \
"defconfig file:\t$(abspath $(TARGET_DIR))/$(BOARD).config;" >> $(HV_CFG_LOG); \
echo -e "\tdefconfig file:\t\t\t$(TARGET_DIR)/$(DEFCONFIG_FILE);" >> $(HV_CFG_LOG); \
fi; \
echo -e "\tOthers are set by default in:\t$(T)/hypervisor/arch/x86/Kconfig;" >> $(HV_CFG_LOG); \
echo -e "VM configuration is based on:" >> $(HV_CFG_LOG); \
if [ "$(CONFIG_XML_ENABLED)" = "true" ]; then \
echo -e "VM configuration is based on:\n\tBOARD File:\t$(BOARD_FILE);" \
"\n\tSCENARIO File:\t$(SCENARIO_FILE);" >> $(HV_CFG_LOG); \
echo -e "\tBOARD File:\t\t$(BOARD_FILE);\n\t\tSCENARIO File:\t$(SCENARIO_FILE);" >> $(HV_CFG_LOG); \
elif [ "$(TARGET_DIR)" = "" ]; then \
echo -e "\tSource code at:\t\t\t$(VM_CONFIGS_DIR)" >> $(HV_CFG_LOG); \
else \
echo "VM configuration is based on current code base;" >> $(HV_CFG_LOG); \
echo -e "\tSource code at:\t\t\t$(TARGET_DIR)" >> $(HV_CFG_LOG); \
fi; \
if [ -f $(GENED_ACPI_INFO_HEADER) ] && [ "$(CONFIG_XML_ENABLED)" != "true" ] && [ "TARGET_DIR" = "" ]; then \
echo -e "\033[33mWarning: The platform ACPI info is based on acrn-config generated $(GENED_ACPI_INFO_HEADER), please make sure its validity.\033[0m" >> $(HV_CFG_LOG); \