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])