summaryrefslogtreecommitdiff
path: root/BaseTools
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2014-08-18 23:03:17 +0000
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2014-08-18 23:03:17 +0000
commitabb158ded41fffe92a6c0a4f6157d5153b011e00 (patch)
treec36626dfbe7ac12517fcf0cc4aec1c60ecc7378d /BaseTools
parentde08c53b0f65f212c25f0eea13d6cdf4bd9c7fb4 (diff)
downloadedk2-platforms-abb158ded41fffe92a6c0a4f6157d5153b011e00.tar.xz
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.justen@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15820 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'BaseTools')
-rw-r--r--BaseTools/Conf/build_rule.template16
-rw-r--r--BaseTools/Conf/tools_def.template15
2 files changed, 31 insertions, 0 deletions
diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template
index c1c0d4cca6..55f56c2a74 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 1dae59a51a..a7b507d8ea 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)
#
####################################################################################
@@ -6571,3 +6580,9 @@ 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