Persist changes to settings

Persist changes made to settings, if any, such that those changes can be
restored upon a reboot.

Use Cereal for serialization of the settings' properties. Since the
settings code is generated based on a system specific settings policy,
generate the serialization code as well such that only relevant settings
are serialized.

Resolves openbmc/openbmc#1764.

Change-Id: Id8bd84a9455cf4348b22f255d038b050d004eb7c
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/configure.ac b/configure.ac
index 3ee9c6b..083d623 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,5 +32,12 @@
 SETTINGSGEN="$PYTHON $srcdir/settings.py -i $SETTINGS_YAML"
 AC_SUBST(SETTINGSGEN)
 
+AC_ARG_VAR(SETTINGS_PERSIST_PATH, \
+    [Path of directory housing persisted settings.])
+AS_IF([test "x$SETTINGS_PERSIST_PATH" == "x"], \
+    [SETTINGS_PERSIST_PATH="/var/lib/phosphor-settings-manager/settings"])
+AC_DEFINE_UNQUOTED([SETTINGS_PERSIST_PATH], ["$SETTINGS_PERSIST_PATH"], \
+    [Path of directory housing persisted settings])
+
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT