diff --git a/.gitignore b/.gitignore
index 4b97ff5..24ddad5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,69 +1,137 @@
-# Python build artifacts
-*.swp
-__pycache__
-*.pyc
-*.pyo
-/tools/build
-/tools/setup_autotools.py
+# Meson build directories.
+/build*/
 
-# Test suite logs
-*.log
+# Created by https://www.gitignore.io/api/vim,python
+# Edit at https://www.gitignore.io/?templates=vim,python
 
-# Code Coverage
-*.gcda
-*.gcno
-*.trs
-*-coverage*
+### Python ###
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
 
-# Compiler
-*.o
+# C extensions
+*.so
 
-# Libtool
-*.la
-*.lo
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+pip-wheel-metadata/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
 
-# Autotools
-.deps
-.dirstamp
-.libs
-/aclocal.m4
-/aminclude_static.am
-/autom4te.cache
-/build-aux
-/config.h
-/config.h.in
-/config.h.in~
-/config.log
-/config.status
-/configure
-/m4
-/libtool
-Makefile
-Makefile.in
-/stamp-h1
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
 
-# Custom generated files
-/example/calculator.md
-/example/net/poettering/Calculator
-/sdbusplus.pc
-/sdbusplus/bus.hpp
-/sdbusplus/server.hpp
-/tools/sdbusplus/templates/method.mako.prototype.hpp
-/tools/sdbusplus/templates/property.mako.prototype.hpp
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
 
-# Output binaries
-/example/calculator-server
-/example/list-users
-/test/bus_list_names
-/test/bus_match
-/test/exception_sdbus_error
-/test/message_append
-/test/message_native_types
-/test/message_read
-/test/message_types
-/test/timer
-/test/utility_tuple_to_array
-/test/utility_type_traits
-/test/vtable_vtable
-/test/object
-/test/server/Test
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+.hypothesis/
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# pyenv
+.python-version
+
+# pipenv
+#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+#   However, in case of collaboration, if having platform-specific dependencies or dependencies
+#   having no cross-platform support, pipenv may install dependencies that don't work, or not
+#   install all needed dependencies.
+#Pipfile.lock
+
+# celery beat schedule file
+celerybeat-schedule
+
+# SageMath parsed files
+*.sage.py
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# Mr Developer
+.mr.developer.cfg
+.project
+.pydevproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+### Vim ###
+# Swap
+[._]*.s[a-v][a-z]
+[._]*.sw[a-p]
+[._]s[a-rt-v][a-z]
+[._]ss[a-gi-z]
+[._]sw[a-p]
+
+# Session
+Session.vim
+Sessionx.vim
+
+# Temporary
+.netrwhist
+*~
+
+# Auto-generated tag files
+tags
+
+# Persistent undo
+[._]*.un~
+
+# Coc configuration directory
+.vim
+
+# End of https://www.gitignore.io/api/vim,python
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 2579ada..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,61 +0,0 @@
-ACLOCAL_AMFLAGS = -Im4
-
-if AUTOCONF_CODE_COVERAGE_2019_01_06
-include $(top_srcdir)/aminclude_static.am
-clean-local: code-coverage-clean
-distclean-local: code-coverage-dist-clean
-else
-@CODE_COVERAGE_RULES@
-endif
-
-if WANT_LIBSDBUSPLUS
-
-nobase_include_HEADERS = \
-	sdbusplus/asio/connection.hpp \
-	sdbusplus/asio/object_server.hpp \
-	sdbusplus/asio/detail/async_send_handler.hpp \
-	sdbusplus/asio/sd_event.hpp \
-	sdbusplus/bus.hpp \
-	sdbusplus/bus/match.hpp \
-	sdbusplus/sdbus.hpp \
-	sdbusplus/test/sdbus_mock.hpp \
-	sdbusplus/exception.hpp \
-	sdbusplus/message.hpp \
-	sdbusplus/message/append.hpp \
-	sdbusplus/message/native_types.hpp \
-	sdbusplus/message/read.hpp \
-	sdbusplus/message/types.hpp \
-	sdbusplus/server.hpp \
-	sdbusplus/server/bindings.hpp \
-	sdbusplus/server/interface.hpp \
-	sdbusplus/server/manager.hpp \
-	sdbusplus/server/object.hpp \
-	sdbusplus/server/transaction.hpp \
-	sdbusplus/slot.hpp \
-	sdbusplus/timer.hpp \
-	sdbusplus/utility/container_traits.hpp \
-	sdbusplus/utility/read_into_tuple.hpp \
-	sdbusplus/utility/tuple_to_array.hpp \
-	sdbusplus/utility/type_traits.hpp \
-	sdbusplus/vtable.hpp
-
-LIBSDBUSPLUS_FILES = \
-	sdbusplus/exception.cpp \
-	sdbusplus/sdbus.cpp \
-	sdbusplus/server/transaction.cpp
-
-libsdbusplusdir = ${libdir}
-libsdbusplus_LTLIBRARIES = libsdbusplus.la
-libsdbusplus_la_SOURCES = $(LIBSDBUSPLUS_FILES)
-libsdbusplus_la_LIBADD = $(SYSTEMD_LIBS) $(CODE_COVERAGE_LIBS)
-libsdbusplus_la_LDFLAGS = -version-info 1:0:0 -shared
-libsdbusplus_la_CPPFLAGS = $(CODE_COVERAGE_CPPFLAGS)
-libsdbusplus_la_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS) $(SYSTEMD_CFLAGS)
-
-pkgconfiglibdir = ${libdir}/pkgconfig
-pkgconfiglib_DATA = sdbusplus.pc
-
-SUBDIRS = . tools example test
-else
-SUBDIRS = . tools
-endif # WANT_LIBSDBUSPLUS
diff --git a/bootstrap.sh b/bootstrap.sh
deleted file mode 100755
index 1be7493..0000000
--- a/bootstrap.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-set -e
-set -x
-
-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 -vfi
-echo 'Run "./configure ${CONFIGURE_FLAGS} && make"'
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index 34a49be..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,191 +0,0 @@
-# Initialization
-AC_PREREQ([2.69])
-AC_INIT([sdbusplus], [1.0], [https://github.com/openbmc/sdbusplus/issues])
-AC_CONFIG_HEADERS([config.h])
-AC_CONFIG_MACRO_DIRS([m4])
-AC_CONFIG_AUX_DIR([build-aux])
-AM_INIT_AUTOMAKE([subdir-objects -Wall -Wno-portability -Werror foreign dist-xz])
-AM_SILENT_RULES([yes])
-AC_LANG([C++])
-
-# 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, [""])
-    ])
-])
-
-# Checks for programs.
-AC_PROG_CXX
-AC_PROG_CC
-AM_PROG_AR
-AC_PROG_INSTALL
-AC_PROG_MAKE_SET
-
-# setup sdbus++
-AM_PATH_PYTHON([3.0], [AC_SUBST([PYTHON], [echo "$PYTHON"])])
-AC_SUBST([PYTHONDIR], ${pythondir})
-AS_IF([test "$PYTHON" != :], [have_python=yes], [have_python=no])
-
-AC_ARG_ENABLE([sdbuspp],
-    AS_HELP_STRING([--disable-sdbuspp], [Disable sdbus++]))
-
-AS_IF([test "x$enable_sdbuspp" != "xno"],
-    [AS_IF([test "x$have_python" = "xno"], [AC_MSG_ERROR([sdbus++ requires python])])])
-
-AM_CONDITIONAL([WANT_SDBUSPP], [test "x$enable_sdbuspp" != "xno"])
-
-# setup libsdbusplus
-AX_PKG_CHECK_MODULES(
-    [SYSTEMD],
-    [libsystemd >= 221],
-    [],
-    [have_systemd=yes],
-    [have_systemd=no])
-AC_ARG_ENABLE([libsdbusplus],
-    AS_HELP_STRING([--disable-libsdbusplus], [Disable libsdbusplus]))
-
-AS_IF([test "x$enable_libsdbusplus" != "xno"],
-      [AS_IF([test "x$have_systemd" = "xno"], [AC_MSG_ERROR([libsdbusplus requires systemd])])])
-
-AM_CONDITIONAL([WANT_LIBSDBUSPLUS], [test "x$enable_libsdbusplus" != "xno"])
-
-# setup transaction
-AC_ARG_ENABLE([transaction],
-    AS_HELP_STRING([--enable-transaction], [Enable transaction id support.]))
-AC_ARG_VAR(WANT_TRANSACTION, [Enable transaction id support.])
-AS_IF([test "x$enable_transaction" = "xyes"], \
-    [WANT_TRANSACTION="1"], \
-    [WANT_TRANSACTION="0"])
-AM_CONDITIONAL([WANT_TRANSACTION], [test "x$enable_transaction" = "xyes"])
-
-# Checks for header files.
-AS_IF([test "x$enable_libsdbusplus" != "xno"],
-      [AC_CHECK_HEADER(systemd/sd-bus.h, ,[AC_MSG_ERROR([Could not find systemd/sd-bus.h...systemd development package required])])])
-
-# Checks for typedefs, structures, and compiler characteristics.
-AS_IF([test "x$enable_libsdbusplus" != "xno"],
-      [AX_CXX_COMPILE_STDCXX_17([noext])])
-AX_APPEND_COMPILE_FLAGS([-Wall -Werror], [CFLAGS])
-AX_APPEND_COMPILE_FLAGS([-Wall -Werror], [CXXFLAGS])
-
-# Checks for library functions.
-LT_INIT # Removes 'unrecognized options: --with-libtool-sysroot'
-
-# Make it possible for users to choose if they want test support
-# explicitly or not at all
-AC_ARG_ENABLE([tests], [Whether we should build test cases])
-
-# 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
-AS_IF([test "x$CODE_COVERAGE_ENABLED" = "xyes"], [
-    AX_APPEND_COMPILE_FLAGS([-DHAVE_GCOV], [CODE_COVERAGE_CPPFLAGS])
-])
-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_ENABLE([boost],
-    AS_HELP_STRING([--enable-boost], [Enable building with boost.]))
-AM_CONDITIONAL(BOOST, [test "x$enable_boost" = "xyes"])
-
-# Create configured output
-AC_CONFIG_FILES([Makefile test/Makefile tools/Makefile tools/setup_autotools.py])
-AC_CONFIG_FILES([example/Makefile])
-AC_CONFIG_FILES([sdbusplus.pc])
-AC_OUTPUT
diff --git a/example/Makefile.am b/example/Makefile.am
deleted file mode 100644
index 294ee00..0000000
--- a/example/Makefile.am
+++ /dev/null
@@ -1,92 +0,0 @@
-noinst_PROGRAMS = list-users
-
-list_users_SOURCES = list-users.cpp
-list_users_CXXFLAGS = $(SYSTEMD_CFLAGS) -I$(top_srcdir)
-list_users_LDADD = $(SYSTEMD_LIBS) ../libsdbusplus.la
-
-if BOOST
-noinst_PROGRAMS += asio-example
-asio_example_SOURCES = asio-example.cpp
-asio_example_CXXFLAGS = \
-    $(SYSTEMD_CFLAGS) \
-    $(PTHREAD_CFLAGS) \
-    $(BOOST_CPPFLAGS) \
-    -DBOOST_ALL_NO_LIB \
-    -DBOOST_SYSTEM_NO_DEPRECATED \
-    -DBOOST_ERROR_CODE_HEADER_ONLY \
-    -DBOOST_COROUTINES_NO_DEPRECATION_WARNING \
-    -I$(top_srcdir)
-
-asio_example_LDADD = \
-    $(SYSTEMD_LIBS) \
-    $(PTHREAD_LIBS) \
-    -lboost_coroutine \
-    ../libsdbusplus.la
-
-asio_example_LDFLAGS = \
-    $(BOOST_LDFLAGS)
-endif
-
-if WANT_SDBUSPP
-noinst_PROGRAMS += calculator-server
-calculator_server_generated_files = \
-	net/poettering/Calculator/server.hpp \
-	net/poettering/Calculator/server.cpp \
-	net/poettering/Calculator/error.hpp \
-	net/poettering/Calculator/error.cpp \
-	net/poettering/Calculator/client.hpp
-
-calculator_markdown_generated_files = \
-	calculator.md
-
-calculator_server_SOURCES = \
-	calculator-server.cpp $(calculator_server_generated_files)
-calculator_server_CXXFLAGS = $(SYSTEMD_CFLAGS) -I$(top_srcdir)
-calculator_server_LDADD = $(SYSTEMD_LIBS) ../libsdbusplus.la
-
-BUILT_SOURCES = \
-	$(calculator_server_generated_files) \
-	$(calculator_markdown_generated_files)
-CLEANFILES = \
-	$(calculator_server_generated_files) \
-	$(calculator_markdown_generated_files)
-
-net/poettering/Calculator/server.hpp:
-	@mkdir -p $(@D)
-	@top_srcdir@/tools/sdbus++ \
-	    -r $(srcdir) -t $(top_builddir)/tools/sdbusplus/templates \
-	    interface server-header net.poettering.Calculator > $@
-
-net/poettering/Calculator/server.cpp:
-	@mkdir -p $(@D)
-	@top_srcdir@/tools/sdbus++ \
-	    -r $(srcdir) -t $(top_builddir)/tools/sdbusplus/templates \
-	    interface server-cpp net.poettering.Calculator > $@
-
-net/poettering/Calculator/error.hpp:
-	@mkdir -p $(@D)
-	@top_srcdir@/tools/sdbus++ \
-	    -r $(srcdir) -t $(top_builddir)/tools/sdbusplus/templates \
-	    error exception-header net.poettering.Calculator > $@
-
-net/poettering/Calculator/error.cpp:
-	@mkdir -p $(@D)
-	@top_srcdir@/tools/sdbus++ \
-	    -r $(srcdir) -t $(top_builddir)/tools/sdbusplus/templates \
-	    error exception-cpp net.poettering.Calculator > $@
-
-calculator.md:
-	@mkdir -p $(@D)
-	@top_srcdir@/tools/sdbus++ \
-	    -r $(srcdir) -t $(top_builddir)/tools/sdbusplus/templates \
-	    interface markdown net.poettering.Calculator > $@
-	@top_srcdir@/tools/sdbus++ \
-	    -r $(srcdir) -t $(top_builddir)/tools/sdbusplus/templates \
-	    error markdown net.poettering.Calculator >> $@
-
-net/poettering/Calculator/client.hpp:
-	@mkdir -p $(@D)
-	@top_srcdir@/tools/sdbus++ \
-	    -r $(srcdir) -t $(top_builddir)/tools/sdbusplus/templates \
-	    interface client-header net.poettering.Calculator > $@
-endif
diff --git a/sdbusplus.pc.in b/sdbusplus.pc.in
deleted file mode 100644
index 2f7b4e2..0000000
--- a/sdbusplus.pc.in
+++ /dev/null
@@ -1,14 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: sdbusplus
-Description: C++ bindings for systemd dbus APIs
-URL: https://github.com/openbmc/sdbusplus
-Version: @VERSION@
-Requires: @AX_PACKAGE_REQUIRES@
-Requires.private: @AX_PACKAGE_REQUIRES_PRIVATE@
-Libs: -L@libdir@ -lsdbusplus
-Cflags: -I@includedir@
-
diff --git a/test/Makefile.am b/test/Makefile.am
deleted file mode 100644
index 445569a..0000000
--- a/test/Makefile.am
+++ /dev/null
@@ -1,84 +0,0 @@
-@VALGRIND_CHECK_RULES@
-VALGRIND_SUPPRESSIONS_FILES = valgrind.supp
-
-
-if WANT_LIBSDBUSPLUS
-
-AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) \
-              $(GTEST_CFLAGS) $(GMOCK_CFLAGS) $(SYSTEMD_CFLAGS) \
-              $(CODE_COVERAGE_CPPFLAGS)
-AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
-AM_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
-test_ldadd = $(top_builddir)/libsdbusplus.la $(SYSTEMD_LIBS) \
-             $(OESDK_TESTCASE_FLAGS) $(CODE_COVERAGE_LIBS)
-gtest_ldadd = $(test_ldadd) $(GTEST_LIBS) $(GMOCK_LIBS) -lgmock_main -lpthread
-
-check_PROGRAMS =
-TESTS = $(check_PROGRAMS)
-
-check_PROGRAMS += bus_list_names
-bus_list_names_SOURCES = bus/list_names.cpp
-bus_list_names_LDADD = $(gtest_ldadd)
-
-check_PROGRAMS += bus_match
-bus_match_SOURCES = bus/match.cpp
-bus_match_LDADD = $(gtest_ldadd)
-
-check_PROGRAMS += exception_sdbus_error
-exception_sdbus_error_SOURCES = exception/sdbus_error.cpp
-exception_sdbus_error_LDADD = $(gtest_ldadd)
-
-check_PROGRAMS += message_append
-message_append_SOURCES = message/append.cpp
-message_append_LDADD = $(gtest_ldadd)
-
-check_PROGRAMS += message_read
-message_read_SOURCES = message/read.cpp
-message_read_LDADD = $(gtest_ldadd)
-
-check_PROGRAMS += message_native_types
-message_native_types_SOURCES = message/native_types.cpp
-message_native_types_LDADD = $(gtest_ldadd)
-
-check_PROGRAMS += message_types
-message_types_SOURCES = message/types.cpp
-message_types_LDADD = $(gtest_ldadd)
-
-check_PROGRAMS += utility_tuple_to_array
-utility_tuple_to_array_SOURCES = utility/tuple_to_array.cpp
-utility_tuple_to_array_LDADD = $(gtest_ldadd)
-
-check_PROGRAMS += utility_type_traits
-utility_type_traits_SOURCES = utility/type_traits.cpp
-utility_type_traits_LDADD = $(gtest_ldadd)
-
-check_PROGRAMS += vtable_vtable
-vtable_vtable_SOURCES = vtable/vtable.cpp vtable/vtable_c.c
-vtable_vtable_LDADD = $(gtest_ldadd)
-
-check_PROGRAMS += timer
-timer_SOURCES = timer.cpp
-timer_LDADD = $(gtest_ldadd)
-
-server/Test/server.hpp:
-	@mkdir -p $(@D)
-	@top_srcdir@/tools/sdbus++ \
-	    -r $(srcdir) -t $(top_builddir)/tools/sdbusplus/templates \
-	    interface server-header server.Test > $@
-
-server/Test/server.cpp:
-	@mkdir -p $(@D)
-	@top_srcdir@/tools/sdbus++ \
-	    -r $(srcdir) -t $(top_builddir)/tools/sdbusplus/templates \
-	    interface server-cpp server.Test > $@
-
-server_test_generated_sources = server/Test/server.cpp server/Test/server.hpp
-
-BUILT_SOURCES = $(server_test_generated_sources)
-CLEANFILES = $(server_test_generated_sources)
-
-check_PROGRAMS += object
-object_SOURCES = server/object.cpp $(server_test_generated_sources)
-object_LDADD = $(gtest_ldadd)
-
-endif
diff --git a/tools/Makefile.am b/tools/Makefile.am
deleted file mode 100644
index f0c0b3d..0000000
--- a/tools/Makefile.am
+++ /dev/null
@@ -1,21 +0,0 @@
-if WANT_SDBUSPP
-
-all-local:
-	$(AM_V_at)$(PYTHON) ${top_builddir}/tools/setup_autotools.py build
-
-clean-local:
-	rm -rfv ${top_builddir}/build
-
-install-exec-hook:
-	$(AM_V_at)$(PYTHON) ${top_builddir}/tools/setup_autotools.py install \
-        --prefix=$(DESTDIR)${prefix} \
-        --install-data=$(DESTDIR)${datadir} \
-        --install-lib=$(DESTDIR)$(PYTHONDIR) \
-        --install-scripts=$(DESTDIR)${bindir} \
-        --record=${top_builddir}/python_install.log
-
-uninstall-hook:
-	cat ${top_builddir}/python_install.log \
-        | awk '{print "$(DESTDIR)"$$1}' | xargs rm -fv
-
-endif
diff --git a/tools/setup_autotools.py.in b/tools/setup_autotools.py.in
deleted file mode 100644
index a3f2763..0000000
--- a/tools/setup_autotools.py.in
+++ /dev/null
@@ -1,18 +0,0 @@
-from distutils.core import setup
-from distutils.command.build import build
-from distutils.dir_util import copy_tree
-
-
-class CustomBuild(build):
-    def run(self):
-        if ('@top_srcdir@' != '@top_builddir@'):
-            copy_tree('@top_srcdir@/tools/', '@top_builddir@/tools/', update=1)
-
-setup(name='sdbusplus',
-      version='1.0',
-      package_dir={'':'@top_builddir@/tools'},
-      packages=['sdbusplus'],
-      scripts=['@top_builddir@/tools/sdbus++'],
-      cmdclass={'build': CustomBuild},
-      package_data={'sdbusplus': ['templates/*.mako']},
-      )
