diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index 496fd666b1..f1edf3a2f4 100644 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -131,11 +131,33 @@ # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src} - "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst} "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src} +[C-Code-File.COMMON.IPF] + + ?.c + ?.C + ?.cc + ?.CC + ?.cpp + ?.Cpp + ?.CPP + + + $(MAKE_FILE) + + + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + + + "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src} + + + # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues + "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src} + "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst} [C-Header-File] diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 45cfaff390..302a90ee2c 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -179,11 +179,11 @@ DEFINE GCC46_X64_PREFIX = /usr/bin/ DEFINE GCC47_IA32_PREFIX = /usr/bin/ DEFINE GCC47_X64_PREFIX = /usr/bin/ -DEFINE GCC48_IA32_PREFIX = /usr/bin/ -DEFINE GCC48_X64_PREFIX = /usr/bin/ +DEFINE GCC48_IA32_PREFIX = ENV(GCC48_BIN) +DEFINE GCC48_X64_PREFIX = ENV(GCC48_BIN) -DEFINE GCC49_IA32_PREFIX = /usr/bin/ -DEFINE GCC49_X64_PREFIX = /usr/bin/ +DEFINE GCC49_IA32_PREFIX = ENV(GCC49_BIN) +DEFINE GCC49_X64_PREFIX = ENV(GCC49_BIN) DEFINE UNIX_IASL_BIN = ENV(IASL_PREFIX)iasl DEFINE WIN_ASL_BIN_DIR = C:\ASL @@ -333,14 +333,14 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G # Required to build platforms or ACPI tables: # Intel(r) ACPI Compiler v20101013 from # http://www.acpica.org/downloads/previous_releases.php -# GCC48 -Linux- Requires: -# GCC 4.8 +# GCC48 -Linux,Windows- Requires: +# GCC 4.8 targeting x86_64-linux-gnu # Optional: # Required to build platforms or ACPI tables: # Intel(r) ACPI Compiler v20101013 from # http://www.acpica.org/downloads/previous_releases.php -# GCC49 -Linux- Requires: -# GCC 4.9 +# GCC49 -Linux,Windows- Requires: +# GCC 4.9 targeting x86_64-linux-gnu # Optional: # Required to build platforms or ACPI tables: # Intel(r) ACPI Compiler v20101013 from @@ -4367,7 +4367,8 @@ RELEASE_GCC47_AARCH64_CC_FLAGS = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-s #################################################################################### *_GCC48_*_*_FAMILY = GCC -*_GCC48_*_MAKE_PATH = make +*_GCC48_*_MAKE_PATH = DEF(GCC48_IA32_PREFIX)make +*_GCC48_*_*_DLL = ENV(GCC48_DLL) *_GCC48_*_ASL_PATH = DEF(UNIX_IASL_BIN) *_GCC48_*_PP_FLAGS = DEF(GCC_PP_FLAGS) @@ -4489,7 +4490,8 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s #################################################################################### *_GCC49_*_*_FAMILY = GCC -*_GCC49_*_MAKE_PATH = make +*_GCC49_*_MAKE_PATH = DEF(GCC49_IA32_PREFIX)make +*_GCC49_*_*_DLL = ENV(GCC49_DLL) *_GCC49_*_ASL_PATH = DEF(UNIX_IASL_BIN) *_GCC49_*_PP_FLAGS = DEF(GCC_PP_FLAGS) diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py index 50bee0dbc1..edbf243987 100644 --- a/BaseTools/Source/Python/AutoGen/GenMake.py +++ b/BaseTools/Source/Python/AutoGen/GenMake.py @@ -679,7 +679,8 @@ cleanlib: NewFile = self.PlaceMacro(str(F), self.Macros) # In order to use file list macro as dependency if T.GenListFile: - self.ListFileMacros[T.ListFileMacro].append(str(F)) + # gnu tools need forward slash path separater, even on Windows + self.ListFileMacros[T.ListFileMacro].append(str(F).replace ('\\', '/')) self.FileListMacros[T.FileListMacro].append(NewFile) elif T.GenFileListMacro: self.FileListMacros[T.FileListMacro].append(NewFile)