summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Gondois <pierre.gondois@arm.com>2020-02-10 18:49:08 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2020-02-12 02:34:44 +0000
commitc44e0a896cacce179a3291e5080e8573c909ce2a (patch)
tree744d0265022d98c6059945e055133d2f5d85d603
parent818283de3f6d3b288deda54f0734be5bb70ddd5a (diff)
downloadedk2-c44e0a896cacce179a3291e5080e8573c909ce2a.tar.gz
edk2-c44e0a896cacce179a3291e5080e8573c909ce2a.tar.bz2
edk2-c44e0a896cacce179a3291e5080e8573c909ce2a.zip
BaseTools: Remove caret in NASM_INC macro
NASM_INC contains the list of directory to include when using the nasm assembler. In nmake makefiles, a trailing backslash escapes the newline char and replaces it with a space ' '. To have a literal trailing backslash, it must be escaped with a caret '^'. This is not necessary for GNU makefiles. On windows platforms, for the NASM_INC macro, a caret escaping a trailing a backslash was appended to the last included folder regardless of the makefile type. For instance, "/Include/" was replaced by "/Include/^\". This is causing a build failure on windows platforms using GNU makefiles since the caret '^' doesn't escape any chars in GNU makefiles and is thus conserved. "/Include^\" was replaced by "/Include\/" in nmake makefiles, but remained "/Include/^\" in GNU makefiles. This patch removes the caret '^' on the build using GNU makefiles. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
-rwxr-xr-xBaseTools/Source/Python/AutoGen/GenMake.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py
index f5d15c40ad..bbb3c29446 100755
--- a/BaseTools/Source/Python/AutoGen/GenMake.py
+++ b/BaseTools/Source/Python/AutoGen/GenMake.py
@@ -612,9 +612,10 @@ cleanlib:
IncludePath = self._INC_FLAG_['NASM'] + self.PlaceMacro(P, self.Macros)
if IncludePath.endswith(os.sep):
IncludePath = IncludePath.rstrip(os.sep)
- # When compiling .nasm files, need to add a literal backslash at each path
- # To specify a literal backslash at the end of the line, precede it with a caret (^)
- if P == MyAgo.IncludePathList[-1] and os.sep == '\\':
+ # When compiling .nasm files, need to add a literal backslash at each path.
+ # In nmake makfiles, a trailing literal backslash must be escaped with a caret ('^').
+ # It is otherwise replaced with a space (' '). This is not necessary for GNU makfefiles.
+ if P == MyAgo.IncludePathList[-1] and self._Platform == WIN32_PLATFORM and self._FileType == NMAKE_FILETYPE:
IncludePath = ''.join([IncludePath, '^', os.sep])
else:
IncludePath = os.path.join(IncludePath, '')