summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/rule
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2016-03-07 17:09:21 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-03-25 12:24:28 -0400
commit4dea56a10f144a1b0acb8aa9cc027870fd3c8d41 (patch)
treea015e5aa25d9d2753bdf6a01ab82e4de2527591a /src/usr/diag/prdf/rule
parent3ce1f242a85719ac94315bedb17d00536e1bf8cf (diff)
downloadblackbird-hostboot-4dea56a10f144a1b0acb8aa9cc027870fd3c8d41.tar.gz
blackbird-hostboot-4dea56a10f144a1b0acb8aa9cc027870fd3c8d41.zip
PRD: moved rule/ out of framework/
Change-Id: I4ddfa567abb576f7949bf8a9c4ab5ee530eed70e RTC: 140081 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/21860 Tested-by: Jenkins Server Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22137 Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/rule')
-rwxr-xr-xsrc/usr/diag/prdf/rule/makefile229
1 files changed, 229 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/rule/makefile b/src/usr/diag/prdf/rule/makefile
new file mode 100755
index 000000000..19a380c4f
--- /dev/null
+++ b/src/usr/diag/prdf/rule/makefile
@@ -0,0 +1,229 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/usr/diag/prdf/rule/makefile $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2016
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+
+# Relative path to root from this makefile
+ROOTPATH = ../../../../..
+
+# Relative path to root from OBJ_RULE
+OBJ_PLUG_LINK_PATH = ../../..
+
+OBJ_RULE = obj/modules/prdf/rule
+OBJ_PLUG = obj/genfiles/plugins/prdf
+SRC_USR = src/usr/diag/prdf
+SRC_INC = src/include/usr/diag/prdf
+
+OBJ_RULE_DIR = ${ROOTPATH}/${OBJ_RULE}
+OBJ_PLUG_DIR = ${ROOTPATH}/${OBJ_PLUG}
+SRC_USR_DIR = ${ROOTPATH}/${SRC_USR}
+
+OBJ_RULE_LINK_DIR = ${OBJ_PLUG_LINK_PATH}/${OBJ_RULE}
+
+VPATH = ${SRC_USR_DIR}/common/rule
+
+include ../common/rule/prdf_rule.mk
+
+#------------------------------------------------------------------------------
+# Generated files
+#------------------------------------------------------------------------------
+
+PRDR_CMP = prdrCompile
+PRDR_CMP_o = ${PRDR_CMP}.o
+PRDR_CMP_C = ${PRDR_CMP}.C
+
+PRDR_CMP_YACC = ${PRDR_CMP}.y
+PRDR_CMP_YACC_o = ${PRDR_CMP_YACC}.o
+PRDR_CMP_YACC_C = ${PRDR_CMP_YACC}.C
+PRDR_CMP_YACC_H = ${PRDR_CMP_YACC}.H
+
+PRDR_CMP_FLEX = ${PRDR_CMP}.lex
+PRDR_CMP_FLEX_o = ${PRDR_CMP_FLEX}.o
+PRDR_CMP_FLEX_C = ${PRDR_CMP_FLEX}.C
+
+PRDR_CMP_PATH = ${OBJ_RULE_DIR}/${PRDR_CMP}
+PRDR_CMP_o_PATH = ${OBJ_RULE_DIR}/${PRDR_CMP_o}
+
+PRDR_CMP_YACC_o_PATH = ${OBJ_RULE_DIR}/${PRDR_CMP_YACC_o}
+PRDR_CMP_YACC_C_PATH = ${OBJ_RULE_DIR}/${PRDR_CMP_YACC_C}
+PRDR_CMP_YACC_H_PATH = ${OBJ_RULE_DIR}/${PRDR_CMP_YACC_H}
+
+PRDR_CMP_FLEX_o_PATH = ${OBJ_RULE_DIR}/${PRDR_CMP_FLEX_o}
+PRDR_CMP_FLEX_C_PATH = ${OBJ_RULE_DIR}/${PRDR_CMP_FLEX_C}
+
+PRF_IMG_PATHS = $(addprefix ${IMGDIR}/, ${prd_rule_prf_targets})
+ERR_PLUGIN_PATHS = $(addprefix ${OBJ_PLUG_DIR}/, ${prd_rule_err_targets})
+REG_PLUGIN_PATHS = $(addprefix ${OBJ_PLUG_DIR}/, ${prd_rule_reg_targets})
+
+#-------------------------------------------------------------------------------
+# Files linked to the error log plugins directory
+#-------------------------------------------------------------------------------
+
+# Entire directories to link.
+SOURCE_PLUGIN_DIRS += ${SRC_USR}/common/plugins
+SOURCE_PLUGIN_DIRS += ${SRC_USR}/plugins
+
+# Individual source files to link.
+SOURCE_PLUGIN_FILES += ${SRC_USR}/common/rule/prdf_rule.mk
+SOURCE_PLUGIN_FILES += ${SRC_USR}/common/rule/tables.mk
+SOURCE_PLUGIN_FILES += ${SRC_USR}/common/util/UtilHash.H
+SOURCE_PLUGIN_FILES += ${SRC_USR}/common/plat/pegasus/prdfCenConst.H
+SOURCE_PLUGIN_FILES += ${SRC_USR}/common/iipconst.h
+SOURCE_PLUGIN_FILES += ${SRC_USR}/common/prdf_types.h
+SOURCE_PLUGIN_FILES += ${SRC_INC}/common/prdf_service_codes.H
+SOURCE_PLUGIN_FILES += $(foreach d, ${SOURCE_PLUGIN_DIRS}, $(addprefix $(d)/, $(notdir $(wildcard ${ROOTPATH}/$(d)/*))))
+
+LINK_PLUGIN_FILES += $(addprefix ${OBJ_PLUG_DIR}/,$(notdir ${SOURCE_PLUGIN_FILES}))
+
+#-------------------------------------------------------------------------------
+# CODE_PASS
+#-------------------------------------------------------------------------------
+
+CODE_PASS_BODY += ${PRF_IMG_PATHS}
+CODE_PASS_BODY += ${ERR_PLUGIN_PATHS}
+CODE_PASS_BODY += ${REG_PLUGIN_PATHS}
+CODE_PASS_BODY += ${LINK_PLUGIN_FILES}
+
+CLEAN_TARGETS += ${PRDR_CMP_PATH}
+CLEAN_TARGETS += ${PRDR_CMP_o_PATH}
+CLEAN_TARGETS += ${PRDR_CMP_YACC_o_PATH}
+CLEAN_TARGETS += ${PRDR_CMP_YACC_C_PATH}
+CLEAN_TARGETS += ${PRDR_CMP_YACC_H_PATH}
+CLEAN_TARGETS += ${PRDR_CMP_FLEX_o_PATH}
+CLEAN_TARGETS += ${PRDR_CMP_FLEX_C_PATH}
+CLEAN_TARGETS += $(addprefix ${OBJ_RULE_DIR}/, ${prd_rule_prf_targets})
+CLEAN_TARGETS += $(addprefix ${OBJ_RULE_DIR}/, ${prd_rule_err_targets})
+CLEAN_TARGETS += $(addprefix ${OBJ_RULE_DIR}/, ${prd_rule_reg_targets})
+CLEAN_TARGETS += $(addprefix ${OBJ_RULE_DIR}/, ${prd_rule_html_targets})
+CLEAN_TARGETS += ${PRF_IMG_PATHS}
+CLEAN_TARGETS += ${ERR_PLUGIN_PATHS}
+CLEAN_TARGETS += ${REG_PLUGIN_PATHS}
+CLEAN_TARGETS += ${LINK_PLUGIN_FILES}
+
+# NOTE: All rules defined in this makefile must be done after this line
+# otherwise the default rule 'all' will not be called.
+include ${ROOTPATH}/config.mk
+
+# Special recipes to make the output less chatty
+PRD_OUT_MAKE = $(C2) " MAKE $(notdir $@)"
+PRD_OUT_LINK = $(C2) " LINK $(notdir $@)"
+
+#-------------------------------------------------------------------------------
+# Rules for directories that may not exist.
+#-------------------------------------------------------------------------------
+
+${OBJ_RULE_DIR}:
+ $(C1)mkdir -p ${OBJ_RULE_DIR}
+
+${OBJ_PLUG_DIR}:
+ $(C1)mkdir -p ${OBJ_PLUG_DIR}
+
+#-------------------------------------------------------------------------------
+# Build the flex/yacc source code
+#-------------------------------------------------------------------------------
+
+${PRDR_CMP_YACC_C_PATH} \
+${PRDR_CMP_YACC_H_PATH}: ${PRDR_CMP_YACC} | ${OBJ_RULE_DIR}
+ ${PRD_OUT_MAKE}
+ $(C1)bison -d -o ${PRDR_CMP_YACC_C_PATH} $^
+
+PRDR_CMP_FLEX: ; # Discard implicit rule for %.lex <- %.lex.C
+${PRDR_CMP_FLEX_C_PATH}: ${PRDR_CMP_FLEX} | ${OBJ_RULE_DIR}
+ ${PRD_OUT_MAKE}
+ $(C1)flex -o$@ $^
+
+#------------------------------------------------------------------------------
+# Build the PRD rule compiler
+#------------------------------------------------------------------------------
+
+USERDEFINES = -D__HOSTBOOT_MODULE -O3 -pipe
+
+${PRDR_CMP_YACC_o_PATH}: ${PRDR_CMP_YACC_C_PATH} ${PRDR_CMP_YACC_H_PATH}
+ ${PRD_OUT_MAKE}
+ $(C1)$(CCACHE) $(HOST_PREFIX)g++ -c $(USERDEFINES) $< \
+ -I ${SRC_USR_DIR}/common/rule \
+ -I ${SRC_USR_DIR}/common/util -I ${OBJ_RULE_DIR} \
+ -o $@
+
+${PRDR_CMP_FLEX_o_PATH}: ${PRDR_CMP_FLEX_C_PATH} ${PRDR_CMP_YACC_H_PATH}
+ ${PRD_OUT_MAKE}
+ $(C1)$(CCACHE) $(HOST_PREFIX)g++ -c $(USERDEFINES) $< \
+ -I ${SRC_USR_DIR}/common/rule \
+ -I ${SRC_USR_DIR}/common/util -I ${OBJ_RULE_DIR} \
+ -o $@
+
+${PRDR_CMP_o_PATH}: ${PRDR_CMP_C} | ${OBJ_RULE_DIR}
+ ${PRD_OUT_MAKE}
+ $(C1)$(CCACHE) $(HOST_PREFIX)g++ -c $(USERDEFINES) $< \
+ -I ${SRC_USR_DIR}/common/rule \
+ -I ${SRC_USR_DIR}/common \
+ -I ${SRC_USR_DIR}/common/plugins \
+ -I ${SRC_USR_DIR}/common/util \
+ -I ${GENDIR} -I ${OBJ_RULE_DIR} \
+ -I ${SRC_USR_DIR}/common/framework/resolution \
+ -I ${SRC_USR_DIR}/common/framework/service \
+ -o $@
+
+${PRDR_CMP_PATH}: ${PRDR_CMP_YACC_o_PATH} ${PRDR_CMP_FLEX_o_PATH} \
+ ${PRDR_CMP_o_PATH}
+ ${PRD_OUT_MAKE}
+ $(C1)$(HOST_PREFIX)g++ $(USERDEFINES) \
+ ${PRDR_CMP_YACC_o_PATH} ${PRDR_CMP_FLEX_o_PATH} ${PRDR_CMP_o_PATH} \
+ -o $@
+
+#------------------------------------------------------------------------------
+# Build the *.prf, *.err.C, and *.reg.C files
+#------------------------------------------------------------------------------
+
+vpath %.rule ../common/plat/pegasus
+PRDRPP_SEARCHDIRS = -I../common/plat/pegasus
+
+${OBJ_RULE_DIR}/%.prf \
+${OBJ_RULE_DIR}/%.prf.err.C \
+${OBJ_RULE_DIR}/%.prf.reg.C : %.rule ${PRDR_CMP_PATH}
+ ${PRD_OUT_MAKE}
+ $(C1)cat $< | ${SRC_USR_DIR}/common/rule/prdrpp \
+ ${PRDRPP_SEARCHDIRS} | $(JAILCMD) ${PRDR_CMP_PATH} $@
+
+# Copy all .prf files from ${OBJ_RULE_DIR} to ${IMGDIR}
+${PRF_IMG_PATHS}: ${IMGDIR}/% : ${OBJ_RULE_DIR}/%
+ $(C1)cp -f $^ $@
+
+#------------------------------------------------------------------------------
+# Link the necessary files to the plugins directory
+#------------------------------------------------------------------------------
+
+# Link all .prf.err.C and .prf.reg.C files from OBJ_RULE_DIR to OBJ_PLUG_DIR
+${ERR_PLUGIN_PATHS} \
+${REG_PLUGIN_PATHS}: ${OBJ_PLUG_DIR}/% : ${OBJ_RULE_DIR}/% | ${OBJ_PLUG_DIR}
+ ${PRD_OUT_LINK}
+ $(C1)ln -sf ${OBJ_RULE_LINK_DIR}/$(notdir $^) $@
+
+# Link all individual header file needed to compile plugin code.
+define LINK_RULE
+${OBJ_PLUG_DIR}/$(notdir $(1)): $(ROOTPATH)/$(1) | ${OBJ_PLUG_DIR}
+ $(C2) " LINK $$(notdir $$@)"
+ $(C1)ln -sf ${OBJ_PLUG_LINK_PATH}/$(1) $$@
+endef
+$(foreach file,${SOURCE_PLUGIN_FILES}, $(eval $(call LINK_RULE,$(file))))
+
OpenPOWER on IntegriCloud