diff --git a/.gitignore b/.gitignore
index 964073a..c1312ff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,45 +7,11 @@
 *.trs
 *-coverage*
 
-*.o
-*.lo
-*.la
-*.sw*
-Makefile
-Makefile.in
-configure
-configure~
-.deps
-.libs
-aclocal.m4
-ar-lib
-arm-openbmc-linux-gnueabi-libtool
-autom4te.cache/
-/aminclude_static.am
-compile
-config.guess
-config.guess~
-config.h
-config.h.in
-config.h.in~
-config.log
-config.status
-config.sub
-config.sub~
-depcomp
-install-sh
-ltmain.sh
-missing
-stamp-h1
-test-driver
-.dirstamp
 pidlist-gen.cpp
 sensorlist-gen.cpp
 zoneinfo-gen.cpp
 setsensor
 swampd
-libtool
-x86_64-libtool
 *_unittest
 *_unittest.log
 *_unittest.trs
@@ -54,4 +20,8 @@
 # IDEs
 .idea/
 
+# Patches
+.pc/
+patches/
+
 phosphor-pid-control.service
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 351b26b..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,137 +0,0 @@
-AM_DEFAULT_SOURCE_EXT = .cpp
-
-# 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
-
-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
-
-AM_CPPFLAGS = $(CODE_COVERAGE_CPPFLAGS)
-AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
-AM_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
-
-if HAVE_SYSTEMD
-systemdsystemunit_DATA = phosphor-pid-control.service
-endif
-
-bin_PROGRAMS = swampd setsensor
-
-setsensor_SOURCES = setsensor.cpp
-setsensor_LDADD = \
-	$(SDBUSPLUS_LIBS) \
-	$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
-	$(PHOSPHOR_LOGGING_LIBS) \
-	$(CODE_COVERAGE_LIBS)
-setsensor_CXXFLAGS = \
-	$(SDBUSPLUS_CFLAGS) \
-	$(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
-	$(PHOSPHOR_LOGGING_CFLAGS) \
-	$(CODE_COVERAGE_CXXFLAGS)
-
-swampd_SOURCES = main.cpp
-swampd_LDADD = \
-	$(SDBUSPLUS_LIBS) \
-	libswampd.la
-swampd_CXXFLAGS = \
-	$(SDBUSPLUS_CFLAGS) \
-	$(CODE_COVERAGE_CXXFLAGS)
-
-noinst_LTLIBRARIES = libswampd.la
-libswampd_la_LDFLAGS = -static
-libswampd_la_LIBADD = \
-	-lstdc++fs \
-	$(SDBUSPLUS_LIBS) \
-	$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
-	$(PHOSPHOR_LOGGING_LIBS) \
-	$(CODE_COVERAGE_LIBS)
-libswampd_la_CXXFLAGS = \
-	$(SDBUSPLUS_CFLAGS) \
-	$(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
-	$(PHOSPHOR_LOGGING_CFLAGS) \
-	$(CODE_COVERAGE_CXXFLAGS)
-
-libswampd_la_SOURCES = \
-	util.cpp \
-	notimpl/readonly.cpp \
-	notimpl/writeonly.cpp \
-	dbus/dbusconfiguration.cpp \
-	dbus/dbusutil.cpp \
-	dbus/dbushelper.cpp \
-	dbus/dbuspassiveredundancy.cpp \
-	dbus/dbuspassive.cpp \
-	dbus/dbusactiveread.cpp \
-	dbus/dbuswrite.cpp \
-	sysfs/sysfsread.cpp \
-	sysfs/sysfswrite.cpp \
-	sysfs/util.cpp \
-	sensors/pluggable.cpp \
-	sensors/host.cpp \
-	sensors/builder.cpp \
-	sensors/buildjson.cpp \
-	sensors/manager.cpp \
-	sensors/build_utils.cpp \
-	pid/ec/pid.cpp \
-	pid/ec/stepwise.cpp \
-	pid/ec/logging.cpp \
-	pid/fancontroller.cpp \
-	pid/thermalcontroller.cpp \
-	pid/pidcontroller.cpp \
-	pid/stepwisecontroller.cpp \
-	pid/builder.cpp \
-	pid/buildjson.cpp \
-	pid/zone.cpp \
-	pid/util.cpp \
-	pid/pidloop.cpp \
-	pid/tuning.cpp \
-	buildjson/buildjson.cpp \
-	experiments/drive.cpp
-
-libmanualcmdsdir = ${libdir}/ipmid-providers
-libmanualcmds_LTLIBRARIES = libmanualcmds.la
-libmanualcmds_la_SOURCES = \
-	ipmi/main_ipmi.cpp \
-	ipmi/manualcmds.cpp \
-	ipmi/dbus_mode.cpp
-libmanualcmds_la_LDFLAGS = \
-	$(SYSTEMD_LIBS) \
-	$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
-	$(PHOSPHOR_LOGGING_LIBS) \
-	$(LIBIPMID_LIBS) \
-	$(CODE_COVERAGE_LIBS) \
-	-version-info 0:0:0 -shared
-libmanualcmds_la_CXXFLAGS = \
-	$(SYSTEMD_CFLAGS) \
-	$(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
-	$(PHOSPHOR_LOGGING_CFLAGS) \
-	$(LIBIPMID_CFLAGS) \
-	$(CODE_COVERAGE_CXXFLAGS)
-
-SUBDIRS = . test
diff --git a/bootstrap.sh b/bootstrap.sh
deleted file mode 100755
index 0b2d4a7..0000000
--- a/bootstrap.sh
+++ /dev/null
@@ -1,20 +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 622b091..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,232 +0,0 @@
-# Initialization
-AC_PREREQ([2.69])
-AC_INIT([swampd], [0.1], [https://github.com/openbmc/phosphor-pid-control/issues])
-AC_LANG([C++])
-AC_CONFIG_HEADERS([config.h])
-AM_INIT_AUTOMAKE([subdir-objects -Wall -Wno-portability -Werror foreign dist-xz])
-AM_SILENT_RULES([yes])
-
-# 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
-AM_PROG_AR
-AC_PROG_INSTALL
-AC_PROG_MAKE_SET
-
-# Checks for typedefs, structures, and compiler characteristics.
-AX_CXX_COMPILE_STDCXX([20],[noext])
-AX_APPEND_COMPILE_FLAGS([-fpic -Wall -Werror], [CXXFLAGS])
-
-# Checks for libraries.
-PKG_CHECK_MODULES(
-    [SYSTEMD],
-    [libsystemd >= 221],
-    [],
-    [AC_MSG_ERROR(["systemd required and not found"])]
-)
-PKG_CHECK_MODULES([SDBUSPLUS], [sdbusplus])
-PKG_CHECK_MODULES([PHOSPHOR_LOGGING], [phosphor-logging])
-PKG_CHECK_MODULES([PHOSPHOR_DBUS_INTERFACES], [phosphor-dbus-interfaces])
-PKG_CHECK_MODULES(
-    [LIBIPMID],
-    [libipmid],
-    [],
-    [AC_MSG_ERROR([Could not find libipmid...openbmc/phosphor-host-ipmid package required])]
-)
-AC_CHECK_HEADER(
-    nlohmann/json.hpp,
-    [],
-    [AC_MSG_ERROR([Could not find nlohmann/json.hpp])]
-)
-# We need the header only CLI library
-AC_CHECK_HEADERS(
-    [CLI/CLI.hpp],
-    [],
-    [AC_MSG_ERROR([Could not find CLI11 CLI/CLI.hpp])]
-)
-
-# check for boost headers
-AC_CHECK_HEADER(
-    boost/asio/io_context.hpp,
-    [],
-    [AC_MSG_ERROR([Could not find boost/asio/io_context.hpp])]
-)
-AC_CHECK_HEADER(
-    boost/asio/steady_timer.hpp,
-    [],
-    [AC_MSG_ERROR([Could not find boost/asio/steady_timer.hpp])]
-)
-AX_APPEND_COMPILE_FLAGS(["-DBOOST_ASIO_DISABLE_THREADS"], [CPPFLAGS])
-AX_APPEND_COMPILE_FLAGS(["-DBOOST_ERROR_CODE_HEADER_ONLY"], [CPPFLAGS])
-AX_APPEND_COMPILE_FLAGS(["-DBOOST_SYSTEM_NO_DEPRECATED"], [CPPFLAGS])
-AX_APPEND_COMPILE_FLAGS(["-DBOOST_ASIO_NO_DEPRECATED"], [CPPFLAGS])
-
-# Checks for library functions.
-LT_INIT # Required for systemd linking
-
-# 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]))
-
-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"])
-
-# 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_LANG_PUSH([C++])
-    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])
-        ])
-    ])
-    AC_LANG_POP([C++])
-    AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
-
-    AX_SAVE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
-    AX_APPEND_COMPILE_FLAGS([$GMOCK_CFLAGS], [CPPFLAGS])
-    AC_LANG_PUSH([C++])
-    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])
-        ])
-    ])
-    AC_LANG_POP([C++])
-    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])
-])
-
-# 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([configure-dbus],
-    AS_HELP_STRING(
-        [--enable-configure-dbus], [Enable configuring pid from D-Bus.]
-    )
-)
-
-AC_ARG_ENABLE([strict-failsafe-pwm],
-    AS_HELP_STRING([--strict-failsafe-pwm],
-                   [Set the fans strictly at the failsafe PWM when in failsafe mode]))
-AM_CONDITIONAL(ENABLE_STRICT_FAILSAFE_PWM, [test "x$enable_strict_failsafe_pwm" = "xyes"])
-AS_IF([test "x$enable_strict_failsafe_pwm" = "xyes"], [
-    AX_APPEND_COMPILE_FLAGS([-DSTRICT_FAILSAFE_PWM], [CXXFLAGS])
-])
-
-AC_ARG_VAR(SYSTEMD_TARGET, "Target for starting this service")
-AS_IF([test "x$SYSTEMD_TARGET" == "x"], [SYSTEMD_TARGET="multi-user.target"])
-
-# Make a fully expanded variable for the service definition
-if test "x$prefix" = xNONE; then
-  prefix=$ac_default_prefix
-fi
-# Let make expand exec_prefix.
-if test "x$exec_prefix" = xNONE; then
-  exec_prefix='${prefix}'
-fi
-eval "eval BINDIR=$bindir"
-AC_SUBST([BINDIR])
-
-# Create configured output
-AC_CONFIG_FILES([Makefile test/Makefile])
-AC_CONFIG_FILES([phosphor-pid-control.service])
-AC_OUTPUT
diff --git a/test/Makefile.am b/test/Makefile.am
deleted file mode 100644
index d7d4d9d..0000000
--- a/test/Makefile.am
+++ /dev/null
@@ -1,85 +0,0 @@
-AM_CPPFLAGS = \
-	-I$(top_srcdir)/ \
-	$(GTEST_CFLAGS) \
-	$(GMOCK_CFLAGS) \
-	$(SDBUSPLUS_CFLAGS) \
-	$(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
-	$(PHOSPHOR_LOGGING_CFLAGS) \
-	$(CODE_COVERAGE_CPPFLAGS)
-AM_CFLAGS = \
-	$(CODE_COVERAGE_CFLAGS)
-AM_CXXFLAGS = \
-	$(CODE_COVERAGE_CXXFLAGS)
-AM_LDFLAGS = \
-	$(GTEST_LIBS) \
-	$(GMOCK_LIBS) \
-	-lgmock_main \
-	$(OESDK_TESTCASE_FLAGS) \
-	$(SDBUSPLUS_LIBS) \
-	$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
-	$(PHOSPHOR_LOGGING_LIBS) \
-	$(CODE_COVERAGE_LIBS)
-
-# Run all 'check' test programs
-check_PROGRAMS = sensor_manager_unittest sensor_pluggable_unittest \
- sensor_host_unittest util_unittest pid_zone_unittest \
- pid_thermalcontroller_unittest pid_fancontroller_unittest \
- pid_stepwisecontroller_unittest \
- dbus_passive_unittest dbus_active_unittest dbus_util_unittest \
- sensors_json_unittest pid_json_unittest json_parse_unittest
-TESTS = $(check_PROGRAMS)
-
-# Until libconfig is mocked out or replaced, include it.
-sensor_manager_unittest_SOURCES = sensor_manager_unittest.cpp
-sensor_manager_unittest_LDADD = $(top_builddir)/sensors/manager.o
-
-sensor_pluggable_unittest_SOURCES = sensor_pluggable_unittest.cpp
-sensor_pluggable_unittest_LDADD = $(top_builddir)/sensors/pluggable.o
-
-sensor_host_unittest_SOURCES = sensor_host_unittest.cpp
-sensor_host_unittest_LDADD = $(top_builddir)/sensors/host.o
-
-util_unittest_SOURCES = util_unittest.cpp
-util_unittest_LDADD = $(top_builddir)/sensors/build_utils.o
-
-pid_zone_unittest_SOURCES = pid_zone_unittest.cpp
-pid_zone_unittest_LDADD = $(top_builddir)/pid/ec/pid.o \
- $(top_builddir)/pid/ec/logging.o \
- $(top_builddir)/sensors/manager.o $(top_builddir)/pid/pidcontroller.o \
- $(top_builddir)/pid/zone.o $(top_builddir)/pid/tuning.o
-
-pid_thermalcontroller_unittest_SOURCES = pid_thermalcontroller_unittest.cpp
-pid_thermalcontroller_unittest_LDADD = $(top_builddir)/pid/ec/pid.o \
- $(top_builddir)/pid/ec/logging.o $(top_builddir)/pid/tuning.o \
- $(top_builddir)/pid/util.o $(top_builddir)/pid/pidcontroller.o \
- $(top_builddir)/pid/thermalcontroller.o
-
-pid_stepwisecontroller_unittest_SOURCES = pid_stepwisecontroller_unittest.cpp
-pid_stepwisecontroller_unittest_LDADD = $(top_builddir)/pid/ec/stepwise.o \
- $(top_builddir)/pid/util.o $(top_builddir)/pid/stepwisecontroller.o \
- $(top_builddir)/pid/tuning.o
-
-pid_fancontroller_unittest_SOURCES = pid_fancontroller_unittest.cpp
-pid_fancontroller_unittest_LDADD = $(top_builddir)/pid/ec/pid.o \
- $(top_builddir)/pid/ec/logging.o \
- $(top_builddir)/pid/util.o $(top_builddir)/pid/pidcontroller.o \
- $(top_builddir)/pid/fancontroller.o $(top_builddir)/pid/tuning.o
-
-dbus_passive_unittest_SOURCES = dbus_passive_unittest.cpp
-dbus_passive_unittest_LDADD = $(top_builddir)/dbus/dbusutil.o \
- $(top_builddir)/dbus/dbuspassive.o $(top_builddir)/dbus/dbuspassiveredundancy.o
-
-dbus_active_unittest_SOURCES = dbus_active_unittest.cpp
-dbus_active_unittest_LDADD = $(top_builddir)/dbus/dbusactiveread.o
-
-dbus_util_unittest_SOURCES = dbus_util_unittest.cpp
-dbus_util_unittest_LDADD = $(top_builddir)/dbus/dbusutil.o
-
-sensors_json_unittest_SOURCES = sensors_json_unittest.cpp
-sensors_json_unittest_LDADD = $(top_builddir)/sensors/buildjson.o
-
-pid_json_unittest_SOURCES = pid_json_unittest.cpp
-pid_json_unittest_LDADD = $(top_builddir)/pid/buildjson.o
-
-json_parse_unittest_SOURCES = json_parse_unittest.cpp
-json_parse_unittest_LDADD = $(top_builddir)/buildjson/buildjson.o
