diff --git a/configure.ac b/configure.ac
index 104c2df..00fa5b6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
 # Initialization
 AC_PREREQ([2.69])
 AC_INIT([phosphor-objmgr], [1.0], [https://github.com/openbmc/phosphor-objmgr/issues])
-AC_CONFIG_HEADERS([libmapper/config.h])
+AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_MACRO_DIR([m4])
 AM_INIT_AUTOMAKE([subdir-objects -Wall -Wno-portability -Werror foreign dist-xz])
 AM_SILENT_RULES([yes])
diff --git a/src/main.cpp b/src/main.cpp
index 1ae2c6c..0b254ec 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,3 +1,5 @@
+#include "config.h"
+
 #include "associations.hpp"
 #include "processing.hpp"
 #include "src/argument.hpp"
@@ -15,9 +17,6 @@
 #include <sdbusplus/asio/connection.hpp>
 #include <sdbusplus/asio/object_server.hpp>
 
-constexpr const char* OBJECT_MAPPER_DBUS_NAME =
-    "xyz.openbmc_project.ObjectMapper";
-
 AssociationMaps associationMaps;
 
 static WhiteBlackList service_whitelist;
@@ -71,8 +70,8 @@
     // introspect right now.  Find out how to register signals in
     // sdbusplus
     sdbusplus::message::message m = system_bus->new_signal(
-        "/xyz/openbmc_project/object_mapper",
-        "xyz.openbmc_project.ObjectMapper.Private", "IntrospectionComplete");
+        MAPPER_PATH, "xyz.openbmc_project.ObjectMapper.Private",
+        "IntrospectionComplete");
     m.append(process_name);
     m.signal_send();
 }
@@ -450,7 +449,7 @@
     boost::container::flat_set<std::string> iface_whitelist;
     splitArgs(options["interface-namespaces"], iface_whitelist);
 
-    system_bus->request_name(OBJECT_MAPPER_DBUS_NAME);
+    system_bus->request_name(MAPPER_BUSNAME);
     sdbusplus::asio::object_server server(system_bus);
 
     // Construct a signal set registered for process termination.
@@ -572,7 +571,7 @@
                     // association path.
                     if ((connection_map->second.size() == 1) &&
                         (connection_map->second.begin()->first ==
-                         "xyz.openbmc_project.ObjectMapper"))
+                         MAPPER_BUSNAME))
                     {
                         // Remove the 2 association D-Bus paths and move the
                         // association to pending.
@@ -645,8 +644,7 @@
         associationChangedHandler);
 
     std::shared_ptr<sdbusplus::asio::dbus_interface> iface =
-        server.add_interface("/xyz/openbmc_project/object_mapper",
-                             "xyz.openbmc_project.ObjectMapper");
+        server.add_interface(MAPPER_PATH, MAPPER_INTERFACE);
 
     iface->register_method(
         "GetAncestors", [&interface_map](std::string& req_path,
diff --git a/src/processing.cpp b/src/processing.cpp
index 6cc876d..2dfebfd 100644
--- a/src/processing.cpp
+++ b/src/processing.cpp
@@ -1,3 +1,5 @@
+#include "config.h"
+
 #include "processing.hpp"
 
 #include <boost/algorithm/string/predicate.hpp>
@@ -76,8 +78,7 @@
             // we own this path as well, which would be because of an
             // association.
             if ((pathIt->second.size() == 2) &&
-                (pathIt->second.find("xyz.openbmc_project.ObjectMapper") !=
-                 pathIt->second.end()))
+                (pathIt->second.find(MAPPER_BUSNAME) != pathIt->second.end()))
             {
                 // Remove the 2 association D-Bus paths and move the
                 // association to pending.
