make libsigrokdecode optional
[sigrok-cli.git] / configure.ac
index b939a84d48128f9e09863f52ed1d755fbc719558..a2d11f9de99279e862e107d5bd78da9775b779c1 100644 (file)
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ##
 
-AC_PREREQ(2.61)
+# We require at least autoconf 2.63 (AC_INIT format changed there).
+AC_PREREQ([2.63])
 
-AC_INIT([sigrok-cli], [0.1], [sigrok-devel@lists.sourceforge.net],
-        [sigrok-cli], [http://www.sigrok.org])
+AC_INIT([sigrok-cli], [0.3.1], [sigrok-devel@lists.sourceforge.net],
+       [sigrok-cli], [http://www.sigrok.org])
 
 AC_CONFIG_SRCDIR([sigrok-cli.c])
 
@@ -28,14 +29,17 @@ AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_MACRO_DIR([autostuff])
 AC_CONFIG_AUX_DIR([autostuff])
 
-AM_INIT_AUTOMAKE([-Wall -Werror foreign std-options])
+# We require at least automake 1.11 (needed for 'silent rules').
+AM_INIT_AUTOMAKE([1.11 -Wall -Werror foreign std-options])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
 
-AH_TOP([#ifndef SGIROK_CLI_CONFIG_H
+AH_TOP([#ifndef SIGROK_CLI_CONFIG_H
 #define SIGROK_CLI_CONFIG_H    /* To stop multiple inclusions. */])
 AH_BOTTOM([#endif /* SIGROK_CLI_CONFIG_H */])
 
-CFLAGS="-g -Wall -Wextra"
+# Enable more compiler warnings via -Wall and -Wextra.
+CFLAGS="$CFLAGS -Wall -Wextra"
 
 # Checks for programs.
 AC_PROG_CC
@@ -51,14 +55,26 @@ LT_INIT
 PKG_PROG_PKG_CONFIG([0.22])
 
 # 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)
 
-PKG_CHECK_MODULES([libsigrok], [libsigrok],
+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"])
 
-PKG_CHECK_MODULES([libsigrokdecode], [libsigrokdecode],
-       [CFLAGS="$CFLAGS $libsigrokdecode_CFLAGS";
-       LIBS="$LIBS $libsigrokdecode_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.
@@ -83,7 +99,35 @@ AC_SUBST(MAKEFLAGS, '--no-print-directory')
 AC_SUBST(AM_LIBTOOLFLAGS, '--silent')
 
 AC_CONFIG_FILES([Makefile
+                contrib/Makefile
+                contrib/sigrok-cli.nsi
                 doc/Makefile])
 
 AC_OUTPUT
 
+echo
+echo "sigrok-cli configuration summary:"
+echo
+echo "  - Package version: $VERSION"
+echo "  - Prefix: $prefix"
+echo
+echo "Detected libraries:"
+echo
+
+# Note: This only works for libs with pkg-config integration.
+for lib in "glib-2.0" "libsigrok" "libsigrokdecode"; do
+       if test "$lib" = "libsigrokdecode" -a "$WITH_SRD" != "yes" ; then
+               answer="no"
+       else
+               if `$PKG_CONFIG --exists $lib`; then
+                       ver=`$PKG_CONFIG --modversion $lib`
+                       answer="yes ($ver)"
+               else
+                       answer="no"
+               fi
+       fi
+       echo "  - $lib: $answer"
+done
+
+echo
+