Jordan:
  Thanks for your update. I agree to use NASM_PREFIX more simple. And, we may 
update edksetup.bat and edksetup.sh to set NASM_PREFIX default value for 
windows and linux if it is not set. For windows, its default path can be 
C:\nasm\
  But, for IASL, I still to suggest keep it as current style for compatibility. 

  For your rest of series, I just want to confirm why ResetVector/Vtf0/Build.py 
is still required. Is it for compatibility or other reasons? Could user 
configure the additional build flags to Vtf0.inf to create the different VTF0 
binary file? 

Thanks
Liming
-----Original Message-----
From: Justen, Jordan L 
Sent: Monday, August 04, 2014 3:59 AM
To: edk2-devel@lists.sourceforge.net; Gao, Liming
Cc: Justen, Jordan L
Subject: [PATCH] BaseTools: Add rules to build NASM source file into a binary

v2:
 * Use EDK II tool name of NASMB rather than NASMBIN
 * Use EDK II extension of .nasmb rather than .nasmbin
v3:
 * Create listing file
 * Don't change into source directory
 * Add ENV(NASM_PREFIX) before nasm for NASM_PATH

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com>
---

Liming,

Does this version cover your 3 recommendations?

I thought we should use an environment variable for the PREFIX path, like IASL 
does for UNIX. This would allow NASM_PATH to be specified just once in the 
tools_def, rather than once for each toolchain. (Maybe we should change IASL to 
do the same thing?)

Regarding this updated patch, and the rest of series, let me know if I can add 
your Reviewed-by signature.

Thanks,

-Jordan

 BaseTools/Conf/build_rule.template | 16 ++++++++++++++++  
BaseTools/Conf/tools_def.template  | 16 ++++++++++++++++
 2 files changed, 32 insertions(+)

diff --git a/BaseTools/Conf/build_rule.template 
b/BaseTools/Conf/build_rule.template
index c1c0d4c..55f56c2 100644
--- a/BaseTools/Conf/build_rule.template
+++ b/BaseTools/Conf/build_rule.template
@@ -440,6 +440,22 @@
       otool -t $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib | hex2bin.py ${dst}
       
 
+[Nasm-to-Binary-Code-File]
+    <InputFile>
+        ?.nasmb, ?.NASMB
+
+    <ExtraDependency>
+        $(MAKE_FILE)
+
+    <OutputFile>
+        $(OUTPUT_DIR)(+)${s_base}.bin
+
+    <Command>
+        "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
+        Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii 
${d_path}(+)${s_base}.i
+        "$(NASM)" -I${s_path}(+) -l ${d_path}(+)${s_base}.lst 
+ $(NASMB_FLAGS) -o $dst ${d_path}(+)${s_base}.iii
+
+
 [Microcode-File.USER_DEFINED, Microcode-File.Microcode]
     <InputFile>
         ?.txt, ?.TXT, ?.Txt, ?.mut, ?.inc diff --git 
a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 897d137..b032393 100644
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -668,6 +668,15 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program 
Files/CodeSourcery/Sourcery G  
####################################################################################
 
####################################################################################
 #
+# Other Supported Tools
+# =====================
+#   NASM                 2.0.3   http://www.nasm.us/
+#                        Note: Converts NASM source to .bin. Object linking to
+#                              EDK II driver modules is not currently 
supported.
+#
+#######################################################################
+############# 
+#######################################################################
+#############
+#
 # Intel EFI Byte Code Compiler (Template)  #  
####################################################################################
@@ -6544,3 +6553,10 @@ RELEASE_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) 
$(PLATFORM_FLAGS) DEF(GCC  ##################
 *_*_*_VPDTOOL_PATH         = BPDG
 *_*_*_VPDTOOL_GUID         = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
+
+##################
+# NASM tool definitions
+##################
+*_*_*_NASM_PATH                = ENV(NASM_PREFIX)nasm
+# NASMB uses NASM produce a .bin from a .nasmb NASM source file
+*_*_*_NASMB_FLAGS              = -f bin
--
2.0.1


------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to