1CONFIG_XML_ENABLED ?= 2UPDATE_RESULT = $(HV_OBJDIR)/.cfg_src_result 3 4define check_xml_enabled = 5CONFIG_XML_ENABLED := $(shell if [ "$(1)" != "" ] || [ "$(2)" != "" ]; then echo false; fi) 6BOARD_IN_XML := $(shell echo `if [ "$(1)" != "" ]; then sed -n '/<acrn-config/p' $(1) | sed -r 's/.*board="(.*)".*/\1/g'; fi`) 7SCENARIO_IN_XML := $(shell echo `if [ "$(2)" != "" ]; then sed -n '/<acrn-config/p' $(2) | sed -r 's/.*scenario="(.*)".*/\1/g'; fi`) 8 9ifneq ($$(BOARD_IN_XML),) 10 ifneq ($$(SCENARIO_IN_XML),) 11 CONFIG_XML_ENABLED := true 12 endif 13endif 14 15endef 16 17ifeq ($(CONFIG_XML_ENABLED),) 18 $(eval $(call check_xml_enabled,$(BOARD_FILE),$(SCENARIO_FILE))) 19endif 20 21ifeq ($(CONFIG_XML_ENABLED),true) 22 override BOARD := $(BOARD_IN_XML) 23 override SCENARIO := $(SCENARIO_IN_XML) 24 RELEASE_IN_XML := $(shell echo `sed -n '/<RELEASE/p' $(SCENARIO_FILE) | sed -r 's/.*<RELEASE(.*)>(.*)<(.*)/\2/g'`) 25 ifndef RELEASE 26 ifeq ($(RELEASE_IN_XML),y) 27 override RELEASE := 1 28 else 29 override RELEASE := 0 30 endif 31 endif 32endif 33 34update_config: 35ifeq ($(CONFIG_XML_ENABLED),true) 36 @if [ ! -f $(UPDATE_RESULT) ]; then \ 37 mkdir -p $(dir $(UPDATE_RESULT));\ 38 python3 ../misc/config_tools/board_config/board_cfg_gen.py --board $(BOARD_FILE) --scenario $(SCENARIO_FILE) --out $(TARGET_DIR) > $(UPDATE_RESULT);\ 39 cat $(UPDATE_RESULT);\ 40 if [ "`sed -n /successfully/p $(UPDATE_RESULT)`" = "" ]; then rm -f $(UPDATE_RESULT); exit 1; fi;\ 41 if [ "$(TARGET_DIR)" = "" ]; then \ 42 python3 ../misc/config_tools/scenario_config/scenario_cfg_gen.py --board $(BOARD_FILE) --scenario $(SCENARIO_FILE) > $(UPDATE_RESULT);\ 43 else \ 44 python3 ../misc/config_tools/scenario_config/scenario_cfg_gen.py --board $(BOARD_FILE) --scenario $(SCENARIO_FILE) --out $(abspath $(TARGET_DIR)) > $(UPDATE_RESULT);\ 45 fi;\ 46 cat $(UPDATE_RESULT);\ 47 if [ "`sed -n /successfully/p $(UPDATE_RESULT)`" = "" ]; then rm -f $(UPDATE_RESULT); exit 1; fi;\ 48 echo "Import hypervisor Board/VM configuration from XMLs.";\ 49 if [ "$(TARGET_DIR)" = "" ]; then echo "Warning: configurations in source code has been overwritten!"; fi;\ 50 elif [ "`sed -n /successfully/p $(UPDATE_RESULT)`" = "" ]; then \ 51 echo "Problem is found on Board/VM configuration patching, please rebuild."; rm -f $(UPDATE_RESULT); exit 1; \ 52 else \ 53 echo "Configurations is patched already!";\ 54 fi; 55else ifeq ($(CONFIG_XML_ENABLED),false) 56 @echo "Config XML file does not exist or with unknown format." 57 @exit 1 58else 59 @echo "Using hypervisor configurations from source code directly." 60endif 61