diff --git a/.gitignore b/.gitignore
index f475932..51ef08e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,31 +1,3 @@
 /build*/
 /subprojects/*
 !subprojects/*.wrap
-Makefile
-Makefile.in
-aclocal.m4
-ar-lib
-arm-openbmc-linux-gnueabi-libtool
-autom4te.cache*
-compile
-config.*
-depcomp
-install-sh
-ltmain.sh
-missing
-.deps*
-configure
-stamp-h1
-*.o
-.libs*
-*.lo
-*.la
-.dirstamp
-.project
-netipmid
-test-driver
-.*.sw*
-.cscope/
-*.orig
-*.rej
-*~
\ No newline at end of file
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 65f16ba..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,90 +0,0 @@
-BOOST_CXX = \
-	-DBOOST_ERROR_CODE_HEADER_ONLY \
-	-DBOOST_SYSTEM_NO_DEPRECATED \
-	-DBOOST_COROUTINES_NO_DEPRECATION_WARNING \
-	-DBOOST_ASIO_DISABLE_THREADS \
-	-DBOOST_ALL_NO_LIB
-
-bin_PROGRAMS = \
-	netipmid
-
-netipmid_SOURCES = \
-	endian.hpp \
-	socket_channel.hpp \
-	message.hpp \
-	auth_algo.hpp \
-	auth_algo.cpp \
-	session.hpp \
-	sessions_manager.hpp \
-	sessions_manager.cpp \
-	message_parsers.hpp \
-	message_parsers.cpp \
-	message_handler.hpp \
-	message_handler.cpp \
-	command_table.hpp \
-	command_table.cpp \
-	command/channel_auth.hpp \
-	command/channel_auth.cpp \
-	command/guid.hpp \
-	command/guid.cpp \
-	command/open_session.hpp \
-	command/open_session.cpp \
-	command/rakp12.hpp \
-	command/rakp12.cpp \
-	command/rakp34.hpp \
-	command/rakp34.cpp \
-	command/session_cmds.hpp \
-	command/session_cmds.cpp \
-	comm_module.hpp \
-	comm_module.cpp \
-	main.hpp \
-	main.cpp \
-	integrity_algo.hpp \
-	integrity_algo.cpp \
-	crypt_algo.hpp \
-	crypt_algo.cpp \
-	sol/console_buffer.hpp \
-	sd_event_loop.hpp \
-	sol/sol_context.hpp \
-	sol/sol_manager.hpp \
-	sd_event_loop.cpp \
-	sol/sol_manager.cpp \
-	sol/sol_context.cpp \
-	command/sol_cmds.hpp \
-	command/sol_cmds.cpp \
-	command/payload_cmds.hpp \
-	command/payload_cmds.cpp \
-	sol_module.hpp \
-	sol_module.cpp
-
-netipmid_CPPFLAGS = -DNET_IPMID_LIB_PATH=\"/usr/lib/net-ipmid/\"
-
-
-netipmid_LDFLAGS = \
-	$(SYSTEMD_LIBS) \
-	$(CRYPTO_LIBS) \
-	$(libmapper_LIBS) \
-	$(PHOSPHOR_LOGGING_LIBS) \
-	$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
-	$(LIBIPMID_LIBS) \
-	-lboost_coroutine \
-	-lchannellayer \
-	-luserlayer
-
-netipmid_CXXFLAGS = \
-	-flto \
-	$(SYSTEMD_CFLAGS) \
-	$(BOOST_CXX) \
-	$(libmapper_CFLAGS) \
-	$(PHOSPHOR_LOGGING_CFLAGS) \
-	$(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
-	$(LIBIPMID_CFLAGS)
-
-if HAVE_SYSTEMD
-SYSTEMD_UNIT = phosphor-ipmi-net@.service
-SYSTEMD_SOCKET = phosphor-ipmi-net@.socket
-systemdsystemunit_DATA = $(SYSTEMD_UNIT) $(SYSTEMD_SOCKET)
-endif  # HAVE_SYSTEMD
-
-SUBDIRS = test
-
diff --git a/bootstrap.sh b/bootstrap.sh
deleted file mode 100755
index 9fdf674..0000000
--- a/bootstrap.sh
+++ /dev/null
@@ -1,19 +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
-        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 4050c66..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,87 +0,0 @@
-# Initialization
-AC_PREREQ([2.69])
-AC_INIT([phosphor-net-ipmid], [1.0], [https://github.com/openbmc/phosphor-net-ipmid/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
-
-# Suppress the --with-libtool-sysroot error
-LT_INIT
-
-# 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])
-)
-
-# Checks for typedefs, structures, and compiler characteristics.
-AX_CXX_COMPILE_STDCXX([20],[noext])
-AX_APPEND_COMPILE_FLAGS([-Wall -Werror], [CXXFLAGS])
-
-# Checks for libraries.
-PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 221])
-PKG_CHECK_MODULES([CRYPTO], [libcrypto >= 1.0.2g], ,[AC_MSG_ERROR([can't find openssl libcrypto])])
-PKG_CHECK_MODULES([PHOSPHOR_LOGGING], [phosphor-logging])
-PKG_CHECK_MODULES([SDBUSPLUS], [sdbusplus])
-PKG_CHECK_MODULES([PHOSPHOR_DBUS_INTERFACES], [phosphor-dbus-interfaces])
-PKG_CHECK_MODULES([LIBIPMID], [libipmid])
-AC_CHECK_LIB([mapper], [mapper_get_service], ,[AC_MSG_ERROR([Could not find libmapper...openbmc/phosphor-objmgr package required])])
-
-# 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"])
-
-AC_ARG_ENABLE([rmcp-ping],
-        AS_HELP_STRING([--enable-rmcp-ping], [Enable RMCP Ping support])
-    )
-    AS_IF([test "x$enable_rmcp_ping" == "xyes"],
-        AC_MSG_NOTICE([Enabling RMCP Ping])
-        [
-            cpp_flags="-DRMCP_PING"
-        ]
-        AC_SUBST([CPPFLAGS], [$cpp_flags])
-)
-
-# 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])])
-
-# Checks for library functions.
-LT_INIT([disable-static shared])
-
-AC_CONFIG_FILES([Makefile test/Makefile])
-AC_OUTPUT
diff --git a/test/Makefile.am b/test/Makefile.am
deleted file mode 100644
index 49d96d4..0000000
--- a/test/Makefile.am
+++ /dev/null
@@ -1,19 +0,0 @@
-BOOST_CXX = -DBOOST_ERROR_CODE_HEADER_ONLY \
-            -DBOOST_SYSTEM_NO_DEPRECATED \
-            -DBOOST_COROUTINES_NO_DEPRECATION_WARNING \
-            -DBOOST_ALL_NO_LIB
-
-AM_CPPFLAGS = -I$(top_srcdir)
-
-# Run all 'check' test programs
-TESTS = $(check_PROGRAMS)
-
-# # Build/add utest to test suite
-check_PROGRAMS = utest
-utest_CPPFLAGS = -Igtest $(GTEST_CPPFLAGS) $(AM_CPPFLAGS)
-utest_CXXFLAGS = $(PTHREAD_CFLAGS) $(BOOST_CXX)
-utest_LDFLAGS = -lgtest_main -lgtest $(PTHREAD_LIBS) $(OESDK_TESTCASE_FLAGS) $(CRYPTO_LIBS)
-utest_SOURCES = cipher.cpp
-utest_LDADD = \
-	$(top_builddir)/integrity_algo.cpp \
-	$(top_builddir)/crypt_algo.cpp
\ No newline at end of file
