diff options
author | Jordan Justen <jordan.l.justen@intel.com> | 2014-08-18 23:03:17 +0000 |
---|---|---|
committer | jljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524> | 2014-08-18 23:03:17 +0000 |
commit | abb158ded41fffe92a6c0a4f6157d5153b011e00 (patch) | |
tree | c36626dfbe7ac12517fcf0cc4aec1c60ecc7378d /BaseTools | |
parent | de08c53b0f65f212c25f0eea13d6cdf4bd9c7fb4 (diff) | |
download | edk2-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.template | 16 | ||||
-rw-r--r-- | BaseTools/Conf/tools_def.template | 15 |
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
|