diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index a7d0801..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
-PROTOC = protoc
-
-PROTOS_PATH = proto
-vpath %.proto $(PROTOS_PATH)
-
-AM_DEFAULT_SOURCE_EXT = .cpp
-SUFFIXES = .proto .pb.cc
-
-BOOST_CXX = \
-	-DBOOST_ERROR_CODE_HEADER_ONLY \
-	-DBOOST_SYSTEM_NO_DEPRECATED \
-	-DBOOST_ALL_NO_LIB
-
-libbinarystoredir = ${libdir}/ipmid-providers
-libbinarystore_LTLIBRARIES = libbinarystore.la
-libbinarystore_la_SOURCES = main.cpp \
-			    binaryblob.pb.cc \
-			    binarystore.cpp \
-			    sys.cpp \
-			    sys_file_impl.cpp \
-			    handler.cpp
-
-libbinarystore_la_LDFLAGS = $(PHOSPHOR_LOGGING_LIBS) \
-			    -version-info 0:0:0 -shared \
-			    -lprotobuf
-
-libbinarystore_la_CXXFLAGS = -I$(srcdir) $(PHOSPHOR_LOGGING_CFLAGS) \
-			     $(BOOST_CXX) \
-			     -flto
-
-binaryblob.pb.h binaryblob.pb.cc: $(srcdir)/$(PROTOS_PATH)/binaryblob.proto
-	$(PROTOC) -I$(srcdir)/$(PROTOS_PATH) --cpp_out=. $<
-
-BUILT_SOURCES = binaryblob.pb.h binaryblob.pb.cc
-
-bin_PROGRAMS =
-
-if BUILD_BLOBTOOL
-bin_PROGRAMS += blobtool
-blobtool_SOURCES = blobtool.cpp
-blobtool_LDADD = libbinarystore.la
-blobtool_LDFLAGS = -lprotobuf
-endif
-
-SUBDIRS = . test
-
-ACLOCAL_AMFLAGS = -I m4
diff --git a/bootstrap.sh b/bootstrap.sh
deleted file mode 100755
index 50b75b7..0000000
--- a/bootstrap.sh
+++ /dev/null
@@ -1,18 +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" | xargs -r rm -rf
-        done
-        exit 0
-        ;;
-esac
-
-autoreconf -i
-echo 'Run "./configure ${CONFIGURE_FLAGS} && make"'
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index cc0fc6d..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,71 +0,0 @@
-# Initialization
-AC_PREREQ([2.69])
-AC_INIT([phosphor-ipmi-blobs-binarystore], [1.0], [https://github.com/openbmc/phosphor-ipmi-blobs-binarystore/issues])
-AC_LANG([C++])
-AC_CONFIG_HEADERS([config.h])
-AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror foreign dist-xz])
-AM_SILENT_RULES([yes])
-
-# Checks for programs.
-AC_PROG_CXX
-AM_PROG_AR
-AC_PROG_INSTALL
-AC_PROG_MAKE_SET
-
-# Checks for typedefs, structures, and compiler characteristics.
-AX_CXX_COMPILE_STDCXX_17([noext])
-AX_APPEND_COMPILE_FLAGS([-Wall -Werror], [CXXFLAGS])
-
-# Checks for library functions.
-LT_INIT # Required for systemd linking
-
-# Checks for libraries.
-PKG_CHECK_MODULES([PROTOBUF], [protobuf], [], [AC_MSG_ERROR(["protobuf required and not found"])])
-PKG_CHECK_MODULES([PHOSPHOR_LOGGING], [phosphor-logging],, [AC_MSG_ERROR([Could not find phosphor-logging...openbmc/phosphor-logging package required])])
-AC_CHECK_HEADER([blobs-ipmid], [AC_MSG_ERROR(["phosphor-ipmi-blobs required and not found."])])
-AC_CHECK_HEADER(boost/endian/arithmetic.hpp, [])
-AC_CHECK_HEADER(nlohmann/json.hpp, [])
-
-# Check/set gtest specific functions.
-PKG_CHECK_MODULES([GTEST], [gtest], [], [AC_MSG_NOTICE([gtest not found, tests will not build])])
-PKG_CHECK_MODULES([GMOCK], [gmock], [], [AC_MSG_NOTICE([gmock not found, tests will not build])])
-PKG_CHECK_MODULES([GTEST_MAIN], [gtest_main], [], [AC_MSG_NOTICE([gtest_main not found, tests will not build])])
-
-# Add --enable-oe-sdk flag to configure script
-AC_ARG_ENABLE([oe-sdk],
-    AS_HELP_STRING([--enable-oe-sdk], [Link testcases absolutely against OE SDK so they can be ran within it.])
-)
-
-# Add --disable-blobtool flag to configure script
-AC_ARG_ENABLE([blobtool],
-    AS_HELP_STRING([--disable-blobtool], [Disable blobtool, command line tool to inspect the blobs]),
-    [case "${enableval}" in
-        no) build_blobtool=false;;
-        *) build_blobtool=true;;
-    esac],
-    [build_blobtool=true]
-)
-AM_CONDITIONAL([BUILD_BLOBTOOL], [ test x${build_blobtool} = xtrue ])
-
-# Check for OECORE_TARGET_SYSROOT in the environment.
-AC_ARG_VAR(OECORE_TARGET_SYSROOT,
-    [Path to the OE SDK SYSROOT])
-
-# Configure OESDK_TESTCASE_FLAGS environment variable, which will be later
-# used in test/Makefile.am
-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 test/Makefile])
-AC_OUTPUT
diff --git a/test/Makefile.am b/test/Makefile.am
deleted file mode 100644
index 2e07b58..0000000
--- a/test/Makefile.am
+++ /dev/null
@@ -1,81 +0,0 @@
-AM_CPPFLAGS = -I$(top_srcdir)/ \
-	-I$(builddir)
-	$(GTEST_CFLAGS) \
-	$(GMOCK_CFLAGS)
-AM_CXXFLAGS = \
-	$(GTEST_MAIN_CFLAGS) \
-	$(PHOSPHOR_LOGGING_CFLAGS)
-AM_LDFLAGS = \
-	$(GMOCK_LIBS) \
-	$(GTEST_MAIN_LIBS) \
-	$(OESDK_TESTCASE_FLAGS) \
-	$(PHOSPHOR_LOGGING_LIBS)
-
-# Run all 'check' test programs
-check_PROGRAMS = \
-	parse_config_unittest \
-	sys_file_unittest \
-	handler_commit_unittest \
-	handler_stat_unittest \
-	handler_open_unittest \
-	handler_readwrite_unittest \
-	handler_unittest \
-	binarystore_unittest
-TESTS = $(check_PROGRAMS)
-
-parse_config_unittest_SOURCES = parse_config_unittest.cpp
-
-sys_file_unittest_SOURCES = sys_file_unittest.cpp
-sys_file_unittest_LDADD = $(top_builddir)/sys_file_impl.o
-
-handler_unittest_SOURCES = handler_unittest.cpp
-handler_unittest_LDADD = $(PHOSPHOR_LOGGING_LIBS) \
-	$(top_builddir)/handler.o \
-	$(top_builddir)/binarystore.o \
-	$(top_builddir)/sys_file_impl.o \
-	$(top_builddir)/libbinarystore_la-binaryblob.pb.o \
-	-lprotobuf
-handler_unittest_CXXFLAGS = $(PHOSPHOR_LOGGING_CFLAGS)
-
-handler_commit_unittest_SOURCES = handler_commit_unittest.cpp
-handler_commit_unittest_LDADD = $(PHOSPHOR_LOGGING_LIBS) \
-	$(top_builddir)/handler.o \
-	$(top_builddir)/binarystore.o \
-	$(top_builddir)/sys_file_impl.o \
-	$(top_builddir)/libbinarystore_la-binaryblob.pb.o \
-	-lprotobuf
-handler_commit_unittest_CXXFLAGS = $(PHOSPHOR_LOGGING_CFLAGS)
-
-handler_stat_unittest_SOURCES = handler_stat_unittest.cpp
-handler_stat_unittest_LDADD = $(PHOSPHOR_LOGGING_LIBS) \
-	$(top_builddir)/handler.o \
-	$(top_builddir)/binarystore.o \
-	$(top_builddir)/sys_file_impl.o \
-	$(top_builddir)/libbinarystore_la-binaryblob.pb.o \
-	-lprotobuf
-handler_stat_unittest_CXXFLAGS = $(PHOSPHOR_LOGGING_CFLAGS)
-
-handler_open_unittest_SOURCES = handler_open_unittest.cpp
-handler_open_unittest_LDADD = $(PHOSPHOR_LOGGING_LIBS) \
-	$(top_builddir)/handler.o \
-	$(top_builddir)/binarystore.o \
-	$(top_builddir)/sys_file_impl.o \
-	$(top_builddir)/libbinarystore_la-binaryblob.pb.o \
-	-lprotobuf
-handler_open_unittest_CXXFLAGS = $(PHOSPHOR_LOGGING_CFLAGS)
-
-handler_readwrite_unittest_SOURCES = handler_readwrite_unittest.cpp
-handler_readwrite_unittest_LDADD = $(PHOSPHOR_LOGGING_LIBS) \
-	$(top_builddir)/handler.o \
-	$(top_builddir)/binarystore.o \
-	$(top_builddir)/sys_file_impl.o \
-	$(top_builddir)/libbinarystore_la-binaryblob.pb.o \
-	-lprotobuf
-handler_readwrite_unittest_CXXFLAGS = $(PHOSPHOR_LOGGING_CFLAGS)
-
-binarystore_unittest_SOURCES = binarystore_unittest.cpp
-binarystore_unittest_LDADD = $(PHOSPHOR_LOGGING_LIBS) \
-	$(top_builddir)/binarystore.o \
-	$(top_builddir)/libbinarystore_la-binaryblob.pb.o \
-	-lprotobuf
-binarystore_unittest_CXXFLAGS = $(PHOSPHOR_LOGGING_CFLAGS)
