build: add rule to generate callout mappings
The callout mappings are generated at build time by a script,
which needs an input YAML file. This change enables providing such a
YAML file by the phosphor-logging recipe.
Change-Id: I8e174d60e37eabb6d26ff7822ab5c9f38d35e0a6
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/Makefile.am b/Makefile.am
index 7ae074e..f2c44d9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -41,14 +41,16 @@
elog-lookup.cpp \
elog-process-metadata.cpp \
xyz/openbmc_project/Logging/Internal/Manager/server.cpp \
- xyz/openbmc_project/Logging/Internal/Manager/server.hpp
+ xyz/openbmc_project/Logging/Internal/Manager/server.hpp \
+ callouts-gen.hpp
CLEANFILES = \
phosphor-logging/elog-errors.hpp \
elog-lookup.cpp \
elog-process-metadata.cpp \
xyz/openbmc_project/Logging/Internal/Manager/server.cpp \
- xyz/openbmc_project/Logging/Internal/Manager/server.hpp
+ xyz/openbmc_project/Logging/Internal/Manager/server.hpp \
+ callouts-gen.hpp
# systemd required for journal interfaces
logging_test_LDFLAGS = $(SYSTEMD_LIBS) $(SDBUSPLUS_LIBS)
@@ -73,10 +75,13 @@
ELOG_MAKO ?= elog-gen-template.mako.hpp
LOOKUP_MAKO ?= elog-lookup-template.mako.cpp
META_MAKO ?= elog-process-metadata.mako.cpp
+CALLOUTS_MAKO ?= callouts-gen.mako.hpp
ELOG_TEMPLATE_DIR ?= ${abs_srcdir}/tools/phosphor-logging/templates/
REQ_FILES_TO_GEN ?= ${abs_srcdir}/tools/elog-gen.py\
${ELOG_TEMPLATE_DIR}/$(ELOG_MAKO)\
- ${ELOG_TEMPLATE_DIR}/$(META_MAKO)
+ ${ELOG_TEMPLATE_DIR}/$(META_MAKO)\
+ ${abs_srcdir}/callouts/callouts.py\
+ ${abs_srcdir}/callouts/$(CALLOUTS_MAKO)
# Be sure to package up the required script, yaml, and mako template to
# generate the header file
@@ -89,6 +94,8 @@
$(AM_V_at)$(PYTHON) ${abs_srcdir}/tools/elog-gen.py -y ${YAML_DIR} -u ${YAML_DIR_TEST} -t ${ELOG_TEMPLATE_DIR} -m $(LOOKUP_MAKO) -o $@
elog-process-metadata.cpp: $(REQ_FILES_TO_GEN)
$(AM_V_at)$(PYTHON) ${abs_srcdir}/tools/elog-gen.py -y ${YAML_DIR} -u ${YAML_DIR_TEST} -t ${ELOG_TEMPLATE_DIR} -m $(META_MAKO) -o $@
+callouts-gen.hpp: $(REQ_FILES_TO_GEN)
+ $(AM_V_at)$(PYTHON) ${abs_srcdir}/callouts/callouts.py -i ${CALLOUTS_YAML}
pkgconfiglibdir = ${libdir}/pkgconfig
pkgconfiglib_DATA = phosphor-logging.pc
diff --git a/configure.ac b/configure.ac
index 10655ed..964ce08 100644
--- a/configure.ac
+++ b/configure.ac
@@ -70,6 +70,9 @@
AC_ARG_VAR(YAML_DIR, [The path to the yaml error files.])
AS_IF([test "x$YAML_DIR" == "x"], \
[YAML_DIR="None"])
+AC_ARG_VAR(CALLOUTS_YAML, [YAML filepath containing generated callouts.])
+AS_IF([test "x$CALLOUTS_YAML" == "x"], \
+ [CALLOUTS_YAML="callouts-example.yaml"])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile test/Makefile])