diff --git a/libpldmresponder/meson.build b/libpldmresponder/meson.build
index 8436e14..bb45c3b 100644
--- a/libpldmresponder/meson.build
+++ b/libpldmresponder/meson.build
@@ -23,6 +23,7 @@
   'fru.cpp',
   '../host-bmc/host_pdr_handler.cpp',
   '../host-bmc/dbus_to_event_handler.cpp',
+  '../host-bmc/dbus_to_host_effecters.cpp',
   'event_parser.cpp'
 ]
 
diff --git a/meson.build b/meson.build
index 22b1938..b321d34 100644
--- a/meson.build
+++ b/meson.build
@@ -22,13 +22,14 @@
 endif
 
 conf_data = configuration_data()
+if get_option('libpldmresponder').enabled()
 conf_data.set_quoted('BIOS_JSONS_DIR', '/usr/share/pldm/bios')
 conf_data.set_quoted('BIOS_TABLES_DIR', '/var/lib/pldm/bios')
 conf_data.set_quoted('PDR_JSONS_DIR', '/usr/share/pldm/pdr')
 conf_data.set_quoted('FRU_JSONS_DIR', '/usr/share/pldm/fru')
 conf_data.set_quoted('HOST_JSONS_DIR', '/usr/share/pldm/host')
 conf_data.set_quoted('EVENTS_JSONS_DIR', '/usr/share/pldm/events')
-conf_data.set('PLDM_VERBOSITY',get_option('verbosity'))
+endif
 if get_option('softoff').enabled()
   conf_data.set('SOFTOFF_TIMEOUT_SECONDS', get_option('softoff-timeout-seconds'))
 endif
@@ -44,6 +45,7 @@
   add_project_arguments('-DOEM_IBM', language : 'c')
   add_project_arguments('-DOEM_IBM', language : 'cpp')
 endif
+conf_data.set('PLDM_VERBOSITY',get_option('verbosity'))
 configure_file(output: 'config.h',
   configuration: conf_data
 )
@@ -144,26 +146,29 @@
 libpldmutils = declare_dependency(
   include_directories: include_directories(libpldmutils_headers),
   link_with: libpldmutils)
-subdir('libpldmresponder')
 
 deps = [
   libpldm_dep,
   libpldmutils,
-  libpldmresponder,
-  libpldmutils,
   nlohmann_json,
   sdbusplus,
   sdeventplus,
-  phosphor_dbus_interfaces
+  phosphor_dbus_interfaces,
 ]
 
+if get_option('libpldmresponder').enabled()
+subdir('libpldmresponder')
+deps += [
+  libpldmresponder
+]
+endif
+
 executable(
   'pldmd',
   'pldmd/pldmd.cpp',
   'pldmd/dbus_impl_requester.cpp',
   'pldmd/instance_id.cpp',
   'pldmd/dbus_impl_pdr.cpp',
-  'host-bmc/dbus_to_host_effecters.cpp',
   implicit_include_directories: false,
   dependencies: deps,
   install: true,
diff --git a/meson_options.txt b/meson_options.txt
index e1f6d43..4b1d833 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -4,6 +4,7 @@
 option('oem-ibm', type: 'feature', description: 'Enable IBM OEM PLDM')
 option('requester-api', type: 'feature', description: 'Enable libpldm requester API', value: 'enabled')
 option('utilities', type: 'feature', description: 'Enable debug utilities', value: 'enabled')
+option('libpldmresponder', type: 'feature', description: 'Enable libpldmresponder', value: 'enabled')
 
 option('libpldm-only', type: 'feature', description: 'Only build libpldm', value: 'disabled')
 option('oem-ibm-dma-maxsize', type: 'integer', min:4096, max: 16773120, description: 'OEM-IBM: max DMA size', value: 8384512) #16MB - 4K
diff --git a/pldmd/pldmd.cpp b/pldmd/pldmd.cpp
index ceeff08..bfd3d71 100644
--- a/pldmd/pldmd.cpp
+++ b/pldmd/pldmd.cpp
@@ -4,18 +4,8 @@
 #include "libpldm/platform.h"
 
 #include "common/utils.hpp"
-#include "dbus_impl_pdr.hpp"
 #include "dbus_impl_requester.hpp"
-#include "host-bmc/dbus_to_event_handler.hpp"
-#include "host-bmc/dbus_to_host_effecters.hpp"
-#include "host-bmc/host_pdr_handler.hpp"
 #include "invoker.hpp"
-#include "libpldmresponder/base.hpp"
-#include "libpldmresponder/bios.hpp"
-#include "libpldmresponder/fru.hpp"
-#include "libpldmresponder/oem_handler.hpp"
-#include "libpldmresponder/platform.hpp"
-#include "xyz/openbmc_project/PLDM/Event/server.hpp"
 
 #include <err.h>
 #include <getopt.h>
@@ -41,6 +31,19 @@
 #include <string>
 #include <vector>
 
+#ifdef LIBPLDMRESPONDER
+#include "dbus_impl_pdr.hpp"
+#include "host-bmc/dbus_to_event_handler.hpp"
+#include "host-bmc/dbus_to_host_effecters.hpp"
+#include "host-bmc/host_pdr_handler.hpp"
+#include "libpldmresponder/base.hpp"
+#include "libpldmresponder/bios.hpp"
+#include "libpldmresponder/fru.hpp"
+#include "libpldmresponder/oem_handler.hpp"
+#include "libpldmresponder/platform.hpp"
+#include "xyz/openbmc_project/PLDM/Event/server.hpp"
+#endif
+
 #ifdef OEM_IBM
 #include "libpldmresponder/file_io.hpp"
 #include "libpldmresponder/oem_ibm_handler.hpp"
@@ -48,11 +51,11 @@
 
 constexpr uint8_t MCTP_MSG_TYPE_PLDM = 1;
 
-using namespace pldm::responder;
 using namespace pldm;
 using namespace sdeventplus;
 using namespace sdeventplus::source;
-using namespace pldm::state_sensor;
+using namespace pldm::responder;
+using namespace pldm::utils;
 
 static Response processRxMsg(const std::vector<uint8_t>& requestMsg,
                              Invoker& invoker, dbus_api::Requester& requester)
@@ -152,14 +155,18 @@
     }
 
     auto event = Event::get_default();
+    auto& bus = pldm::utils::DBusHandler::getBus();
+    dbus_api::Requester dbusImplReq(bus, "/xyz/openbmc_project/pldm");
+    Invoker invoker{};
+
+#ifdef LIBPLDMRESPONDER
+    using namespace pldm::state_sensor;
     std::unique_ptr<pldm_pdr, decltype(&pldm_pdr_destroy)> pdrRepo(
         pldm_pdr_init(), pldm_pdr_destroy);
     std::unique_ptr<pldm_entity_association_tree,
                     decltype(&pldm_entity_association_tree_destroy)>
         entityTree(pldm_entity_association_tree_init(),
                    pldm_entity_association_tree_destroy);
-    auto& bus = pldm::utils::DBusHandler::getBus();
-    dbus_api::Requester dbusImplReq(bus, "/xyz/openbmc_project/pldm");
     std::unique_ptr<HostPDRHandler> hostPDRHandler;
     std::unique_ptr<pldm::host_effecters::HostEffecterParser>
         hostEffecterParser;
@@ -178,8 +185,6 @@
         dbusToPLDMEventHandler =
             std::make_unique<DbusToPLDMEvent>(sockfd, hostEID, dbusImplReq);
     }
-
-    Invoker invoker{};
     std::unique_ptr<oem_platform::Handler> oemPlatformHandler{};
 
 #ifdef OEM_IBM
@@ -215,6 +220,10 @@
 
     invoker.registerHandler(PLDM_PLATFORM, std::move(platformHandler));
     invoker.registerHandler(PLDM_FRU, std::move(fruHandler));
+    dbus_api::Pdr dbusImplPdr(bus, "/xyz/openbmc_project/pldm", pdrRepo.get());
+    sdbusplus::xyz::openbmc_project::PLDM::server::Event dbusImplEvent(
+        bus, "/xyz/openbmc_project/pldm");
+#endif
 
     pldm::utils::CustomFD socketFd(sockfd);
 
@@ -242,9 +251,6 @@
         exit(EXIT_FAILURE);
     }
 
-    dbus_api::Pdr dbusImplPdr(bus, "/xyz/openbmc_project/pldm", pdrRepo.get());
-    sdbusplus::xyz::openbmc_project::PLDM::server::Event dbusImplEvent(
-        bus, "/xyz/openbmc_project/pldm");
     auto callback = [verbose, &invoker, &dbusImplReq](IO& io, int fd,
                                                       uint32_t revents) {
         if (!(revents & EPOLLIN))
