## 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])
-m4_define([sigrok_major_version], [0])
-m4_define([sigrok_minor_version], [2])
-m4_define([sigrok_micro_version], [0])
-m4_define([sigrok_version],
- [sigrok_major_version.sigrok_minor_version.sigrok_micro_version])
+# libsigrok package version number (NOT the same as shared lib version!).
+m4_define([libsigrok_major_version], [0])
+m4_define([libsigrok_minor_version], [2])
+m4_define([libsigrok_micro_version], [0])
+m4_define([libsigrok_version], [libsigrok_major_version.libsigrok_minor_version.libsigrok_micro_version])
-AC_INIT([sigrok], [sigrok_version], [sigrok-devel@lists.sourceforge.net],
- [sigrok], [http://www.sigrok.org])
+AC_INIT([libsigrok], [libsigrok_version], [sigrok-devel@lists.sourceforge.net],
+ [libsigrok], [http://www.sigrok.org])
AC_CONFIG_HEADER([config.h])
-AC_CONFIG_MACRO_DIR([m4])
+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])])
-AH_TOP([#ifndef SGIROK_CONFIG_H
-#define SIGROK_CONFIG_H /* To stop multiple inclusions. */])
-AH_BOTTOM([#endif /* SIGROK_CONFIG_H */])
+AH_TOP([#ifndef LIBSIGROK_CONFIG_H
+#define LIBSIGROK_CONFIG_H /* To stop multiple inclusions. */])
+AH_BOTTOM([#endif /* LIBSIGROK_CONFIG_H */])
-CFLAGS="-g -Wall -Wextra"
+# Enable more compiler warnings via -Wall and -Wextra. Add -fvisibility=hidden
+# and enforce use of SR_API to explicitly mark all public API functions.
+CFLAGS="-g -Wall -Wextra -fvisibility=hidden"
# Checks for programs.
AC_PROG_CXX
# We require at least 0.22, as "Requires.private" behaviour changed there.
PKG_PROG_PKG_CONFIG([0.22])
-# Library version for libsigrok.
+# Library version for libsigrok (NOT the same as the package version).
# Carefully read the libtool docs before updating these numbers!
# The algorithm for determining which number to change (and how) is nontrivial!
# http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
-SIGROK_LT_CURRENT=0
-SIGROK_LT_REVISION=0
-SIGROK_LT_AGE=0
-SIGROK_LT_VERSION="$SIGROK_LT_CURRENT:$SIGROK_LT_REVISION:$SIGROK_LT_AGE"
-SIGROK_LT_LDFLAGS="-version-info $SIGROK_LT_VERSION"
-AC_SUBST(SIGROK_LT_LDFLAGS)
-
-# Library version for libsigrokdecode.
-# Carefully read the libtool docs before updating these numbers!
-# The algorithm for determining which number to change (and how) is nontrivial!
-# http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
-SIGROKDECODE_LT_CURRENT=0
-SIGROKDECODE_LT_REVISION=0
-SIGROKDECODE_LT_AGE=0
-SIGROKDECODE_LT_VERSION="$SIGROKDECODE_LT_CURRENT:$SIGROKDECODE_LT_REVISION:$SIGROKDECODE_LT_AGE"
-SIGROKDECODE_LT_LDFLAGS="-version-info $SIGROKDECODE_LT_VERSION"
-AC_SUBST(SIGROKDECODE_LT_LDFLAGS)
+LIBSIGROK_LT_CURRENT=0
+LIBSIGROK_LT_REVISION=0
+LIBSIGROK_LT_AGE=0
+LIBSIGROK_LT_VERSION="$LIBSIGROK_LT_CURRENT:$LIBSIGROK_LT_REVISION:$LIBSIGROK_LT_AGE"
+LIBSIGROK_LT_LDFLAGS="-version-info $LIBSIGROK_LT_VERSION"
+AC_SUBST(LIBSIGROK_LT_LDFLAGS)
# Logic analyzer hardware support '--enable' options.
# zlib is only needed for some hardware drivers.
if test "x$LA_ASIX_SIGMA" != xno; then
- PKG_CHECK_MODULES([zlib], [zlib >= 1.2.3.1],
- [CFLAGS="$CFLAGS $zlib_CFLAGS"; LIBS="$LIBS $zlib_LIBS";
- LIBSIGROK_PKGLIBS="$LIBSIGROK_PKGLIBS zlib"])
+ case "$build" in
+ *freebsd*)
+ # FreeBSD has zlib, but no pkg-config file for it.
+ # Check manually, and do NOT add it to LIBSIGROK_PKGLIBS.
+ AC_CHECK_LIB(z, uncompress)
+ ;;
+ *)
+ PKG_CHECK_MODULES([zlib], [zlib >= 1.2.3.1],
+ [CFLAGS="$CFLAGS $zlib_CFLAGS"; LIBS="$LIBS $zlib_LIBS";
+ LIBSIGROK_PKGLIBS="$LIBSIGROK_PKGLIBS zlib"])
+ ;;
+ esac
fi
# libftdi is only needed for some hardware drivers.
LIBSIGROK_PKGLIBS="$LIBSIGROK_PKGLIBS alsa"])
fi
-# Python support.
-CPPFLAGS_PYTHON=""
-LDFLAGS_PYTHON=""
-case "$build" in
-*linux*)
- # We know that Linux has 'python3-config'.
- CPPFLAGS_PYTHON="$(python3-config --includes)"
- LDFLAGS_PYTHON="$(python3-config --ldflags)"
- ;;
-*darwin*)
- # On Darwin, Macports has python3.x-config, fink has python3-config.
- # Mac OS X (Snow Leopard) ships with 'python-config' per default, but
- # that's Python 2.x, so not useful for us.
- if test -x python3-config; then
- # python3-config exists, use it.
- CPPFLAGS_PYTHON="$(python3-config --includes)"
- LDFLAGS_PYTHON="$(python3-config --ldflags)"
- else
- # No python3-config found, so try hardcoded python3.2-config.
- CPPFLAGS_PYTHON="$(python3.2-config --includes)"
- LDFLAGS_PYTHON="$(python3.2-config --ldflags)"
- fi
- ;;
-*mingw*)
- # We currently hardcode the paths to the Python 3.2 default install
- # location as there's no 'python-config' script on Windows, it seems.
- CPPFLAGS_PYTHON="-I/c/Python32/include"
- LDFLAGS_PYTHON="-L/c/Python32/libs -lpython32"
- ;;
-*)
- # Everything else is untested, we just hope 'python3-config' works.
- CPPFLAGS_PYTHON="$(python3-config --includes)"
- LDFLAGS_PYTHON="$(python3-config --ldflags)"
- ;;
-esac
-AC_SUBST(CPPFLAGS_PYTHON)
-AC_SUBST(LDFLAGS_PYTHON)
-
AC_SUBST(LIBSIGROK_PKGLIBS)
# Checks for header files.
# Checks for library functions.
AC_CHECK_FUNCS([gettimeofday memset strchr strcspn strdup strerror strncasecmp strstr strtol strtoul strtoull])
-AC_SUBST(FIRMWARE_DIR, "$datadir/sigrok/firmware")
-AC_SUBST(DECODERS_DIR, "$datadir/sigrok/decoders")
+AC_SUBST(FIRMWARE_DIR, "$datadir/libsigrok/firmware")
AC_SUBST(MAKEFLAGS, '--no-print-directory')
AC_SUBST(AM_LIBTOOLFLAGS, '--silent')
-SIGROK_MAJOR_VERSION=sigrok_major_version
-SIGROK_MINOR_VERSION=sigrok_minor_version
-SIGROK_MICRO_VERSION=sigrok_micro_version
-SIGROK_VERSION=sigrok_version
-
-AC_SUBST(SIGROK_MAJOR_VERSION)
-AC_SUBST(SIGROK_MINOR_VERSION)
-AC_SUBST(SIGROK_MICRO_VERSION)
-AC_SUBST(SIGROK_VERSION)
-
-AC_DEFINE(SIGROK_MAJOR_VERSION, [sigrok_major_version],
- [Define to the sigrok major version])
-AC_DEFINE(SIGROK_MINOR_VERSION, [sigrok_minor_version],
- [Define to the sigrok minor version])
-AC_DEFINE(SIGROK_MICRO_VERSION, [sigrok_micro_version],
- [Define to the sigrok micro version])
-AC_DEFINE(SIGROK_VERSION, [sigrok_version],
- [Define to the sigrok version])
+LIBSIGROK_MAJOR_VERSION=libsigrok_major_version
+LIBSIGROK_MINOR_VERSION=libsigrok_minor_version
+LIBSIGROK_MICRO_VERSION=libsigrok_micro_version
+LIBSIGROK_VERSION=libsigrok_version
+
+AC_SUBST(LIBSIGROK_MAJOR_VERSION)
+AC_SUBST(LIBSIGROK_MINOR_VERSION)
+AC_SUBST(LIBSIGROK_MICRO_VERSION)
+AC_SUBST(LIBSIGROK_VERSION)
+
+AC_DEFINE(LIBSIGROK_MAJOR_VERSION, [libsigrok_major_version],
+ [Define to the libsigrok major package version])
+AC_DEFINE(LIBSIGROK_MINOR_VERSION, [libsigrok_minor_version],
+ [Define to the libsigrok minor package version])
+AC_DEFINE(LIBSIGROK_MICRO_VERSION, [libsigrok_micro_version],
+ [Define to the libsigrok micro package version])
+AC_DEFINE(LIBSIGROK_VERSION, [libsigrok_version],
+ [Define to the libsigrok package version])
AC_CONFIG_FILES([Makefile
+ firmware/Makefile
+ hardware/Makefile
+ hardware/alsa/Makefile
+ hardware/asix-sigma/Makefile
+ hardware/chronovu-la8/Makefile
+ hardware/common/Makefile
+ hardware/demo/Makefile
+ hardware/link-mso19/Makefile
+ hardware/openbench-logic-sniffer/Makefile
+ hardware/saleae-logic/Makefile
+ hardware/zeroplus-logic-cube/Makefile
+ input/Makefile
+ output/Makefile
+ output/text/Makefile
+ libsigrok.pc
contrib/Makefile
- contrib/nsis/Makefile
- contrib/nsis/sigrok.nsi
- libsigrok/Makefile
- libsigrok/sigrok.h
- libsigrok/firmware/Makefile
- libsigrok/hardware/Makefile
- libsigrok/hardware/alsa/Makefile
- libsigrok/hardware/asix-sigma/Makefile
- libsigrok/hardware/chronovu-la8/Makefile
- libsigrok/hardware/common/Makefile
- libsigrok/hardware/demo/Makefile
- libsigrok/hardware/link-mso19/Makefile
- libsigrok/hardware/openbench-logic-sniffer/Makefile
- libsigrok/hardware/saleae-logic/Makefile
- libsigrok/hardware/zeroplus-logic-cube/Makefile
- libsigrok/input/Makefile
- libsigrok/output/Makefile
- libsigrok/output/text/Makefile
- libsigrok/libsigrok.pc
- libsigrok/contrib/Makefile
- libsigrokdecode/Makefile
- libsigrokdecode/libsigrokdecode.pc
- libsigrokdecode/decoders/Makefile
])
AC_OUTPUT
echo
-echo "Building drivers:"
+echo "libsigrok configuration summary:"
+echo
+echo " - Package version (major.minor.micro): $LIBSIGROK_VERSION"
+echo " - Library version (current:revision:age): $LIBSIGROK_LT_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" "gthread-2.0" "libusb-1.0" "libzip" "zlib" "libftdi" "libudev" "alsa"; do
+ if `$PKG_CONFIG --exists $lib`; then
+ ver=`$PKG_CONFIG --modversion $lib`
+ answer="yes ($ver)"
+ else
+ answer="no"
+ fi
+ echo " - $lib: $answer"
+done
+
+echo
+echo "Enabled hardware drivers:"
echo
-echo "ASIX SIGMA...................... " $LA_ASIX_SIGMA
-echo "ChronoVu LA8.................... " $LA_CHRONOVU_LA8
-echo "Link MSO-19..................... " $LA_LINK_MSO19
-echo "Openbench Logic Sniffer......... " $LA_OLS
-echo "Saleae Logic.................... " $LA_SALEAE_LOGIC
-echo "Zeroplus Logic Cube............. " $LA_ZEROPLUS_LOGIC_CUBE
+echo " - ASIX SIGMA...................... $LA_ASIX_SIGMA"
+echo " - ChronoVu LA8.................... $LA_CHRONOVU_LA8"
+echo " - Demo driver..................... $LA_DEMO"
+echo " - Link MSO-19..................... $LA_LINK_MSO19"
+echo " - Openbench Logic Sniffer......... $LA_OLS"
+echo " - Saleae Logic.................... $LA_SALEAE_LOGIC"
+echo " - Zeroplus Logic Cube............. $LA_ZEROPLUS_LOGIC_CUBE"
echo