87 lines
2.8 KiB
Makefile
87 lines
2.8 KiB
Makefile
#**********************************************************************
|
|
#* *
|
|
#* Copyright (c) 1985-2019, American Megatrends International LLC. *
|
|
#* *
|
|
#* All rights reserved. Subject to AMI licensing agreement. *
|
|
#* *
|
|
#**********************************************************************
|
|
|
|
#**********************************************************************
|
|
## @file
|
|
# First makefile to be called during build, calls ParseVeb and AMISDL
|
|
# to generate files needed by Main.mak, then launches Main.mak.
|
|
#**********************************************************************
|
|
export CONFIGURATION_DIR:=AmiPkg/Configuration/
|
|
export UTILITIES_MAK:=$(CONFIGURATION_DIR)utilities.mak
|
|
include $(UTILITIES_MAK)
|
|
ifeq ($(wildcard $(TOOLS_DIR)/BuildToolsVersion.mak),$(TOOLS_DIR)/BuildToolsVersion.mak)
|
|
include $(TOOLS_DIR)/BuildToolsVersion.mak
|
|
else
|
|
export BUILD_TOOLS_VERSION=0
|
|
endif
|
|
|
|
export MAIN_MAK:=$(CONFIGURATION_DIR)Main.mak
|
|
export TOKEN_MAK:=Build/Token.mak
|
|
export MODULE_MAK:=Build/module.mak
|
|
export APTIO_MAKE:=$(MAKE) --no-print-directory
|
|
|
|
# Script that runs AmiSdl and other AMI preprocessing tools can be either part of the build tools (higher priority)
|
|
# or part of the project (lower priority).
|
|
ifeq ($(wildcard $(TOOLS_DIR)/RunAmiTools.mak),$(TOOLS_DIR)/RunAmiTools.mak)
|
|
RUN_AMI_TOOLS_MAK:=$(TOOLS_DIR)/RunAmiTools.mak
|
|
else
|
|
RUN_AMI_TOOLS_MAK:=$(CONFIGURATION_DIR)RunAmiSdl.mak
|
|
endif
|
|
|
|
.PHONY : all clean rebuild run RunAmiSdl AptioV sdl Prologue
|
|
|
|
all: Prologue $(BUILD_DIR) RunAmiSdl AptioV
|
|
|
|
# Print build information
|
|
Prologue:
|
|
$(ECHO) Build Tools: $(BUILD_TOOLS_VERSION).
|
|
|
|
# Clean out the old files
|
|
clean:
|
|
@$(ECHO) Deleting temporary files...
|
|
ifeq ($(wildcard $(BUILD_DIR)), $(BUILD_DIR))
|
|
-$(RMDIR) $(BUILD_DIR)
|
|
endif
|
|
ifeq ($(wildcard Conf), Conf)
|
|
-$(RMDIR) Conf
|
|
endif
|
|
@$(APTIO_MAKE) -s -f $(RUN_AMI_TOOLS_MAK) clean
|
|
@$(ECHO) Done.
|
|
|
|
rebuild: clean all
|
|
|
|
run:
|
|
$(APTIO_MAKE) -f $(MAIN_MAK) run
|
|
|
|
sdl: $(BUILD_DIR) RunAmiSdl
|
|
|
|
# Check if Build exists, if not, then make it
|
|
$(BUILD_DIR):
|
|
mkdir $(BUILD_DIR)
|
|
|
|
RunAmiSdl:
|
|
@$(APTIO_MAKE) -f $(RUN_AMI_TOOLS_MAK) all
|
|
|
|
# If TODAY/NOW are not defined on the command line, generate them automatically.
|
|
# These auto-generated values may be overridden with TODAY/NOW SDL tokens.
|
|
# TODAY/NOW defined on the command line have the highest priority (SDL tokens do not override them).
|
|
# TODAY format: mm/dd/yyyy
|
|
# NOW format: hh:mm:ss
|
|
ifeq ($(TODAY),)
|
|
export TODAY := $(shell $(DATE) +'%m/%d/%Y')
|
|
endif
|
|
ifeq ($(NOW),)
|
|
export NOW := $(shell $(DATE) +%T)
|
|
endif
|
|
|
|
AptioV:
|
|
$(APTIO_MAKE) -f $(MAIN_MAK) $(target)
|
|
ifeq ($(call __ge, $(BUILD_TOOLS_VERSION), 29),yes)
|
|
@$(APTIO_MAKE) -s -f $(RUN_AMI_TOOLS_MAK) End
|
|
endif
|