summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2019-02-13 17:37:36 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-02-16 09:09:38 -0600
commitbc80fc6b84359fa03c4212162e3e548dadcd8a9c (patch)
tree812013442bd2db4c713cdc77164d30e7424a7423 /src
parentd74d9444ae9ccb0b452645a4663402df2d34043e (diff)
downloadtalos-hostboot-bc80fc6b84359fa03c4212162e3e548dadcd8a9c.tar.gz
talos-hostboot-bc80fc6b84359fa03c4212162e3e548dadcd8a9c.zip
Update istep_mss modules makefile to generate mss accessors
Recently in hostboot we have pulled in a script from the EKB that will parse various memory related XML files and generated header files that the memory HWPs use to access various attributes. This commit will add calls to the makefile to make sure that these headers get generated during the build. Change-Id: I071f32553fc9f8e5cdc3645b18f1ca7870cb80ad Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71870 Reviewed-by: Louis Stermole <stermole@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/build/mkrules/script.rules.mk89
-rw-r--r--src/usr/isteps/mss/makefile72
2 files changed, 159 insertions, 2 deletions
diff --git a/src/build/mkrules/script.rules.mk b/src/build/mkrules/script.rules.mk
new file mode 100644
index 000000000..7d344cfc8
--- /dev/null
+++ b/src/build/mkrules/script.rules.mk
@@ -0,0 +1,89 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/build/mkrules/script.rules.mk $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2015,2019
+# [+] 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
+
+# Makefile that defines how we build generated files, often from scripts that
+# process other content in the repository, such as XML files.
+
+# BUILD_GENERATED
+# This macro will automatically generate all the recipes for running a tool
+# that generates other files. Requires that the following variables are
+# defined prior to calling this macro:
+# * GENERATED=name - Give a name to this generator.
+# * COMMAND=tool - Name of the tool to run.
+# * SOURCES=file1 file2 - List of files as 'input' to the tool.
+# * TARGETS=file3 file4 - List of files that are created as 'output'.
+# * $(GENERATED)_RUN - A macro that identifies how to run this tool.
+# Special variables:
+# * $(GENERATED)_PATH - Optional path to put output into.
+# * $(GENERATED)_COMMAND_PATH - Path to tool, assumed to be the current
+# directory of the .mk file if not given.
+# Input:
+# * Optional input to delay the running of BUILD_GENERATED macro to a
+# later phase EXE or MODULE.
+#
+BUILD_GENERATED = $(eval $(call __BUILD_GENERATED,$1))
+
+GENPATH = $(OUTPATH)
+
+# Order of operations:
+# * Define _PATH and _COMMAND_PATH if they do not exist.
+# * Define a recipe for a $(GENERATED).built timestamp file.
+# - Depend on $(COMMAND) and $(SOURCES)
+# - Ensure $(GENERATED)_PATH output path exists.
+# - Call $(GENERATED)_RUN macro.
+# - Touch timestamp file.
+# * Add dependency from TARGETS to .built timestamp file.
+# * Add timestamp and TARGETS to 'clean' target.
+# * Add timestamp to GEN_TARGETS.
+# * Clear out GENERATED, COMMAND, SOURCES, and TARGETS variables.
+define __BUILD_GENERATED
+$(GENERATED)_PATH ?= $$(GENPATH)
+$(GENERATED)_COMMAND_PATH ?= $(dir $(lastword $(MAKEFILE_LIST)))
+
+
+GEN_PASS: $$($(GENERATED)_PATH)/.$(GENERATED).built
+
+$$($(GENERATED)_PATH)/.$(GENERATED).built : \
+ $$($(GENERATED)_COMMAND_PATH)$(COMMAND) $(SOURCES)
+ $(C2) " GEN $(GENERATED)"
+ $(C1) mkdir -p $$($(GENERATED)_PATH)
+ $(call $(GENERATED)_RUN)
+ @touch $$@
+
+$$(addprefix $$($(GENERATED)_PATH)/,$(TARGETS)): \
+ $$($(GENERATED)_PATH)/.$(GENERATED).built
+
+$(call __CLEAN_TARGET,$$($(GENERATED)_PATH)/.$(GENERATED).built)
+$(foreach target,$(TARGETS),\
+ $(call CLEAN_TARGET,$$($(GENERATED)_PATH)/$(target)))
+
+$(or $1,GEN)_TARGETS += $$($(GENERATED)_PATH)/.$(GENERATED).built
+
+GENERATED:=
+COMMAND:=
+SOURCES:=
+TARGETS:=
+endef
+
diff --git a/src/usr/isteps/mss/makefile b/src/usr/isteps/mss/makefile
index 24dd0062b..cbe61724f 100644
--- a/src/usr/isteps/mss/makefile
+++ b/src/usr/isteps/mss/makefile
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2016,2018
+# Contributors Listed Below - COPYRIGHT 2016,2019
# [+] International Business Machines Corp.
#
#
@@ -24,7 +24,8 @@
# IBM_PROLOG_END_TAG
ROOTPATH = ../../../..
-PROCEDURES_PATH = ${ROOTPATH}/src/import/chips/p9/procedures
+IMPORT_PATH = ${ROOTPATH}/src/import
+PROCEDURES_PATH = ${IMPORT_PATH}/chips/p9/procedures
#Add all the extra include paths
EXTRAINCDIR += ${ROOTPATH}/src/import/hwpf/fapi2/include
@@ -62,6 +63,73 @@ MSS_LIB += ${ROOTPATH}/src/import/generic/memory/lib/utils/freq/
EXTRAINCDIR += ${MSS_LIB}
+include ${ROOTPATH}/src/build/mkrules/script.rules.mk
+include ${ROOTPATH}/src/build/mkrules/verbose.rules.mk
+
+# Generate generic_system_accessors header file
+MSS_GENERIC_PATH := $(IMPORT_PATH)/generic/memory/lib
+MSS_GENERIC_INCLUDES := $(shell find $(MSS_GENERIC_PATH) -type d)
+
+GENERATED = generic_system_accessors
+COMMAND = gen_accessors.pl
+$(GENERATED)_COMMAND_PATH = $(IMPORT_PATH)/generic/memory/tools/
+
+OUTPATH = ${ROOTPATH}/obj/genfiles/generic/memory/lib/
+FILE_PREFIX = mss_generic_system
+
+SOURCES += $(IMPORT_PATH)/hwpf/fapi2/xml/attribute_info/system_attributes.xml
+
+CLEAN_TARGETS += ${OUTPATH}/mss_generic_system_attribute_getters.H
+CLEAN_TARGETS += ${OUTPATH}/.generic_system_accessors.built
+
+define generic_system_accessors_RUN
+ $(C1) mkdir $(OUTPATH) -p
+ $(C1) $$< --system=AXONE --output-dir=$(OUTPATH) --output-file-prefix=$(FILE_PREFIX) $$(filter-out $$<,$$^)
+endef
+
+$(call BUILD_GENERATED)
+
+# Generate generic_memory_accessors header file
+GENERATED = generic_accessors
+COMMAND = gen_accessors.pl
+$(GENERATED)_COMMAND_PATH = $(IMPORT_PATH)/generic/memory/tools/
+
+OUTPATH = ${ROOTPATH}/obj/genfiles/generic/memory/lib
+FILE_PREFIX = mss_generic
+
+SOURCES += $(shell find $(IMPORT_PATH)/generic/procedures/xml/attribute_info/ -type f)
+
+CLEAN_TARGETS += ${OUTPATH}/mss_generic_attribute_getters.H
+CLEAN_TARGETS += ${OUTPATH}/mss_generic_attribute_setters.H
+CLEAN_TARGETS += ${OUTPATH}/.generic_accessors.built
+
+define generic_accessors_RUN
+ $(C1) mkdir $(OUTPATH) -p
+ $(C1) $$< --system=AXONE --output-dir=$(OUTPATH) --output-file-prefix=$(FILE_PREFIX) $$(filter-out $$<,$$^)
+endef
+
+$(call BUILD_GENERATED)
+
+# Generate explorer_memory_accessors header file
+GENERATED = gen_exp_accessors
+COMMAND = gen_accessors.pl
+$(GENERATED)_COMMAND_PATH = $(IMPORT_PATH)/generic/memory/tools/
+
+OUTPATH = ${ROOTPATH}/obj/genfiles/chips/ocmb/explorer/procedures/hwp/memory/lib/
+FILE_PREFIX = mss_explorer
+
+SOURCES += $(shell find $(IMPORT_PATH)/chips/ocmb/explorer/procedures/xml/attribute_info/ -type f)
+
+CLEAN_TARGETS += ${OUTPATH}/mss_explorer_attribute_getters.H
+CLEAN_TARGETS += ${OUTPATH}/mss_explorer_attribute_setters.H
+CLEAN_TARGETS += ${OUTPATH}/.gen_exp_accessors.built
+
+define gen_exp_accessors_RUN
+ $(C1) mkdir $(OUTPATH) -p
+ $(C1) $$< --system=AXONE --output-dir=$(OUTPATH) --output-file-prefix=$(FILE_PREFIX) $$(filter-out $$<,$$^)
+endef
+
+$(call BUILD_GENERATED)
# Add common and generated parts to object list.
MSS_PATH := $(PROCEDURES_PATH)/hwp/memory/lib
OpenPOWER on IntegriCloud