diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 7e049af..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,22 +0,0 @@
-bin_PROGRAMS = kcsbridged
-
-kcsbridged_SOURCES = kcsbridged.cpp
-kcsbridged_LDFLAGS = \
-	$(SYSTEMD_LIBS) \
-	$(PHOSPHOR_LOGGING_LIBS)
-kcsbridged_CXXFLAGS = \
-	-flto \
-	-Wno-psabi \
-	$(SYSTEMD_CFLAGS) \
-	$(SDBUSPLUS_CFLAGS) \
-	$(PHOSPHOR_LOGGING_CFLAGS) \
-	-DBOOST_ERROR_CODE_HEADER_ONLY \
-	-DBOOST_SYSTEM_NO_DEPRECATED \
-	-DBOOST_COROUTINES_NO_DEPRECATION_WARNING \
-	-DBOOST_ASIO_DISABLE_THREADS \
-	-DBOOST_ALL_NO_LIB
-
-if HAVE_SYSTEMD
-SYSTEMD_UNIT = phosphor-ipmi-kcs@.service
-systemdsystemunit_DATA = $(SYSTEMD_UNIT)
-endif  # HAVE_SYSTEMD
diff --git a/bootstrap.sh b/bootstrap.sh
deleted file mode 100755
index 3cb1ced..0000000
--- a/bootstrap.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-AUTOCONF_FILES="Makefile.in aclocal.m4 ar-lib autom4te.cache compile \
-        config.guess config.h.in config.sub configure depcomp install-sh \
-        ltmain.sh missing *libtool test-driver"
-
-case $1 in
-    clean)
-        test -f Makefile && make maintainer-clean
-        test -f linux/ipmi_bmc.h && rm -rf linux/ipmi_bmc.h
-        test -d linux && find linux -type d -empty -print0 | xargs -0 -r rm -rf
-        for file in ${AUTOCONF_FILES}; do
-            find . -name "$file" -print0 | xargs -0 -r rm -rf
-        done
-        exit 0
-        ;;
-esac
-
-autoreconf -i
-# shellcheck disable=SC2016
-echo 'Run "./configure ${CONFIGURE_FLAGS} && make"'
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index e155e62..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,76 +0,0 @@
-# Initialization
-AC_PREREQ([2.69])
-AC_INIT([kcsbridge], [1.0], [https://github.com/openbmc/kcsbridge/issues])
-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
-AM_PROG_AR
-AC_PROG_INSTALL
-AC_PROG_MAKE_SET
-
-# Checks for libraries.
-PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 221])
-PKG_CHECK_MODULES([PHOSPHOR_LOGGING], [phosphor-logging])
-PKG_CHECK_MODULES([SDBUSPLUS], [sdbusplus])
-
-# systemd unit general configuration
-PKG_PROG_PKG_CONFIG
-AC_ARG_WITH([systemdsystemunitdir],
-            [AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
-                            [Directory for systemd service files])], [],
-            [with_systemdsystemunitdir=auto])
-AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"],
-      [def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
-       AS_IF([test "x$def_systemdsystemunitdir" = "x"],
-             [AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
-                    [AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])],
-                    [with_systemdsystemunitdir=no])],
-             [with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
-AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
-      [AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
-AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"])
-
-# Checks for header files.
-AC_CHECK_HEADER(systemd/sd-bus.h, ,[AC_MSG_ERROR([Could not find systemd/sd-bus.h...systemd development package required])])
-AC_CHECK_HEADER(linux/ipmi_bmc.h,[HAVE_LINUX_IPMI_BMC_H=""],[HAVE_LINUX_IPMI_BMC_H="-I linux/ipmi_bmc.h"])
-AS_IF([test "$HAVE_LINUX_IPMI_BMC_H" != ""],
-    AC_MSG_WARN([Could not find linux/ipmi-bmc.h: Attempting to download locally for building from https://raw.githubusercontent.com/torvalds/linux/master/include/uapi/linux/ipmi_bmc.h])
-    AC_SUBST([IPMI_BMC_DL],[`mkdir -p linux;wget https://raw.githubusercontent.com/torvalds/linux/master/include/uapi/linux/ipmi_bmc.h -O linux/ipmi_bmc.h`])
-)
-
-# Checks for typedefs, structures, and compiler characteristics.
-AX_CXX_COMPILE_STDCXX([17], [noext], [mandatory])
-AX_APPEND_COMPILE_FLAGS([-fpic -Wall -Werror], [CFLAGS])
-
-# Checks for library functions.
-LT_INIT # Removes 'unrecognized options: --with-libtool-sysroot'
-
-# Check/set gtest specific functions.
-AX_PTHREAD([GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=1"],[GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=0"])
-AC_SUBST(GTEST_CPPFLAGS)
-
-AC_ARG_ENABLE([oe-sdk],
-    AS_HELP_STRING([--enable-oe-sdk], [Link testcases absolutely against OE SDK so they can be ran within it.])
-)
-AC_ARG_VAR(OECORE_TARGET_SYSROOT,
-    [Path to the OE SDK SYSROOT])
-AS_IF([test "x$enable_oe_sdk" == "xyes"],
-    AS_IF([test "x$OECORE_TARGET_SYSROOT" == "x"],
-          AC_MSG_ERROR([OECORE_TARGET_SYSROOT must be set with --enable-oe-sdk])
-    )
-    AC_MSG_NOTICE([Enabling OE-SDK at $OECORE_TARGET_SYSROOT])
-    [
-        testcase_flags="-Wl,-rpath,\${OECORE_TARGET_SYSROOT}/lib"
-        testcase_flags="${testcase_flags} -Wl,-rpath,\${OECORE_TARGET_SYSROOT}/usr/lib"
-        testcase_flags="${testcase_flags} -Wl,-dynamic-linker,`find \${OECORE_TARGET_SYSROOT}/lib/ld-*.so | sort -r -n | head -n1`"
-    ]
-    AC_SUBST([OESDK_TESTCASE_FLAGS], [$testcase_flags])
-)
-
-# Create configured output
-AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
diff --git a/kcsbridged.service b/kcsbridged.service
deleted file mode 100644
index 20b75ec..0000000
--- a/kcsbridged.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=KCS Bridge Daemon(Sample service file)
-
-[Service]
-Type=dbus
-BusName=org.openbmc.HostIpmi
-ExecStart=/bin/kcsbridged --d="/dev/ipmi-kcs3"
-Restart=on-abort
-
-[Install]
-WantedBy=multi-user.target
diff --git a/org.openbmc.HostIpmi.conf b/org.openbmc.HostIpmi.conf
deleted file mode 100644
index b1d30ed..0000000
--- a/org.openbmc.HostIpmi.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?> <!--*-nxml-*-->
-<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration
-1.0//EN"
-        "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-
-<!--
-	This file is need to run openbmc kcs bridge daemon.
-	Place this file in /etc/dbus-1/system.d/
--->
-
-<busconfig>
-
-        <policy user="root">
-                <allow own="org.openbmc.HostIpmi"/>
-                <allow send_destination="org.openbmc.HostIpmi"/>
-                <allow receive_sender="org.openbmc.HostIpmi"/>
-        </policy>
-
-        <policy context="default">
-                <allow send_destination="org.openbmc.HostIpmi"/>
-                <allow receive_sender="org.openbmc.HostIpmi"/>
-        </policy>
-
-</busconfig>
-
