diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index dc0ddbf..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,72 +0,0 @@
-AM_DEFAULT_SOURCE_EXT = .cpp
-
-if !INSTALL_ERROR_YAML
-sbin_PROGRAMS = checkstop_app \
-                watchdog_timeout
-
-nobase_nodist_include_HEADERS = \
-            org/open_power/Host/Boot/error.hpp
-
-if GEN_ERRORS
-nobase_nodist_include_HEADERS += \
-            phosphor-logging/elog-errors.hpp
-endif
-
-BUILT_SOURCES = \
-            org/open_power/Host/Boot/error.cpp \
-            org/open_power/Host/Boot/error.hpp
-
-if GEN_ERRORS
-BUILT_SOURCES += phosphor-logging/elog-errors.hpp
-endif
-
-CLEANFILES = ${BUILT_SOURCES}
-
-checkstop_app_SOURCES = checkstop_app.cpp \
-                        org/open_power/Host/Boot/error.cpp
-
-watchdog_timeout_SOURCES = watchdog_timeout.cpp \
-                           org/open_power/Host/Boot/error.cpp
-
-generic_ldflags = \
-                 $(PHOSPHOR_LOGGING_LIBS) \
-                 $(SDBUSPLUS_LIBS)
-
-generic_cxxflags = \
-                  $(PHOSPHOR_LOGGING_CFLAGS) \
-                  $(SDBUSPLUS_CFLAGS)
-
-checkstop_app_LDFLAGS  = ${generic_ldflags}
-watchdog_timeout_LDFLAGS  = ${generic_ldflags}
-
-checkstop_app_CXXFLAGS  = ${generic_cxxflags}
-watchdog_timeout_CXXFLAGS  = ${generic_cxxflags}
-
-org/open_power/Host/Boot/error.hpp: ${top_srcdir}/org/open_power/Host/Boot.errors.yaml
-	@mkdir -p `dirname $@`
-	$(SDBUSPLUSPLUS) -r $(srcdir) error exception-header org.open_power.Host.Boot> $@
-
-org/open_power/Host/Boot/error.cpp: ${top_srcdir}/org/open_power/Host/Boot.errors.yaml
-	@mkdir -p `dirname $@`
-	$(SDBUSPLUSPLUS) -r $(srcdir) error exception-cpp org.open_power.Host.Boot> $@
-
-endif
-# Export error YAML to shared location
-yamldir = ${datadir}/phosphor-dbus-yaml/yaml
-nobase_yaml_DATA = \
-	org/open_power/Host/Boot.errors.yaml
-
-# Generate phosphor-logging/elog-errors.hpp
-if GEN_ERRORS
-ELOG_MAKO ?= elog-gen-template.mako.hpp
-ELOG_DIR ?= ${OECORE_NATIVE_SYSROOT}${datadir}/phosphor-logging/elog
-ELOG_GEN_DIR ?= ${ELOG_DIR}/tools/
-ELOG_MAKO_DIR ?= ${ELOG_DIR}/tools/phosphor-logging/templates/
-YAML_DIR ?= ${OECORE_NATIVE_SYSROOT}${datadir}/phosphor-dbus-yaml/yaml
-phosphor-logging/elog-errors.hpp:
-	@mkdir -p ${YAML_DIR}/org/open_power/Host
-	@cp ${top_srcdir}/org/open_power/Host/Boot.errors.yaml ${YAML_DIR}/org/open_power/Host/Boot.errors.yaml
-	@mkdir -p `dirname $@`
-	@chmod 777 $(ELOG_GEN_DIR)/elog-gen.py
-	$(AM_V_at)$(PYTHON) $(ELOG_GEN_DIR)/elog-gen.py -y ${YAML_DIR} -t ${ELOG_MAKO_DIR} -m ${ELOG_MAKO} -o $@
-endif
diff --git a/README.md b/README.md
index 7606047..1e561cc 100644
--- a/README.md
+++ b/README.md
@@ -1,27 +1,9 @@
-## To Build
+## Building the Code
 ```
 To build this package, do the following steps:
 
-    1. ./bootstrap.sh
-    2. ./configure ${CONFIGURE_FLAGS} --prefix=/usr
-    3. make
+    1. meson build
+    2. ninja -C build
 
-To clean the repository run `./bootstrap.sh clean`.
-```
-
-```
-For local build, pass --prefix=/usr option to the configure script
-to let the Makefile use /usr/share value over /usr/local/share for ${datadir}
-variable. The error yaml files and elog parser are stored in /usr/share
-location in the SDK.
-```
-
-```
-For CI build, ${datadir} is expanded to /usr/local/share to which the
-dependent files and parser are exported, so don't add the prefix option.
-```
-
-```
-For recipe build, ${datadir} is expanded to /usr/share to which the
-dependent files and parser are exported, so don't add the prefix option.
+To clean the repository run `rm -rf build`.
 ```
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 8f4f3fe..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,48 +0,0 @@
-# Initialization
-AC_PREREQ([2.69])
-AC_INIT([openpower-debug-collector], [1.0],[https://github.com/openbmc/openpower-debug-collector/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
-AC_PROG_INSTALL
-AC_PROG_MAKE_SET
-
-# Generate elog-errors.hpp if gen_errors optional feature is enabled
-AC_ARG_ENABLE([gen_errors],
-    AS_HELP_STRING([--enable-gen_errors], [Enable elog-errors.hpp generation ]),
-    [],[gen_errors=yes])
-AM_CONDITIONAL([GEN_ERRORS], [test "x$enable_gen_errors" != "xno"])
-
-# Check for compiler, packages only when install_error_yaml optional feature
-# is disabled
-AC_ARG_ENABLE([install_error_yaml],
-    AS_HELP_STRING([--enable-install_error_yaml], [Enable installing error yaml file]),
-    [], [install_error_yaml=no])
-AM_CONDITIONAL([INSTALL_ERROR_YAML], [test "x$enable_install_error_yaml" = "xyes"])
-AS_IF([test "x$enable_install_error_yaml" != "xyes"], [
-    # Checks for typedefs, structures, and compiler characteristics.
-    AX_CXX_COMPILE_STDCXX_17([noext])
-    AX_APPEND_COMPILE_FLAGS([-Wall -Werror], [CXXFLAGS])
-
-    # Check for sdbus++
-    AC_PATH_PROG([SDBUSPLUSPLUS], [sdbus++])
-    AS_IF([test "x$SDBUSPLUSPLUS" == "x"],
-        AC_MSG_ERROR(["Requires sdbus++"]))
-
-    LT_INIT
-
-    # Checks for libraries.
-    AX_PKG_CHECK_MODULES([SYSTEMD], [], [libsystemd >= 221], [],
-        [AC_MSG_ERROR(["systemd required and not found."])])
-
-    # Checks for modules
-    PKG_CHECK_MODULES([PHOSPHOR_LOGGING], [phosphor-logging],,
-        [AC_MSG_ERROR([Could not find phosphor-logging...openbmc/phosphor-logging package required])])
-])
-# Create configured output
-AC_CONFIG_FILES([Makefile ])
-AC_OUTPUT
