Re: [edk2] [Patch 1/2] BaseTools: Add $(INC)-like support when compiling .nasm files

2018-10-25 Thread Zhu, Yonghong
Yes, I agree.  I will help to update a V2.

Best Regards,
Zhu Yonghong


-Original Message-
From: Carsey, Jaben 
Sent: Thursday, October 25, 2018 10:20 PM
To: Zhu, Yonghong ; edk2-devel@lists.01.org
Cc: Gao, Liming 
Subject: RE: [edk2] [Patch 1/2] BaseTools: Add $(INC)-like support when 
compiling .nasm files



> -Original Message-
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of 
> Yonghong Zhu
> Sent: Thursday, October 25, 2018 12:38 AM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming 
> Subject: [edk2] [Patch 1/2] BaseTools: Add $(INC)-like support when 
> compiling .nasm files
> 
> From: zhijufan 
> 
> current edk2\BaseTools\Conf\build_rule.template, the compile of nasm 
> source files does not have the $(INC) support.
> 
> The '-I' option only includes the directory of the nasm source file 
> (${s_path}(+)). Hence, it will be impossible for nasm files to include 
> files outside of the nasm source file directory.
> 
> As a comparison, the compile of both .s and .asm have $(INC) support 
> in their compile commands.
> 
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1085
> Cc: Liming Gao 
> Cc: Yonghong Zhu 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Zhiju.Fan 
> ---
>  BaseTools/Source/Python/AutoGen/GenMake.py | 14 +-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py
> b/BaseTools/Source/Python/AutoGen/GenMake.py
> index d94d8f9..8860d50 100644
> --- a/BaseTools/Source/Python/AutoGen/GenMake.py
> +++ b/BaseTools/Source/Python/AutoGen/GenMake.py
> @@ -165,11 +165,11 @@ class BuildFile(object):
>  _INCLUDE_CMD_ = {
>  "nmake" :   '!INCLUDE',
>  "gmake" :   "include"
>  }
> 
> -_INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : "-I",
> "RVCT" : "-I"}
> +_INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : 
> + "-I",
> "RVCT" : "-I", "NASM" : "-I"}
> 
>  ## Constructor of BuildFile
>  #
>  #   @param  AutoGenObject   Object of AutoGen class
>  #
> @@ -594,10 +594,22 @@ cleanlib:
>  "macro_name"   : "INC",
>  "source_file" : 
> IncludePathList
>  }
>  )
>  FileMacroList.append(FileMacro)
> +for File in self.FileCache.keys():
> +if not str(File).endswith('.nasm'):
> +continue
> +FileMacro = ""
> +IncludePathList = []
> +for P in  MyAgo.IncludePathList:
> +IncludePathList.append(self._INC_FLAG_['NASM'] +
> self.PlaceMacro(P, self.Macros))
> +if FileBuildRule.INC_LIST_MACRO in self.ListFileMacros:
> +
> self.ListFileMacros[FileBuildRule.INC_LIST_MACRO].append(self._INC_FLA
> G
> _['NASM'] + P)
> +FileMacro +=
> self._FILE_MACRO_TEMPLATE.Replace({"macro_name": "NASM_INC",
> "source_file": IncludePathList})

Why do we use += on FileMacro here?  Seems like = will be fine.  We can also 
skip initializing the FileMacro since it's only ever assigned here.

> +FileMacroList.append(FileMacro)
> +break
> 
>  # Generate macros used to represent files containing list of input 
> files
>  for ListFileMacro in self.ListFileMacros:
>  ListFileName = os.path.join(MyAgo.OutputDir, "%s.lst" %
> ListFileMacro.lower()[:len(ListFileMacro) - 5])
>  FileMacroList.append("%s = %s" % (ListFileMacro, 
> ListFileName))
> --
> 2.6.1.windows.1
> 
> ___
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [Patch 1/2] BaseTools: Add $(INC)-like support when compiling .nasm files

2018-10-25 Thread Carsey, Jaben



> -Original Message-
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> Yonghong Zhu
> Sent: Thursday, October 25, 2018 12:38 AM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming 
> Subject: [edk2] [Patch 1/2] BaseTools: Add $(INC)-like support when
> compiling .nasm files
> 
> From: zhijufan 
> 
> current edk2\BaseTools\Conf\build_rule.template, the compile of nasm
> source files does not have the $(INC) support.
> 
> The '-I' option only includes the directory of the nasm source file
> (${s_path}(+)). Hence, it will be impossible for nasm files to include
> files outside of the nasm source file directory.
> 
> As a comparison, the compile of both .s and .asm have $(INC) support
> in their compile commands.
> 
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1085
> Cc: Liming Gao 
> Cc: Yonghong Zhu 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Zhiju.Fan 
> ---
>  BaseTools/Source/Python/AutoGen/GenMake.py | 14 +-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py
> b/BaseTools/Source/Python/AutoGen/GenMake.py
> index d94d8f9..8860d50 100644
> --- a/BaseTools/Source/Python/AutoGen/GenMake.py
> +++ b/BaseTools/Source/Python/AutoGen/GenMake.py
> @@ -165,11 +165,11 @@ class BuildFile(object):
>  _INCLUDE_CMD_ = {
>  "nmake" :   '!INCLUDE',
>  "gmake" :   "include"
>  }
> 
> -_INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : "-I",
> "RVCT" : "-I"}
> +_INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : "-I",
> "RVCT" : "-I", "NASM" : "-I"}
> 
>  ## Constructor of BuildFile
>  #
>  #   @param  AutoGenObject   Object of AutoGen class
>  #
> @@ -594,10 +594,22 @@ cleanlib:
>  "macro_name"   : "INC",
>  "source_file" : 
> IncludePathList
>  }
>  )
>  FileMacroList.append(FileMacro)
> +for File in self.FileCache.keys():
> +if not str(File).endswith('.nasm'):
> +continue
> +FileMacro = ""
> +IncludePathList = []
> +for P in  MyAgo.IncludePathList:
> +IncludePathList.append(self._INC_FLAG_['NASM'] +
> self.PlaceMacro(P, self.Macros))
> +if FileBuildRule.INC_LIST_MACRO in self.ListFileMacros:
> +
> self.ListFileMacros[FileBuildRule.INC_LIST_MACRO].append(self._INC_FLAG
> _['NASM'] + P)
> +FileMacro +=
> self._FILE_MACRO_TEMPLATE.Replace({"macro_name": "NASM_INC",
> "source_file": IncludePathList})

Why do we use += on FileMacro here?  Seems like = will be fine.  We can also 
skip initializing the FileMacro since it's only ever assigned here.

> +FileMacroList.append(FileMacro)
> +break
> 
>  # Generate macros used to represent files containing list of input 
> files
>  for ListFileMacro in self.ListFileMacros:
>  ListFileName = os.path.join(MyAgo.OutputDir, "%s.lst" %
> ListFileMacro.lower()[:len(ListFileMacro) - 5])
>  FileMacroList.append("%s = %s" % (ListFileMacro, ListFileName))
> --
> 2.6.1.windows.1
> 
> ___
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


[edk2] [Patch 1/2] BaseTools: Add $(INC)-like support when compiling .nasm files

2018-10-25 Thread Yonghong Zhu
From: zhijufan 

current edk2\BaseTools\Conf\build_rule.template, the compile of nasm
source files does not have the $(INC) support.

The '-I' option only includes the directory of the nasm source file
(${s_path}(+)). Hence, it will be impossible for nasm files to include
files outside of the nasm source file directory.

As a comparison, the compile of both .s and .asm have $(INC) support
in their compile commands.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1085
Cc: Liming Gao 
Cc: Yonghong Zhu 
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhiju.Fan 
---
 BaseTools/Source/Python/AutoGen/GenMake.py | 14 +-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py 
b/BaseTools/Source/Python/AutoGen/GenMake.py
index d94d8f9..8860d50 100644
--- a/BaseTools/Source/Python/AutoGen/GenMake.py
+++ b/BaseTools/Source/Python/AutoGen/GenMake.py
@@ -165,11 +165,11 @@ class BuildFile(object):
 _INCLUDE_CMD_ = {
 "nmake" :   '!INCLUDE',
 "gmake" :   "include"
 }
 
-_INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : "-I", 
"RVCT" : "-I"}
+_INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : "-I", 
"RVCT" : "-I", "NASM" : "-I"}
 
 ## Constructor of BuildFile
 #
 #   @param  AutoGenObject   Object of AutoGen class
 #
@@ -594,10 +594,22 @@ cleanlib:
 "macro_name"   : "INC",
 "source_file" : 
IncludePathList
 }
 )
 FileMacroList.append(FileMacro)
+for File in self.FileCache.keys():
+if not str(File).endswith('.nasm'):
+continue
+FileMacro = ""
+IncludePathList = []
+for P in  MyAgo.IncludePathList:
+IncludePathList.append(self._INC_FLAG_['NASM'] + 
self.PlaceMacro(P, self.Macros))
+if FileBuildRule.INC_LIST_MACRO in self.ListFileMacros:
+
self.ListFileMacros[FileBuildRule.INC_LIST_MACRO].append(self._INC_FLAG_['NASM']
 + P)
+FileMacro += self._FILE_MACRO_TEMPLATE.Replace({"macro_name": 
"NASM_INC", "source_file": IncludePathList})
+FileMacroList.append(FileMacro)
+break
 
 # Generate macros used to represent files containing list of input 
files
 for ListFileMacro in self.ListFileMacros:
 ListFileName = os.path.join(MyAgo.OutputDir, "%s.lst" % 
ListFileMacro.lower()[:len(ListFileMacro) - 5])
 FileMacroList.append("%s = %s" % (ListFileMacro, ListFileName))
-- 
2.6.1.windows.1

___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel