Add settings application

Implement settings d-bus interfaces.

Define a settings policy file (this commit checks in an example YAML
based policy), based on which code for a settings manager will be
generated via a python script.
This settings manager composes and places desired settings objects on
the bus.

The policy file can be supplied by a system specific bitbake recipe.

Resolves openbmc/openbmc#1487.

Change-Id: Ice0d3b319d9466824cef323a6915eb20ca5cae5c
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/Makefile.am b/Makefile.am
new file mode 100755
index 0000000..65f95cb
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,33 @@
+AM_DEFAULT_SOURCE_EXT = .cpp
+
+BUILT_SOURCES = \
+	settings_manager.hpp
+CLEANFILES = \
+	settings_manager.hpp
+
+SETTINGS_GEN_SCRIPT ?= \
+	${abs_srcdir}/settings.py
+SETTINGS_GEN_SCRIPT_FILES ?= \
+	${abs_srcdir}/settings_example.yaml \
+	${abs_srcdir}/settings_manager.mako.hpp
+
+settings_manager.hpp: ${SETTINGS_GEN_SCRIPT} ${SETTINGS_GEN_SCRIPT_FILES}
+	$(AM_V_GEN)@SETTINGSGEN@
+
+# Build these headers, don't install them
+noinst_HEADERS = \
+	settings_manager.hpp
+
+sbin_PROGRAMS = \
+	phosphor-settings-manager
+
+phosphor_settings_manager_SOURCES = \
+	settings_main.cpp
+
+phosphor_settings_manager_CXXFLAGS = \
+	$(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
+	$(SDBUSPLUS_CFLAGS)
+
+phosphor_settings_manager_LDADD = \
+	$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
+	$(SDBUSPLUS_LIBS)