diff --git a/configure.ac b/configure.ac
index 09fceb3..8af2813 100644
--- a/configure.ac
+++ b/configure.ac
@@ -33,6 +33,18 @@
     AX_APPEND_COMPILE_FLAGS([-DENABLE_STATIC_LAYOUT], [CXXFLAGS])
 ])
 # Enable P2A, and or LPC (block-transfer is always enabled).
+AC_ARG_ENABLE([pci-bridge],
+    AS_HELP_STRING([--enable-pci-bridge],
+                   [Enable pci-bridge transport mechanism]))
+AS_IF([test "x$enable_pci_bridge" = "xyes"], [
+    AX_APPEND_COMPILE_FLAGS([-DENABLE_PCI_BRIDGE], [CXXFLAGS])
+])
+AC_ARG_ENABLE([lpc-bridge],
+    AS_HELP_STRING([--enable-lpc-bridge],
+                   [Enable lpc-bridge transport mechanism]))
+AS_IF([test "x$enable_lpc_bridge" = "xyes"], [
+    AX_APPEND_COMPILE_FLAGS([-DENABLE_LPC_BRIDGE], [CXXFLAGS])
+])
 
 # Check/set gtest specific functions.
 PKG_CHECK_MODULES([GTEST], [gtest], [], [AC_MSG_NOTICE([gtest not found, tests will not build])])
diff --git a/firmware_handler.cpp b/firmware_handler.cpp
index 89c7891..0e26ab2 100644
--- a/firmware_handler.cpp
+++ b/firmware_handler.cpp
@@ -1,5 +1,6 @@
 #include "firmware_handler.hpp"
 
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
@@ -9,9 +10,9 @@
 
 std::unique_ptr<GenericBlobInterface>
     FirmwareBlobHandler::CreateFirmwareBlobHandler(
-        const std::vector<std::string>& firmwares)
+        const std::vector<std::string>& firmwares, std::uint32_t transports)
 {
-    return std::make_unique<FirmwareBlobHandler>(firmwares);
+    return std::make_unique<FirmwareBlobHandler>(firmwares, transports);
 }
 
 bool FirmwareBlobHandler::canHandleBlob(const std::string& path)
diff --git a/firmware_handler.hpp b/firmware_handler.hpp
index b206f56..f9a8983 100644
--- a/firmware_handler.hpp
+++ b/firmware_handler.hpp
@@ -1,6 +1,7 @@
 #pragma once
 
 #include <blobs-ipmid/blobs.hpp>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
@@ -22,10 +23,13 @@
 {
   public:
     static std::unique_ptr<GenericBlobInterface>
-        CreateFirmwareBlobHandler(const std::vector<std::string>& firmwares);
+        CreateFirmwareBlobHandler(const std::vector<std::string>& firmwares,
+                                  std::uint32_t transports);
 
-    explicit FirmwareBlobHandler(const std::vector<std::string>& firmwares) :
-        baseFirmwares(firmwares)
+    FirmwareBlobHandler(const std::vector<std::string>& firmwares,
+                        std::uint32_t transports) :
+        baseFirmwares(firmwares),
+        transports(transports)
     {
     }
     ~FirmwareBlobHandler() = default;
@@ -53,6 +57,7 @@
 
   private:
     std::vector<std::string> baseFirmwares;
+    std::uint32_t transports;
 };
 
 } // namespace blobs
diff --git a/main.cpp b/main.cpp
index 0ec159f..4012a0e 100644
--- a/main.cpp
+++ b/main.cpp
@@ -3,6 +3,7 @@
 #include "firmware_handler.hpp"
 
 #include <blobs-ipmid/manager.hpp>
+#include <cstdint>
 #include <memory>
 #include <phosphor-logging/log.hpp>
 
@@ -17,13 +18,24 @@
 #endif
 };
 
+std::uint32_t supportedTransports =
+    static_cast<std::uint32_t>(FirmwareUpdateFlags::bt);
+
 void setupFirmwareHandler() __attribute__((constructor));
 
 void setupFirmwareHandler()
 {
+#ifdef ENABLE_PCI_BRIDGE
+    supportedTransports |= static_cast<std::uint32_t>(FirmwareUpdateFlags::p2a);
+#endif
+#ifdef ENABLE_LPC_BRIDGE
+    supportedTransports |= static_cast<std::uint32_t>(FirmwareUpdateFlags::lpc);
+#endif
+
     auto* manager = getBlobManager();
     if (!manager->registerHandler(
-            FirmwareBlobHandler::CreateFirmwareBlobHandler(supportedFirmware)))
+            FirmwareBlobHandler::CreateFirmwareBlobHandler(
+                supportedFirmware, supportedTransports)))
     {
         log<level::ERR>("Failed to register Firmware Handler");
     }
