## @file # Silicon build option configuration file. # # Copyright (c) 2019 Intel Corporation. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # ## [BuildOptions] # Define Build Options both for EDK and EDKII drivers. # SA !if gSiPkgTokenSpaceGuid.PcdPttEnable == TRUE DEFINE PTT_BUILD_OPTION = -DPTT_FLAG=1 !else DEFINE PTT_BUILD_OPTION = !endif # # System Agent # !if gSiPkgTokenSpaceGuid.PcdSgEnable == TRUE DEFINE DSC_SG_BUILD_OPTIONS = -DSG_SUPPORT=1 !else DEFINE DSC_SG_BUILD_OPTIONS = !endif !if gSiPkgTokenSpaceGuid.PcdBdatEnable == TRUE DEFINE BDAT_BUILD_OPTION = -DBDAT_SUPPORT=1 !else DEFINE BDAT_BUILD_OPTION = !endif DEFINE SLE_BUILD_OPTIONS = !if $(TARGET) == RELEASE !if gSiPkgTokenSpaceGuid.PcdSiCatalogDebugEnable == TRUE DEFINE DEBUG_BUILD_OPTIONS = !else # MDEPKG_NDEBUG is introduced for the intention # of size reduction when compiler optimization is disabled. If MDEPKG_NDEBUG is # defined, then debug and assert related macros wrapped by it are the NULL implementations. DEFINE DEBUG_BUILD_OPTIONS = -DMDEPKG_NDEBUG !endif !else DEFINE DEBUG_BUILD_OPTIONS = !endif !if ($(TARGET) == RELEASE) AND (gSiPkgTokenSpaceGuid.PcdSiCatalogDebugEnable == TRUE) DEFINE RELEASE_CATALOG_BUILD_OPTIONS = -DRELEASE_CATALOG !else DEFINE RELEASE_CATALOG_BUILD_OPTIONS = !endif !if gSiPkgTokenSpaceGuid.PcdOptimizeCompilerEnable == FALSE DEFINE OPTIMIZE_DISABLE_OPTIONS = -Od -GL- !else DEFINE OPTIMIZE_DISABLE_OPTIONS = !endif DEFINE HSLE_BUILD_OPTIONS = !if gSiPkgTokenSpaceGuid.PcdCflCpuEnable == TRUE DEFINE CPU_FLAGS = -DCPU_CFL !else DEFINE CPU_FLAGS = !endif DEFINE DSC_SIPKG_FEATURE_BUILD_OPTIONS = $(BDAT_BUILD_OPTION) $(PTT_BUILD_OPTION) $(DEBUG_BUILD_OPTIONS) DEFINE DSC_SIPKG_FEATURE_BUILD_OPTIONS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) $(DSC_SG_BUILD_OPTIONS) $(SIMICS_BUILD_OPTIONS) $(CPU_FLAGS) $(HSLE_BUILD_OPTIONS) $(RELEASE_CATALOG_BUILD_OPTIONS) $(DSC_TXT_BUILD_OPTIONS) !if gSiPkgTokenSpaceGuid.PcdSourceDebugEnable == TRUE *_*_X64_GENFW_FLAGS = --keepexceptiontable !endif [BuildOptions.Common.EDKII] # # For IA32 Global Build Flag # *_*_IA32_PP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) *_*_IA32_CC_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI *_*_IA32_VFRPP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) *_*_IA32_APP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) *_*_IA32_ASLPP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) *_*_IA32_ASLCC_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) # # For IA32 Specific Build Flag # MSFT: *_*_IA32_ASM_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) MSFT: *_*_IA32_CC_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI MSFT: *_*_IA32_VFRPP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) MSFT: *_*_IA32_APP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) MSFT: *_*_IA32_ASLPP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) MSFT: *_*_IA32_ASLCC_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) # # For X64 Global Build Flag # *_*_X64_PP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) *_*_X64_CC_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 *_*_X64_VFRPP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) *_*_X64_APP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) *_*_X64_ASLPP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) *_*_X64_ASLCC_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) # # For X64 Specific Build Flag # MSFT: *_*_X64_ASM_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) MSFT: *_*_X64_CC_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 MSFT: *_*_X64_VFRPP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) MSFT: *_*_X64_APP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) MSFT: *_*_X64_ASLPP_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) MSFT: *_*_X64_ASLCC_FLAGS = $(DSC_SIPKG_FEATURE_BUILD_OPTIONS) # # For Xcode Specific Build Flag # # Override assembly code build order *_XCODE5_*_*_BUILDRULEORDER = nasm S s # Align 47bfbd7f8069e523798ef973c8eb0abd5c6b0746 to fix the usage of VA_START in undefined way *_XCODE5_*_CC_FLAGS = -Wno-varargs # Force PE/COFF sections to be aligned at 4KB boundaries to support page level protection of runtime modules [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] MSFT: *_*_*_DLINK_FLAGS = /ALIGN:4096 GCC: *_GCC*_*_DLINK_FLAGS = -z common-page-size=0x1000