* [Patch 0/2 V2] Update .nasm to support $(INC)-like support
@ 2018-10-25 15:05 Yonghong Zhu
2018-10-25 15:05 ` [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu
2018-10-25 15:05 ` [Patch 2/2 V2] BaseTools: Update nasm file build rule to support $(INC) Yonghong Zhu
0 siblings, 2 replies; 4+ messages in thread
From: Yonghong Zhu @ 2018-10-25 15:05 UTC (permalink / raw)
To: edk2-devel; +Cc: Liming Gao, Zhiju . Fan
V2:
1. remove FileMacro variable
2. Make sure the NASM_INC file path have '\' in the end
Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1085
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com>
zhijufan (2):
BaseTools: Add $(INC)-like support when compiling .nasm files
BaseTools: Update nasm file build rule to support $(INC)
BaseTools/Conf/build_rule.template | 2 +-
BaseTools/Source/Python/AutoGen/GenMake.py | 14 +++++++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
--
2.6.1.windows.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files
2018-10-25 15:05 [Patch 0/2 V2] Update .nasm to support $(INC)-like support Yonghong Zhu
@ 2018-10-25 15:05 ` Yonghong Zhu
2018-10-25 15:33 ` Carsey, Jaben
2018-10-25 15:05 ` [Patch 2/2 V2] BaseTools: Update nasm file build rule to support $(INC) Yonghong Zhu
1 sibling, 1 reply; 4+ messages in thread
From: Yonghong Zhu @ 2018-10-25 15:05 UTC (permalink / raw)
To: edk2-devel; +Cc: zhijufan, Liming Gao
From: zhijufan <zhijux.fan@intel.com>
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 <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com>
---
BaseTools/Source/Python/AutoGen/GenMake.py | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py
index b4377ee..f754f03 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,21 @@ cleanlib:
"macro_name" : "INC",
"source_file" : IncludePathList
}
)
FileMacroList.append(FileMacro)
+ for File in self.FileCache.keys():
+ if not str(File).endswith('.nasm'):
+ continue
+ IncludePathList = []
+ for P in MyAgo.IncludePathList:
+ IncludePath = self._INC_FLAG_['NASM'] + self.PlaceMacro(P, self.Macros)
+ if not P.endswith('\\'):
+ IncludePath += '\\'
+ IncludePathList.append(IncludePath)
+ FileMacroList.append(self._FILE_MACRO_TEMPLATE.Replace({"macro_name": "NASM_INC", "source_file": IncludePathList}))
+ 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
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Patch 2/2 V2] BaseTools: Update nasm file build rule to support $(INC)
2018-10-25 15:05 [Patch 0/2 V2] Update .nasm to support $(INC)-like support Yonghong Zhu
2018-10-25 15:05 ` [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu
@ 2018-10-25 15:05 ` Yonghong Zhu
1 sibling, 0 replies; 4+ messages in thread
From: Yonghong Zhu @ 2018-10-25 15:05 UTC (permalink / raw)
To: edk2-devel; +Cc: zhijufan, Liming Gao
From: zhijufan <zhijux.fan@intel.com>
Update the build rule to:
"$(NASM)" -I${s_path}(+) $(NASM_INC)(+) $(NASM_FLAGS)
-o $dst ${d_path}(+)${s_base}.iii
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com>
---
BaseTools/Conf/build_rule.template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template
index ed54a55..8ac46c5 100755
--- a/BaseTools/Conf/build_rule.template
+++ b/BaseTools/Conf/build_rule.template
@@ -223,11 +223,11 @@
$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
<Command>
"$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
- "$(NASM)" -I${s_path}(+) $(NASM_FLAGS) -o $dst ${d_path}(+)${s_base}.iii
+ "$(NASM)" -I${s_path}(+) $(NASM_INC)(+) $(NASM_FLAGS) -o $dst ${d_path}(+)${s_base}.iii
[Device-Tree-Source-File]
<InputFile>
?.dts
--
2.6.1.windows.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files
2018-10-25 15:05 ` [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu
@ 2018-10-25 15:33 ` Carsey, Jaben
0 siblings, 0 replies; 4+ messages in thread
From: Carsey, Jaben @ 2018-10-25 15:33 UTC (permalink / raw)
To: Zhu, Yonghong, edk2-devel@lists.01.org; +Cc: Gao, Liming
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
> Yonghong Zhu
> Sent: Thursday, October 25, 2018 8:05 AM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>
> Subject: [edk2] [Patch 1/2 V2] BaseTools: Add $(INC)-like support when
> compiling .nasm files
>
> From: zhijufan <zhijux.fan@intel.com>
>
> 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 <liming.gao@intel.com>
> Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com>
> ---
> BaseTools/Source/Python/AutoGen/GenMake.py | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py
> b/BaseTools/Source/Python/AutoGen/GenMake.py
> index b4377ee..f754f03 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,21 @@ cleanlib:
> "macro_name" : "INC",
> "source_file" : IncludePathList
> }
> )
> FileMacroList.append(FileMacro)
> + for File in self.FileCache.keys():
> + if not str(File).endswith('.nasm'):
> + continue
> + IncludePathList = []
> + for P in MyAgo.IncludePathList:
> + IncludePath = self._INC_FLAG_['NASM'] + self.PlaceMacro(P,
> self.Macros)
> + if not P.endswith('\\'):
> + IncludePath += '\\'
> + IncludePathList.append(IncludePath)
> +
> FileMacroList.append(self._FILE_MACRO_TEMPLATE.Replace({"macro_nam
> e": "NASM_INC", "source_file": IncludePathList}))
> + 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
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-10-25 15:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-25 15:05 [Patch 0/2 V2] Update .nasm to support $(INC)-like support Yonghong Zhu
2018-10-25 15:05 ` [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu
2018-10-25 15:33 ` Carsey, Jaben
2018-10-25 15:05 ` [Patch 2/2 V2] BaseTools: Update nasm file build rule to support $(INC) Yonghong Zhu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox