diff options
Diffstat (limited to 'src/usr/hwpf/makefile')
-rw-r--r-- | src/usr/hwpf/makefile | 140 |
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} |