build: ensure sdbus++ exists

Change-Id: Ia8b7c676846fb197337fba46e79717744118194a
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/configure.ac b/configure.ac
index 67d7130..770637c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,6 +4,7 @@
 AC_CONFIG_HEADERS([config.h])
 AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror foreign dist-xz])
 AM_SILENT_RULES([yes])
+AC_LANG([C++])
 
 # Checks for programs.
 AC_PROG_CXX
@@ -16,18 +17,22 @@
 AC_CHECK_PROG([BASENAME], basename, basename)
 AC_CHECK_PROG([DIRNAME], dirname, dirname)
 
+AC_PATH_PROG([SDBUSPLUSPLUS], [sdbus++])
+AS_IF([test "x$SDBUSPLUSPLUS" == "x"],
+    AC_MSG_ERROR([Cannot find sdbus++]))
+
 # Checks for libraries.
 PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 221],,
     [AC_MSG_ERROR(["systemd required and not found."])])
-# TODO: Add sdbusplus.
-
-# Checks for header files.
 
 # Checks for typedefs, structures, and compiler characteristics.
 AX_CXX_COMPILE_STDCXX_14([noext])
 AX_APPEND_COMPILE_FLAGS([-Wall -Werror], [CFLAGS])
 AX_APPEND_COMPILE_FLAGS([-Wall -Werror], [CXXFLAGS])
 
+# Checks for header files.
+AC_CHECK_HEADER(sdbusplus/server.hpp, ,[AC_MSG_ERROR([Could not find sdbusplus/server.hpp...sdbusplus package required])])
+
 # Checks for library functions.
 LT_INIT([dlopen disable-static shared])
 LT_LIB_DLLOAD
diff --git a/generate_makefile.sh b/generate_makefile.sh
index 4816919..4c103f3 100755
--- a/generate_makefile.sh
+++ b/generate_makefile.sh
@@ -13,11 +13,11 @@
 
 ${i%.interface.yaml}/server.cpp: ${i} ${i%.interface.yaml}/server.hpp
 	@mkdir -p \`dirname \$@\`
-	sdbus++ -r \$(srcdir) interface server-cpp ${iface} > \$@
+	\$(SDBUSPLUSPLUS) -r \$(srcdir) interface server-cpp ${iface} > \$@
 
 ${i%.interface.yaml}/server.hpp: ${i}
 	@mkdir -p \`dirname \$@\`
-	sdbus++ -r \$(srcdir) interface server-header ${iface} > \$@
+	\$(SDBUSPLUSPLUS) -r \$(srcdir) interface server-header ${iface} > \$@
 
 MAKEFILE