-# Checks for libraries.
-AC_ARG_WITH([libsigrokdecode],
- AS_HELP_STRING([--with-libsigrokdecode],
- [compile with libsigrokdecode support]),
- [WITH_SRD=$enableval],[WITH_SRD=yes])
-AM_CONDITIONAL(WITH_SRD, test x$WITH_SRD = xyes)
-
-AM_PATH_GLIB_2_0([2.28.0],
- [CFLAGS="$CFLAGS $GLIB_CFLAGS"; LIBS="$LIBS $GLIB_LIBS"])
-
-PKG_CHECK_MODULES([libsigrok], [libsigrok >= 0.2.0],
- [CFLAGS="$CFLAGS $libsigrok_CFLAGS";
- LIBS="$LIBS $libsigrok_LIBS"])
-
-if test "x$WITH_SRD" = "xyes"; then
- PKG_CHECK_MODULES([libsigrokdecode], [libsigrokdecode >= 0.1.0],
- [CFLAGS="$CFLAGS $libsigrokdecode_CFLAGS";
- LIBS="$LIBS $libsigrokdecode_LIBS";
- AC_DEFINE(HAVE_SRD, [1], [libsigrokdecode is available.])]
- )
-fi
-
-# Checks for header files.
-# These are already checked: inttypes.h stdint.h stdlib.h string.h unistd.h.
-AC_CHECK_HEADERS([sys/time.h termios.h])
-
-# Checks for typedefs, structures, and compiler characteristics.
-AC_C_INLINE
-AC_TYPE_INT8_T
-AC_TYPE_INT16_T
-AC_TYPE_INT32_T
-AC_TYPE_INT64_T
-AC_TYPE_UINT8_T
-AC_TYPE_UINT16_T
-AC_TYPE_UINT32_T
-AC_TYPE_UINT64_T
-AC_TYPE_SIZE_T
-
-# Checks for library functions.
-AC_CHECK_FUNCS([strcasecmp strchr strerror strstr strtol])
-
-AC_SUBST(MAKEFLAGS, '--no-print-directory')
-AC_SUBST(AM_LIBTOOLFLAGS, '--silent')
-
-AC_CONFIG_FILES([Makefile
- contrib/Makefile
- contrib/sigrok-cli.nsi
- doc/Makefile])
+# Keep track of all checked modules so we can list them at the end.
+SR_PKG_CHECK_SUMMARY([sc_pkglibs_summary])
+
+# Collect the pkg-config module names of all dependencies.
+SR_VAR_OPT_PKG([SC_PKGLIBS])
+
+SR_ARG_OPT_PKG([libsigrokdecode], [SRD],,
+ [libsigrokdecode >= 0.4.0])
+
+######################
+## Feature checks ##
+######################
+
+AC_LANG([C])
+
+# Enable the C99 standard if possible.
+SC_EXTRA_CFLAGS=
+SR_CHECK_COMPILE_FLAGS([SC_EXTRA_CFLAGS], [C99],
+ [-std=c99 -c99 -AC99 -qlanglvl=extc99])
+
+SR_ARG_ENABLE_WARNINGS([SC_WFLAGS], [-Wall], [-Wall -Wextra])
+
+# Check host characteristics.
+AC_SYS_LARGEFILE
+
+##############################
+## Finalize configuration ##
+##############################
+
+# Retrieve the compile and link flags for all modules combined.
+# Also, bail out at this point if any module dependency is not met.
+PKG_CHECK_MODULES([SIGROK_CLI],
+ [glib-2.0 >= 2.32.0 libsigrok >= 0.4.0 $SC_PKGLIBS])
+
+sc_glib_version=`$PKG_CONFIG --modversion glib-2.0 2>&AS_MESSAGE_LOG_FD`
+sc_libsigrok_version=`$PKG_CONFIG --modversion libsigrok 2>&AS_MESSAGE_LOG_FD`
+
+AC_CONFIG_FILES([Makefile contrib/sigrok-cli_cross.nsi])