IPZ VPD Parser support

This commit enables the app ibm-read-vpd to read the
IPZ format vpd. To build this app, the application
build must be configured with the "--enable-ibm-parser"
option.

The application populates the Inventory with the parsed
VPD data. The parser relies on a JSON config file
that maps the input VPD file path to the Inventory D-Bus
object that hosts the VPD data as properties.

The JSON file also supplies any additional interfaces
and properties that the D-Bus object should implement.

Argument required to run this application-
ibm-read-vpd --file vpd_file

Tested:

Also tested this on Rainier simulation model and verified that VPD
for FRUs is properly published as properties of D-Bus objects in the
Inventory.

Change-Id: Ic9305f25625adced7f64123589dd083e2679afbb
Signed-off-by: Alpana Kumari <alpankum@in.ibm.com>
diff --git a/Makefile.am b/Makefile.am
index 7759ee3..c7e4d9c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -10,6 +10,18 @@
 	types.hpp \
 	utils.hpp
 
+if IBM_PARSER
+bin_PROGRAMS = ibm-read-vpd
+ibm_read_vpd_SOURCES = \
+	ipz_app.cpp \
+	parser.cpp \
+	impl.cpp \
+	utils.cpp
+
+ibm_read_vpd_LDFLAGS = $(SDBUSPLUS_LIBS) $(PHOSPHOR_LOGGING_LIBS)
+ibm_read_vpd_CXXFLAGS = $(SDBUSPLUS_CFLAGS) $(PHOSPHOR_LOGGING_CFLAGS)
+
+else
 # Be sure to build these before compiling
 BUILT_SOURCES = \
 	writefru.hpp \
@@ -51,5 +63,6 @@
 	utils.cpp
 openpower_read_vpd_LDFLAGS = $(SDBUSPLUS_LIBS) $(PHOSPHOR_LOGGING_LIBS)
 openpower_read_vpd_CXXFLAGS = $(SDBUSPLUS_CFLAGS) $(PHOSPHOR_LOGGING_CFLAGS)
+endif
 
 SUBDIRS = test