Fixed option issues in IPF assembler and EBC linker
[mirror_edk2.git] / BaseTools / Conf / build_rule.template
index 3fede25..1faf846 100644 (file)
@@ -60,7 +60,7 @@ ToolCodeMapping = {
     "Acpi-Source-Language"          :   "ASL",
     "Object"                        :   "SLINK",
     "Static-Library"                :   "DLINK",
-       "Dependency-Expression"                 :       "PP",
+    "Dependency-Expression"         :   "PP",
 }
 
 ToolChainFamilyMapping = {
@@ -82,43 +82,45 @@ ToolChainFamilyMapping = {
 
 ## Build rules for makefile
 # Placeholders for string substitution
-#      ${fdir}         File relative directory within a module
+#   ${fpath}  File path relative to $(WORKSPACE)
+#   ${fdir}    File relative directory within a module
 #   ${fname}   File full name without path
 #   ${fbase}   File name without extension and path
-#   ${fext}     File extension
-#   ${dep}      Dependency file
-#   ${sep}      Directory separator
+#   ${fext}   File extension
+#   ${fdep}   File dependencies
+#   ${sep}    Directory separator
 #
 Makefile = {
 "nmake"        : {
 "C-Code"    : '''\
-${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE_DIR)${sep}${dep}
-${END} "$(CC)" $(CC_FLAGS) $(INC) /Fo$@ $(MODULE_DIR)${sep}${fdir}${sep}${fname}
-''',
-
-"AutoGen-Code"    : '''\
-${BEGIN}$(OUTPUT_DIR)${sep}${fbase}.obj : $(WORKSPACE_DIR)${sep}${dep}
-${END} "$(CC)" $(CC_FLAGS) $(INC) /Fo$@ $(DEBUG_DIR)${sep}${fname}
+$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(COMMON_DEPS)
+${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE)${sep}${fdep}
+${END} "$(CC)" $(CC_FLAGS) $(INC) /Fo$@ $(WORKSPACE)${sep}${fpath}
 ''',
 
 "Masm-Code" : '''\
-${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE_DIR)${sep}${dep}
-${END} "$(PP)" $(PP_FLAGS) $(INC) $(MODULE_DIR)${sep}${fdir}${sep}${fname} > $(@D)${sep}${fbase}.i
+$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(COMMON_DEPS)
+${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE)${sep}${fdep}
+${END} "$(PP)" $(PP_FLAGS) $(INC) $(WORKSPACE)${sep}${fpath} > $(@D)${sep}${fbase}.i
        Trim -CONVERT $(@D)${sep}${fbase}.i
        "$(ASM)" $(ASM_FLAGS) /Fo$@ $(@D)${sep}${fbase}.iii
 ''',
 
 "Iasm-Code" : '''\
-${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE_DIR)${sep}${dep}
-${END} "$(APP)" $(APP_FLAGS) $(INC) $< $(PP_OUTPUT)$(@D)${sep}${fbase}.i
-       "$(ASM)" $(ASM_FLAGS) $(ASM_OUTPUT)$@ $(@D)${sep}${fbase}.i
+$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(COMMON_DEPS)
+${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE)${sep}${fdep}
+${END} "$(APP)" $(APP_FLAGS) $(INC) $(WORKSPACE)${sep}${fpath} > $(@D)${sep}${fbase}.i
+       "$(ASM)" $(ASM_FLAGS) -o$@ $(@D)${sep}${fbase}.i
 ''',
 
-"Visual-Form-Representation" : 
-'$(OUTPUT_DIR)\\%(fdir)s\\%(fbase)s.obj : $(MODULE_DIR)\\%(fdir)s\\%(fname)s $(DEP_FILES)\n'\
-    '\t"$(PP)" $(PP_FLAGS) $(INC) $< $(PP_OUTPUT)$(@D)\\%(fbase)s.i\n'\
-    '\t"$(VFRC)" $(VFRC_FLAGS) $(INC) $(VFRC_OUTPUT)$(DEBUG_DIR)\\%(fdir)s\\%(fbase)s.c $(@D)\\%(fbase)s.i\n'\
-    '\t"$(CC)" $(CC_FLAGS) $(INC) $(CC_OUTPUT)$@ $(DEBUG_DIR)\\%(fdir)s\\%(fbase)s.c\n',
+"Visual-Form-Representation" : '''\
+$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(COMMON_DEPS)
+${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE)${sep}${fdep}
+${END}\t"$(VFRPP)" $(VFRPP_FLAGS) $(INC) $(WORKSPACE)${sep}${fpath} > $(@D)${sep}${fbase}.i
+\tTrim -VFR $(@D)${sep}${fbase}.i
+\t"$(VFRC)" $(VFRC_FLAGS) -od $(DEBUG_DIR)${sep}${fdir} $(@D)${sep}${fbase}.iii
+\t"$(CC)" $(CC_FLAGS) $(INC) /Fo$@ $(DEBUG_DIR)${sep}${fdir}${sep}${fbase}.c
+''',
 },
 
 "gmake" : {