diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..67566fc
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,154 @@
+# Initialization
+AC_PREREQ([2.69])
+AC_INIT([sdeventplus], [0.1], [https://github.com/openbmc/sdeventplus/issues])
+AC_LANG([C++])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_MACRO_DIRS([m4])
+AC_CONFIG_AUX_DIR([build-aux])
+AM_INIT_AUTOMAKE([foreign subdir-objects -Wall -Werror dist-xz tar-ustar])
+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_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
+
+# Checks for libtool
+LT_INIT # Removes 'unrecognized options: --with-libtool-sysroot'
+
+# Make sure the pkgconfigdata is configured for automake
+PKG_INSTALLDIR
+
+# Checks for typedefs, structures, and compiler characteristics.
+AX_CXX_COMPILE_STDCXX([14], [noext], [mandatory])
+AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wpedantic], [CFLAGS])
+AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wpedantic], [CXXFLAGS])
+
+# We require systemd unconditionally
+AX_PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 218])
+
+AX_SAVE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
+AX_APPEND_COMPILE_FLAGS([$SYSTEMD_CFLAGS], [CPPFLAGS])
+AC_CHECK_HEADERS([systemd/sd-event.h], [],
+    [AC_MSG_ERROR([Could not find systemd/sd-event.h])])
+AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
+
+AX_SAVE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
+AX_APPEND_COMPILE_FLAGS([$SYSTEMD_LIBS], [LDFLAGS])
+AC_CHECK_LIB([systemd], [sd_event_default], [], [
+    AC_MSG_ERROR([Could not find sd_event_default in libsystemd])
+])
+AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
+
+# 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_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])
+])
+
+# Check for valgrind
+AS_IF([test "x$enable_tests" != "xno"], [
+    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
+AS_IF([test "x$enable_tests" != "xno"], [
+    AX_CODE_COVERAGE
+    AM_EXTRA_RECURSIVE_TARGETS([check-code-coverage])
+])
+
+# Append -Werror after doing autoconf compiler checks
+# Otherwise some perfectly valid checks can fail and cause our
+# final configuratin to be broken.
+AC_ARG_ENABLE([werror], [Whether to automatically add -Werror CFLAGS])
+AS_IF([test "x$enable_tests" != "xno"], [
+    AX_APPEND_COMPILE_FLAGS([-Werror], [CFLAGS])
+    AX_APPEND_COMPILE_FLAGS([-Werror], [CXXFLAGS])
+])
+
+# Create configured output
+AC_CONFIG_FILES([Makefile example/Makefile src/Makefile test/Makefile])
+AC_CONFIG_FILES([src/sdeventplus.pc])
+AC_OUTPUT
