From abb158ded41fffe92a6c0a4f6157d5153b011e00 Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Mon, 18 Aug 2014 23:03:17 +0000 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 Reviewed-by: Laszlo Ersek Reviewed-by: Liming Gao git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15820 6f19259b-4bc3-4df7-8a09-765794883524 --- BaseTools/Conf/build_rule.template | 16 ++++++++++++++++ BaseTools/Conf/tools_def.template | 15 +++++++++++++++ 2 files changed, 31 insertions(+) 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] + + ?.nasmb, ?.NASMB + + + $(MAKE_FILE) + + + $(OUTPUT_DIR)(+)${s_base}.bin + + + "$(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] ?.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 -- 2.39.2