summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/makefile
diff options
context:
space:
mode:
authorMike Jones <mjjones@us.ibm.com>2011-11-17 19:38:31 -0600
committerMIKE J. JONES <mjjones@us.ibm.com>2011-11-21 12:07:50 -0600
commit11c80c5abcf203e5a65098ea047fd6d2a6e607cc (patch)
tree1e1a5246e8ed0b25b66e6e1e34bba7622f63bbea /src/usr/hwpf/makefile
parentb9d93e82a069b6650f3bd7b43abe6aecc0bf2e4e (diff)
downloadblackbird-hostboot-11c80c5abcf203e5a65098ea047fd6d2a6e607cc.tar.gz
blackbird-hostboot-11c80c5abcf203e5a65098ea047fd6d2a6e607cc.zip
HWPF: Only support initfile attributes in fapiGetInitFileAttr()
Change-Id: Ia1ffa854d55b68f0e32595080bba323cd52e23a3 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/503 Tested-by: Jenkins Server Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com> Reviewed-by: CAMVAN T. NGUYEN <ctnguyen@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/makefile')
-rw-r--r--src/usr/hwpf/makefile140
1 files changed, 124 insertions, 16 deletions
diff --git a/src/usr/hwpf/makefile b/src/usr/hwpf/makefile
index 7749368ec..6a031cde9 100644
--- a/src/usr/hwpf/makefile
+++ b/src/usr/hwpf/makefile
@@ -21,29 +21,137 @@
#
# IBM_PROLOG_END
ROOTPATH = ../../..
-MODULE = hwpf
+SUBDIRS = fapi.d hwp.d plat.d test.d
+
+#------------------------------------------------------------------------------
+# This makefile controls the generation of HWPF files
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Source XML files
+#------------------------------------------------------------------------------
+HWP_ERROR_XML_FILES = hwp/fapiHwpErrorInfo.xml
+HWP_ATTR_XML_FILES = hwp/fapiHwpAttributeInfo.xml
+
+#------------------------------------------------------------------------------
+# Initfiles
+#------------------------------------------------------------------------------
+HWP_INITFILES = hwp/initfiles/sample.initfile
+
+#------------------------------------------------------------------------------
+# Generated files
+#------------------------------------------------------------------------------
+# Initfile compiler files
+IF_CMP_YACC_C_TARGET = y.tab.c
+IF_CMP_YACC_H_TARGET = y.tab.h
+IF_CMP_FLEX_TARGET = lex.yy.c
+IF_CMP_COMPILER_TARGET = ifcompiler
+
+# The FAPI return code and error info files generated from Error XML files
FAPI_ERROR_TARGETS = fapiHwpReturnCodes.H fapiHwpErrorInfo.H
-FAPI_ATTR_TARGETS = fapiAttributeIds.H fapiAttributeService.C
-FAPI_HWP_ERROR_TAGS = fapiHwpReasonCodes.H
-GENFILES = ${FAPI_ERROR_TARGETS} ${FAPI_ATTR_TARGETS} ${FAPI_HWP_ERROR_TAGS}
+# The PLAT error tag file generated from Error XML files
+PLAT_ERROR_TAG_TARGET = fapiHwpReasonCodes.H
-SUBDIRS = fapi.d hwp.d plat.d test.d
+# The FAPI attribute id file generated from Attribute XML files
+FAPI_ATTR_ID_TARGET = fapiAttributeIds.H
+
+# The binary, list and attr files generated from Initfiles
+# Generation depends on ifcompiler and fapiAttributeIds.H
+HWP_IF_NAMES = $(notdir ${HWP_INITFILES})
+HWP_IF_BASENAMES = $(basename ${HWP_IF_NAMES})
+HWP_IF_BIN_TARGETS = $(addsuffix .if, ${HWP_IF_BASENAMES})
+HWP_IF_LST_TARGETS = $(addsuffix .if.list, ${HWP_IF_BASENAMES})
+HWP_IF_ATT_TARGETS = $(addsuffix .if.attr, ${HWP_IF_BASENAMES})
+HWP_IF_ALL_TARGETS = ${HWP_IF_BIN_TARGETS} ${HWP_IF_LST_TARGETS} \
+ ${HWP_IF_ATT_TARGETS}
+
+# The FAPI Initfile attribute service
+# Generation depends on the Initfile <name>.if.attr files
+FAPI_ATTR_IF_TARGET = fapiAttributeService.C
+
+GENFILES = ${IF_CMP_YACC_C_TARGET} \
+ ${IF_CMP_YACC_H_TARGET} \
+ ${IF_CMP_FLEX_TARGET} \
+ ${IF_CMP_COMPILER_TARGET} \
+ ${FAPI_ERROR_TARGETS} \
+ ${PLAT_ERROR_TAG_TARGET} \
+ ${FAPI_ATTR_ID_TARGET} \
+ ${HWP_IF_ALL_TARGETS} \
+ ${FAPI_ATTR_IF_TARGET}
+
+EXTRA_PARTS = ${ROOTPATH}/img/${HWP_IF_BIN_TARGETS}
include ${ROOTPATH}/config.mk
-# fapiParseErrorInfo.pl produces multiple output files: FAPI_ERROR_TARGETS
-$(call GENTARGET, $(FAPI_ERROR_TARGETS)) : \
- fapi/fapiParseErrorInfo.pl hwp/fapiHwpErrorInfo.xml
- $< $(dir $@) $(filter-out $<,$^)
+#------------------------------------------------------------------------------
+# The Initfile compiler
+#------------------------------------------------------------------------------
+$(call GENTARGET, ${IF_CMP_YACC_C_TARGET} ${IF_CMP_YACC_H_TARGET}) : \
+ ifcompiler/initCompiler.y
+ yacc -d -o ${GENDIR}/${IF_CMP_YACC_C_TARGET} $^
+
+$(call GENTARGET, ${IF_CMP_FLEX_TARGET}) : \
+ ifcompiler/initCompiler.lex
+ flex -o$@ $^
+
+IF_COMPILER_C_FILES = ifcompiler/initCompiler.C \
+ ifcompiler/initRpn.C \
+ ifcompiler/initScom.C \
+ ifcompiler/initSymbols.C
+
+IF_COMPILER_H_FILES = ifcompiler/initCompiler.H \
+ ifcompiler/initRpn.H \
+ ifcompiler/initScom.H \
+ ifcompiler/initSymbols.H
+
+$(call GENTARGET, ${IF_CMP_COMPILER_TARGET}) : \
+ ${GENDIR}/${IF_CMP_YACC_C_TARGET} \
+ ${GENDIR}/${IF_CMP_YACC_H_TARGET} \
+ ${GENDIR}/${IF_CMP_FLEX_TARGET} \
+ ${IF_COMPILER_C_FILES} \
+ ${IF_COMPILER_H_FILES}
+ g++ ${IF_COMPILER_C_FILES} ${GENDIR}/${IF_CMP_FLEX_TARGET} \
+ ${GENDIR}/${IF_CMP_YACC_C_TARGET} -I ifcompiler -I ${GENDIR} \
+ -I ${ROOTPATH}/src/include/usr/hwpf/hwp -o $@
+
+#------------------------------------------------------------------------------
+# The FAPI return code and error info files generated from Error XML files
+#------------------------------------------------------------------------------
+$(call GENTARGET, ${FAPI_ERROR_TARGETS}) : \
+ fapi/fapiParseErrorInfo.pl ${HWP_ERROR_XML_FILES}
+ $< $(dir $@) ${HWP_ERROR_XML_FILES}
+
+#------------------------------------------------------------------------------
+# The PLAT error tag file generated from Error XML files
+#------------------------------------------------------------------------------
+$(call GENTARGET, ${PLAT_ERROR_TAG_TARGET}) : \
+ plat/fapiCreateHwpErrorTags.pl ${HWP_ERROR_XML_FILES}
+ $< $(dir $@) ${HWP_ERROR_XML_FILES}
+
+#------------------------------------------------------------------------------
+# The FAPI attribute id file generated from Attribute XML files
+#------------------------------------------------------------------------------
+$(call GENTARGET, ${FAPI_ATTR_ID_TARGET}) : \
+ fapi/fapiParseAttributeInfo.pl ${HWP_ATTR_XML_FILES}
+ $< $(dir $@) ${HWP_ATTR_XML_FILES}
+
+#------------------------------------------------------------------------------
+# The binary, list and attr files generated from Initfiles
+#------------------------------------------------------------------------------
+$(call GENTARGET, ${HWP_IF_ALL_TARGETS}) : \
+ ${GENDIR}/${IF_CMP_COMPILER_TARGET} ${HWP_INITFILES} ${GENDIR}/${FAPI_ATTR_ID_TARGET}
+ $< -init ${HWP_INITFILES} -outdir $(dir $@) -attr ${GENDIR}/${FAPI_ATTR_ID_TARGET}
-# fapiParseAttributeInfo.pl produces multiple output files: FAPI_ATTR_TARGETS
-$(call GENTARGET, $(FAPI_ATTR_TARGETS)) : \
- fapi/fapiParseAttributeInfo.pl hwp/fapiHwpAttributeInfo.xml
- $< $(dir $@) $(filter-out $<,$^)
+${EXTRA_PARTS}: ${IMGDIR}/% : ${GENDIR}/%
+ cp -f $^ $@
-$(call GENTARGET, $(FAPI_HWP_ERROR_TAGS)) : \
- plat/fapiCreateHwpErrorTags.pl hwp/fapiHwpErrorInfo.xml
- $< $(dir $@) $(filter-out $<,$^)
+#------------------------------------------------------------------------------
+# The FAPI Initfile attribute service
+#------------------------------------------------------------------------------
+$(call GENTARGET, ${FAPI_ATTR_IF_TARGET}) : \
+ fapi/fapiCreateIfAttrService.pl ${HWP_ATTR_XML_FILES} \
+ $(addprefix ${GENDIR}/, $(HWP_IF_ATT_TARGETS))
+ $< $(dir $@) $(addprefix ${GENDIR}/, $(HWP_IF_ATT_TARGETS)) -a ${HWP_ATTR_XML_FILES}
OpenPOWER on IntegriCloud