]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Conf/build_rule.template
Sync EDKII BaseTools to BaseTools project r1988
[mirror_edk2.git] / BaseTools / Conf / build_rule.template
index 7e5d4aa0377564d3bbedce525b37b6adaec6e67c..ca79bef81f8ed15c88e6b23873554da37ef8210d 100644 (file)
@@ -1,7 +1,7 @@
 #\r
-#  Copyright (c) 2007-2009, Intel Corporation\r
-#  Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.\r
-#  All rights reserved. This program and the accompanying materials\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+#  Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
         "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}\r
         "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst}\r
 \r
+    <Command.ARMGCC>\r
+        "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}\r
+\r
+\r
 [C-Header-File]\r
     <InputFile>\r
         *.h, *.H\r
     <Command.RVCT>\r
         "$(SLINK)" $(SLINK_FLAGS) ${dst} --via $(OBJECT_FILES_LIST)\r
     \r
-    <Command.RVCTCYGWIN>\r
+    <Command.RVCTCYGWIN, Command.ARMGCC>\r
         # $(OBJECT_FILES_LIST) has wrong paths for cygwin\r
         "$(SLINK)" $(SLINK_FLAGS) ${dst} $(OBJECT_FILES)\r
 \r
 \r
     <Command.GCC>\r
         "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS)\r
-        "$(OBJCOPY)" --only-keep-debug ${dst} $(DEBUG_DIR)(+)$(MODULE_NAME).pdb\r
-        "$(OBJCOPY)" -S ${dst}\r
         "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}\r
 \r
+    <Command.ARMGCC>\r
+        "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -) $(DLINK2_FLAGS)\r
+\r
     <Command.RVCT>\r
         "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)\r
 \r
     <Command.GCC>\r
         "$(DLINK)" $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS)\r
 \r
+    <Command.ARMGCC>\r
+        "$(DLINK)" $(DLINK_FLAGS) -( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -) $(DLINK2_FLAGS)\r
+\r
     <Command.RVCT>\r
         "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)\r
 \r
     <OutputFile>\r
         $(DEBUG_DIR)(+)$(MODULE_NAME).efi\r
 \r
-    <Command.MSFT, Command.INTEL, Command.GCC, Command.RVCT>      \r
+    <Command.MSFT, Command.INTEL, Command.RVCT, Command.ARMGCC>  \r
+        GenFw -e $(MODULE_TYPE) -o ${dst} ${src}\r
+        $(CP) ${dst} $(OUTPUT_DIR)\r
+        $(CP) ${dst} $(BIN_DIR)\r
+        -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)\r
+\r
+    <Command.GCC>\r
+        $(OBJCOPY) --only-keep-debug ${src} $(BIN_DIR)(+)$(MODULE_NAME).debug\r
+        $(OBJCOPY) --strip-unneeded ${src}\r
+        $(OBJCOPY) --add-gnu-debuglink=$(BIN_DIR)(+)$(MODULE_NAME).debug ${src}\r
         GenFw -e $(MODULE_TYPE) -o ${dst} ${src}\r
         $(CP) ${dst} $(OUTPUT_DIR)\r
         $(CP) ${dst} $(BIN_DIR)\r
     <OutputFile>\r
         $(OUTPUT_DIR)(+)$(MODULE_NAME).depex\r
 \r
+    <ExtraDependency>\r
+        $(MAKE_FILE)\r
+\r
     <Command>\r
-        "$(PP)" $(CC_FLAGS) $(APP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i\r
+        "$(PP)" $(APP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i\r
         Trim --source-code -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i\r
         GenDepex -t $(MODULE_TYPE) -o ${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii\r
 \r
     <InputFile>\r
         *.mcb\r
 \r
+    <ExtraDependency>\r
+        $(MAKE_FILE)\r
+\r
     <OutputFile>\r
         $(OUTPUT_DIR)(+)$(MODULE_NAME).bin\r
 \r