diff --git a/.gitignore b/.gitignore
index f623d4f..6da54be 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,59 +1,3 @@
 build*/
 subprojects/*
 !subprojects/*.wrap
-
-# Template from:
-# https://github.com/github/gitignore/blob/master/Autotools.gitignore
-
-# http://www.gnu.org/software/automake
-
-# Code Coverage
-*.gcda
-*.gcno
-*.trs
-*-coverage*
-
-Makefile.in
-/ar-lib
-/mdate-sh
-/py-compile
-/test-driver
-/ylwrap
-
-# http://www.gnu.org/software/autoconf
-
-/autom4te.cache
-/aclocal.m4
-/aminclude_static.am
-/compile
-/config.guess
-/config.h.in
-/config.sub
-/configure
-/configure.scan
-/depcomp
-/install-sh
-/missing
-/stamp-h1
-
-# https://www.gnu.org/software/libtool/
-
-/ltmain.sh
-libtool
-
-# http://www.gnu.org/software/texinfo
-
-/texinfo.tex
-
-# Repo Specific Items
-*.o
-*.trs
-/config.h
-/config.h.in~
-*.log
-/config.status
-Makefile
-.deps
-*-libtool
-/phosphor-certificate-manager
-test/certs_manager_test
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index f74e219..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,61 +0,0 @@
-if AUTOCONF_CODE_COVERAGE_2019_01_06
-include $(top_srcdir)/Makefile.am.include
-include $(top_srcdir)/aminclude_static.am
-clean-local: code-coverage-clean
-distclean-local: code-coverage-dist-clean
-else
-@CODE_COVERAGE_RULES@
-endif
-
-AM_LIBS = $(CODE_COVERAGE_LIBS)
-AM_CPPFLAGS = $(CODE_COVERAGE_CPPFLAGS) -UNDEBUG $(GTEST_CPPFLAGS)
-AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
-AM_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
-AM_LDFLAGS = $(GMOCK_LIBS) -lgmock_main \
-	$(GTEST_LIBS) $(OESDK_TESTCASE_FLAGS) $(PTHREAD_LIBS)
-
-AM_DEFAULT_SOURCE_EXT = .cpp
-
-# Build these headers, don't install them
-noinst_HEADERS = \
-	certs_manager.hpp \
-	argument.hpp \
-	certificate.hpp \
-	csr.hpp \
-	watch.hpp
-
-bin_PROGRAMS = \
-	phosphor-certificate-manager
-
-phosphor_certificate_manager_SOURCES = \
-	mainapp.cpp \
-	certs_manager.cpp \
-	argument.cpp \
-	certificate.cpp \
-	csr.cpp \
-	watch.cpp
-
-phosphor_certificate_manager_LDFLAGS = \
-	$(SDBUSPLUS_LIBS) \
-	$(SDEVENTPLUS_LIBS) \
-	$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
-	$(PHOSPHOR_LOGGING_LIBS) \
-	$(OPENSSL_LIBS) \
-	-lstdc++fs
-
-phosphor_certificate_manager_CXXFLAGS = \
-	$(SYSTEMD_CFLAGS) \
-	$(SDEVENTPLUS_LIBS) \
-	$(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
-	$(PHOSPHOR_LOGGING_CFLAGS)
-
-SUBDIRS = dist test
-
-if CA_CERT_EXTENSION
-SUBDIRS += bmc-vmi-ca
-endif
-
-check_PROGRAMS =
-XFAIL_TESTS =
-
-TESTS = $(check_PROGRAMS)
diff --git a/Makefile.am.include b/Makefile.am.include
deleted file mode 100644
index 69567aa..0000000
--- a/Makefile.am.include
+++ /dev/null
@@ -1,26 +0,0 @@
-# Ignore system headers
-CODE_COVERAGE_IGNORE_PATTERN = '/include/*' '/usr/include/*' '$(includedir)/*'
-export CODE_COVERAGE_IGNORE_PATTERN
-
-CODE_COVERAGE_LCOV_SHOPTS = $(CODE_COVERAGE_LCOV_SHOPTS_DEFAULT)
-# Use our configuration file for lcov
-CODE_COVERAGE_LCOV_SHOPTS += --config-file $(abs_srcdir)/.lcovrc
-export CODE_COVERAGE_LCOV_SHOPTS
-#
-CODE_COVERAGE_LCOV_OPTIONS = $(CODE_COVERAGE_LCOV_OPTIONS_DEFAULT)
-# Use our configuration file for lcov
-CODE_COVERAGE_LCOV_OPTIONS += --config-file $(abs_srcdir)/.lcovrc
-export CODE_COVERAGE_LCOV_OPTIONS
-
-CODE_COVERAGE_LCOV_RMOPTS = $(CODE_COVERAGE_LCOV_RMOPTS_DEFAULT)
-# Use our configuration file for lcov
-CODE_COVERAGE_LCOV_RMOPTS += --config-file $(abs_srcdir)/.lcovrc
-export CODE_COVERAGE_LCOV_RMOPTS
-
-CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT)
-# Use our configuration file for genhtml
-CODE_COVERAGE_GENHTML_OPTIONS += --config-file $(abs_srcdir)/.lcovrc
-# Don't generate the absolute path for each file in the HTML output
-CODE_COVERAGE_GENHTML_OPTIONS += --prefix $(abs_srcdir) --prefix $(abs_builddir)
-export CODE_COVERAGE_GENHTML_OPTIONS
-
diff --git a/README.md b/README.md
index a1c1db8..d685894 100644
--- a/README.md
+++ b/README.md
@@ -4,15 +4,9 @@
 management allows the user to install both the server and client certificates.
 
 ## To Build
-```
-To build this package, do the following steps:
 
-    1. ./bootstrap.sh
-    2. ./configure ${CONFIGURE_FLAGS}
-    3. make
-
-To clean the repository run `./bootstrap.sh clean`.
-```
+This project can be built with `meson`.  The typical `meson` workflow is:
+`meson builddir && ninja -C builddir`.
 
 ## To Run
 Multiple instances of `phosphor-certificate-manager` are usually run on the bmc
diff --git a/bmc-vmi-ca/Makefile.am b/bmc-vmi-ca/Makefile.am
deleted file mode 100644
index c86cacf..0000000
--- a/bmc-vmi-ca/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-bin_PROGRAMS = \
-	bmc-vmi-ca
-
-noinst_HEADERS = \
-	ca_cert_entry.hpp \
-	ca_certs_manager.hpp
-
-bmc_vmi_ca_SOURCES = \
-	mainapp.cpp \
-	ca_cert_entry.cpp \
-	ca_certs_manager.cpp
-
-bmc_vmi_ca_LDFLAGS = \
-	$(SDBUSPLUS_LIBS) \
-	$(SDEVENTPLUS_LIBS) \
-	$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
-	$(PHOSPHOR_LOGGING_LIBS) \
-	-lstdc++fs
-
-bmc_vmi_ca_CXXFLAGS = \
-	$(SYSTEMD_CFLAGS) \
-	$(SDEVENTPLUS_LIBS) \
-	$(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
-	$(PHOSPHOR_LOGGING_CFLAGS)
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 2549be0..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,225 +0,0 @@
-# Initialization
-AC_PREREQ([2.69])
-AC_INIT([phosphor-certificate-manager], [1.0], [https://github.com/openbmc/phosphor-certificate-manager/issues])
-AC_LANG([C++])
-AC_CONFIG_HEADERS([config.h])
-AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror -Wno-portability foreign dist-xz])
-
-AM_SILENT_RULES([yes])
-
-# Checks for programs.
-AC_PROG_CXX
-AC_PROG_INSTALL
-AC_PROG_MAKE_SET
-
-# Checks for library functions
-LT_INIT # Required for systemd linking
-
-# Checks for typedefs, structures, and compiler characteristics.
-AX_CXX_COMPILE_STDCXX([17], [noext], [mandatory])
-AX_APPEND_COMPILE_FLAGS([-Wall -Werror], [CXXFLAGS])
-
-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])]
-)
-
-AC_ARG_WITH([dbuspolicydir],
-        AS_HELP_STRING([--with-dbuspolicydir=DIR], [D-Bus policy directory]),
-        [],
-        [with_dbuspolicydir=${datadir}/dbus-1/system.d])
-AS_IF([test "x$with_dbuspolicydir" != "xno"],
-      [AC_SUBST([dbuspolicydir], [$with_dbuspolicydir])]
-)
-
-AC_ARG_ENABLE([bmcweb-cert-config],
-     AS_HELP_STRING([--enable-bmcweb-cert-config], [Install bmcweb cert configs])
-)
-AM_CONDITIONAL([ENABLE_BMCWEB_CERT_CONFIG], [test "x$enable_bmcweb_cert_config" == "xyes" ])
-
-AC_ARG_ENABLE([nslcd-authority-cert-config],
-     AS_HELP_STRING([--enable-nslcd-authority-cert-config], [Install nslcd authority cert configs])
-)
-AM_CONDITIONAL([ENABLE_NSLCD_AUTHORITY_CERT_CONFIG], [test "x$enable_nslcd_authority_cert_config" == "xyes" ])
-
-AC_ARG_ENABLE([codecoverage],
-     AS_HELP_STRING([--enable-code-coverage], [Enable code coverage checks])
-)
-AM_CONDITIONAL([CODE_COVERAGE_ENABLED], [test "x$enable_codecoverage" == "xyes" ])
-
-# Check for libraries
-AX_CHECK_OPENSSL([], [AC_MSG_ERROR(["openssl required and not found"])])
-AC_CHECK_HEADER(experimental/filesystem, [],
-    [AC_MSG_ERROR([Could not find experimental/filesystem...libstdc++fs development package required])]
-)
-PKG_CHECK_MODULES([PHOSPHOR_DBUS_INTERFACES], [phosphor-dbus-interfaces])
-PKG_CHECK_MODULES([SDBUSPLUS], [sdbusplus])
-PKG_CHECK_MODULES([SDEVENTPLUS], [sdeventplus])
-PKG_CHECK_MODULES([PHOSPHOR_LOGGING], [phosphor-logging])
-
-# Make it possible for users to choose if they want test support
-# explicitly or not at all
-AC_ARG_ENABLE([tests], AC_HELP_STRING([--disable-tests],
-                                      [Build test cases]))
-
-# Make sure the default CFLAGS of `-O2 -g` don't override CODE_COVERAGE_CFLAGS
-# It is important that this comes before AC_PROG_C{C,XX}, as we are attempting
-# to stop them from populating default CFLAGS and CXXFLAGS.
-AS_IF([test "x$enable_tests" = "xno"], [enable_code_coverage=no])
-AS_IF([test "x$enable_code_coverage" != "xno"], [
-    AS_IF([test "x${CXXFLAGS+set}" != "xset"], [
-        AC_SUBST(CXXFLAGS, [""])
-    ])
-    AS_IF([test "x${CFLAGS+set}" != "xset"], [
-        AC_SUBST(CFLAGS, [""])
-    ])
-])
-
-# Check/set gtest specific functions.
-AS_IF([test "x$enable_tests" != "xno"], [
-    PKG_CHECK_MODULES([GTEST], [gtest], [], [true])
-    PKG_CHECK_MODULES([GMOCK], [gmock], [], [true])
-    AX_PTHREAD
-
-    AX_SAVE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
-    AX_APPEND_COMPILE_FLAGS([$GTEST_CFLAGS], [CPPFLAGS])
-    AC_CHECK_HEADERS([gtest/gtest.h], [
-        AS_IF([test "x$GTEST_CFLAGS" = "x"], [
-            AS_IF([test "x$PTHREAD_CFLAGS" = "x"], [
-                AX_APPEND_COMPILE_FLAGS(["-DGTEST_HAS_PTHREAD=0"], [GTEST_CFLAGS])
-            ], [
-                AX_APPEND_COMPILE_FLAGS(["-DGTEST_HAS_PTHREAD=1"], [GTEST_CFLAGS])
-                AX_APPEND_COMPILE_FLAGS([$PTHREAD_CFLAGS], [GTEST_CFLAGS])
-            ])
-        ])
-    ], [
-        AS_IF([test "x$enable_tests" = "xyes"], [
-            AC_MSG_ERROR([Testing enabled but could not find gtest/gtest.h])
-        ])
-    ])
-    AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
-
-    AX_SAVE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
-    AX_APPEND_COMPILE_FLAGS([$GMOCK_CFLAGS], [CPPFLAGS])
-    AC_CHECK_HEADERS([gmock/gmock.h], [], [
-        AS_IF([test "x$enable_tests" = "xyes"], [
-            AC_MSG_ERROR([Testing enabled but could not find gmock/gmock.h])
-        ])
-    ])
-    AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
-
-    AX_SAVE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
-    AX_APPEND_COMPILE_FLAGS([$GTEST_LIBS], [LDFLAGS])
-    AC_CHECK_LIB([gtest], [main], [
-        AS_IF([test "x$GTEST_LIBS" = "x"], [
-            AX_APPEND_COMPILE_FLAGS([-lgtest], [GTEST_LIBS])
-        ])
-    ], [
-        AS_IF([test "x$enable_tests" = "xyes"], [
-            AC_MSG_ERROR([Testing enabled but couldn't find gtest libs])
-        ])
-    ])
-    AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
-
-    AX_SAVE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
-    AX_APPEND_COMPILE_FLAGS([$GMOCK_LIBS], [LDFLAGS])
-    AC_CHECK_LIB([gmock], [main], [
-        AS_IF([test "x$GMOCK_LIBS" = "x"], [
-            AX_APPEND_COMPILE_FLAGS([-lgmock], [GMOCK_LIBS])
-        ])
-    ], [
-        AS_IF([test "x$enable_tests" = "xyes"], [
-            AC_MSG_ERROR([Testing enabled but couldn't find gmock libs])
-        ])
-    ])
-    AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
-])
-
-# Check for valgrind
-AS_IF([test "x$enable_tests" = "xno"], [enable_valgrind=no])
-m4_foreach([vgtool], [valgrind_tool_list],
-    [AX_VALGRIND_DFLT(vgtool, [off])])
-AX_VALGRIND_DFLT([memcheck], [on])
-AX_VALGRIND_CHECK
-AM_EXTRA_RECURSIVE_TARGETS([check-valgrind])
-m4_foreach([vgtool], [valgrind_tool_list],
-    [AM_EXTRA_RECURSIVE_TARGETS([check-valgrind-]vgtool)])
-
-# Code coverage
-AX_CODE_COVERAGE
-m4_ifdef([_AX_CODE_COVERAGE_RULES],
-    [AM_CONDITIONAL(AUTOCONF_CODE_COVERAGE_2019_01_06, [true])],
-    [AM_CONDITIONAL(AUTOCONF_CODE_COVERAGE_2019_01_06, [false])])
-AX_ADD_AM_MACRO_STATIC([])
-
-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])
-)
-AC_ARG_VAR(BUSNAME, [The D-Bus busname to own])
-AS_IF([test "x$BUSNAME" == "x"], [BUSNAME="xyz.openbmc_project.Certs.Manager"])
-AC_DEFINE_UNQUOTED([BUSNAME], ["$BUSNAME"], [The D-Bus busname to own])
-AC_ARG_VAR(OBJPATH, [The certificate manager D-Bus root])
-AS_IF([test "x$OBJPATH" == "x"], [OBJPATH="/xyz/openbmc_project/certs"])
-AC_DEFINE_UNQUOTED([OBJPATH], ["$OBJPATH"], [The certificate manager D-Bus root])
-
-AC_ARG_VAR(CSR_FILE_NAME, [The CSR file.])
-AS_IF([test "x$CSR_FILE_NAME" == "x"], [CSR_FILE_NAME="domain.csr"])
-AC_DEFINE_UNQUOTED([CSR_FILE_NAME], ["$CSR_FILE_NAME"], [The CSR file])
-
-AC_ARG_VAR(PRIV_KEY_FILE_NAME, [The private key file.])
-AS_IF([test "x$PRIV_KEY_FILE_NAME" == "x"], [PRIV_KEY_FILE_NAME="privkey.pem"])
-AC_DEFINE_UNQUOTED([PRIV_KEY_FILE_NAME], ["$PRIV_KEY_FILE_NAME"], [The private key file])
-
-AC_ARG_VAR(RSA_PRIV_KEY_FILE_NAME, [The rsa private key file.])
-AS_IF([test "x$RSA_PRIV_KEY_FILE_NAME" == "x"], [RSA_PRIV_KEY_FILE_NAME=".rsaprivkey.pem"])
-AC_DEFINE_UNQUOTED([RSA_PRIV_KEY_FILE_NAME], ["$RSA_PRIV_KEY_FILE_NAME"], [The rsa private key file])
-
-AC_ARG_VAR(AUTHORITY_CERTIFICATES_LIMIT, [Authority certificates limit.])
-AS_IF([test "x$AUTHORITY_CERTIFICATES_LIMIT" == "x"], [AUTHORITY_CERTIFICATES_LIMIT=10])
-AC_DEFINE_UNQUOTED([AUTHORITY_CERTIFICATES_LIMIT], [$AUTHORITY_CERTIFICATES_LIMIT], [Authority certificates limit])
-
-AC_ARG_ENABLE([ca-cert-extension],
-              AS_HELP_STRING([--enable-ca-cert-extension],
-                   [enable CA certificate manager \
-                    Only IBM specific])
-)
-
-AM_CONDITIONAL([CA_CERT_EXTENSION], [test "x$enable_ca_cert_extension" == "xyes"])
-
-AS_IF([test "x$enable_ca_cert_extension" == "xyes"],
-      [AC_CONFIG_FILES([bmc-vmi-ca/Makefile])])
-
-AC_SUBST([dbuspolicydir], [$with_dbuspolicydir])
-
-# Create configured output
-AC_CONFIG_FILES([Makefile test/Makefile dist/Makefile])
-AC_OUTPUT
diff --git a/dist/Makefile.am b/dist/Makefile.am
deleted file mode 100644
index 7e33089..0000000
--- a/dist/Makefile.am
+++ /dev/null
@@ -1,44 +0,0 @@
-certmgrenvdir=$(datadir)/phosphor-certificate-manager
-
-dbuspolicy_DATA =
-certmgrenv_DATA =
-SYSTEM_UNIT_ALIASES =
-
-systemdsystemunit_DATA = phosphor-certificate-manager@.service
-
-if CA_CERT_EXTENSION
-dbuspolicy_DATA += busconfig/bmc-vmi-ca.conf
-systemdsystemunit_DATA += bmc-vmi-ca-manager.service
-endif
-
-if ENABLE_BMCWEB_CERT_CONFIG
-dbuspolicy_DATA += busconfig/phosphor-bmcweb-cert-config.conf
-certmgrenv_DATA += env/bmcweb
-SYSTEM_UNIT_ALIASES += \
-	../phosphor-certificate-manager@.service multi-user.target.wants/phosphor-certificate-manager@bmcweb.service
-endif
-
-if ENABLE_NSLCD_AUTHORITY_CERT_CONFIG
-dbuspolicy_DATA += busconfig/phosphor-nslcd-authority-cert-config.conf
-certmgrenv_DATA += env/authority
-SYSTEM_UNIT_ALIASES += \
-	../phosphor-certificate-manager@.service multi-user.target.wants/phosphor-certificate-manager@authority.service
-endif
-
-install-aliases-hook:
-	set -- $(SYSTEM_UNIT_ALIASES) && \
-	  dir=$(systemdsystemunitdir) && $(install-aliases)
-
-define install-aliases
-  while [ -n "$$1" ]; do \
-	$(MKDIR_P) `dirname $(DESTDIR)$$dir/$$2` && \
-	rm -f $(DESTDIR)$$dir/$$2 && \
-	$(LN_S) $$1 $(DESTDIR)$$dir/$$2 && \
-	shift 2 || exit $$?; \
-  done
-endef
-
-INSTALL_DATA_HOOKS = \
-	install-aliases-hook
-
-install-data-hook: $(INSTALL_DATA_HOOKS)
diff --git a/test/Makefile.am b/test/Makefile.am
deleted file mode 100644
index e500841..0000000
--- a/test/Makefile.am
+++ /dev/null
@@ -1,51 +0,0 @@
-AM_CPPFLAGS = \
-	-I$(top_srcdir) \
-	$(CODE_COVERAGE_CPPFLAGS)
-
-AM_CFLAGS = \
-	$(SDBUSPLUS_CFLAGS) \
-	$(SDEVENTPLUS_CFLAGS) \
-	$(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
-	$(PHOSPHOR_LOGGING_CFLAGS) \
-	$(CODE_COVERAGE_CPPFLAGS)
-
-AM_CXXFLAGS = \
-	$(CODE_COVERAGE_CXXFLAGS)
-
-AM_LDFLAGS = \
-	-lstdc++fs \
-	$(SDBUSPLUS_LIBS) \
-	$(SDEVENTPLUS_LIBS) \
-	$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
-	$(PHOSPHOR_LOGGING_LIBS) \
-	$(OPENSSL_LIBS) \
-	$(GTEST_LIBS) -lgmock_main $(GMOCK_LIBS) \
-	$(OESDK_TESTCASE_FLAGS) \
-	$(CODE_COVERAGE_LIBS)
-
-check_PROGRAMS =
-
-# Run all 'check' test programs
-TESTS = $(check_PROGRAMS)
-
-# Build/add certs_manager_test to test suite
-check_PROGRAMS += certs_manager_test
-certs_manager_test_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_CPPFLAGS)
-certs_manager_test_LDFLAGS = $(AM_LDFLAGS) $(PTHREAD_LIBS) $(OESDK_TESTCASE_FLAGS)
-certs_manager_test_SOURCES = certs_manager_test.cpp
-certs_manager_test_LDADD = $(top_builddir)/certs_manager.o
-certs_manager_test_LDADD += $(top_builddir)/certificate.o
-certs_manager_test_LDADD += $(top_builddir)/csr.o
-certs_manager_test_LDADD += $(top_builddir)/watch.o
-certs_manager_test_LDADD += $(CODE_COVERAGE_LIBS)
-
-if CA_CERT_EXTENSION
-# Build/add ca_certs_manager_test to test suite
-check_PROGRAMS += ca_certs_manager_test
-ca_certs_manager_test_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_CPPFLAGS)
-ca_certs_manager_test_LDFLAGS = $(AM_LDFLAGS) $(PTHREAD_LIBS) $(OESDK_TESTCASE_FLAGS)
-ca_certs_manager_test_SOURCES = ca_certs_manager_test.cpp
-ca_certs_manager_test_LDADD = $(top_builddir)/bmc-vmi-ca/ca_certs_manager.o
-ca_certs_manager_test_LDADD += $(top_builddir)/bmc-vmi-ca/ca_cert_entry.o
-ca_certs_manager_test_LDADD += $(CODE_COVERAGE_LIBS)
-endif
