|
From: Gao, L. <lim...@in...> - 2014-07-24 02:29:19
|
Jordan:
I have three comments.
1) BuildRule step "cd $(OUTPUT_DIR)(+)${s_dir}" is required? Nasm may not have the limitation on the execution path.
2) BuildRule "$(NASM)" -I${s_path}(+) $(NASMB_FLAGS) -o $dst ${d_path}(+)${s_base}.iii. I suggest to add "-l ${d_path}(+)${s_base}.lst" to create the asm list that include the output assembly code and source code. It will be helpful when user ports their asm16 to nasmb.
3) Tools_def "NASM_PATH = nasm", nasm tool will be placed in the different directories in windows and linux. I suggest to define $(WIN_NASM_BIN) and $(UNIX_NASM_BIN) like IASL tool definition.
Thanks
Liming
-----Original Message-----
From: Jordan Justen [mailto:jor...@in...]
Sent: Thursday, July 24, 2014 4:18 AM
To: edk...@li...
Cc: edk...@li...
Subject: [edk2-buildtools] [PATCH v2 1/7] 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
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jor...@in...>
---
BaseTools/Conf/build_rule.template | 17 +++++++++++++++++ BaseTools/Conf/tools_def.template | 16 ++++++++++++++++
2 files changed, 33 insertions(+)
diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template
index c1c0d4c..0b265e8 100644
--- a/BaseTools/Conf/build_rule.template
+++ b/BaseTools/Conf/build_rule.template
@@ -440,6 +440,23 @@
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
+ cd $(OUTPUT_DIR)(+)${s_dir}
+ "$(NASM)" -I${s_path}(+) $(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 f9e1e6c..e2571d4 100644
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -616,6 +616,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) # ####################################################################################
@@ -6058,3 +6067,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 = nasm
+# NASMB uses NASM produce a .bin from a .nasmb NASM source file
+*_*_*_NASMB_FLAGS = -f bin
--
2.0.1
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
edk2-buildtools-devel mailing list
edk...@li...
https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel
|