]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Add rules to build NASM source file into a binary
authorJordan Justen <jordan.l.justen@intel.com>
Mon, 18 Aug 2014 23:03:17 +0000 (23:03 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 18 Aug 2014 23:03:17 +0000 (23:03 +0000)
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

BaseTools/Conf/build_rule.template
BaseTools/Conf/tools_def.template

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