X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=configure.ac;h=9da847752390f866f3fbab1e07921a1acbcf754b;hb=122322a9ba21f755f1efe36df0288c125052e99b;hp=9477426aa1ea989fd54a29716bbed279e70196fd;hpb=025f6ed862b3a1dc8aa5deb3e44b4c2230ef3aa6;p=libsigrok.git diff --git a/configure.ac b/configure.ac index 9477426a..9da84775 100644 --- a/configure.ac +++ b/configure.ac @@ -23,19 +23,18 @@ AC_PREREQ([2.63]) # libsigrok package version number (NOT the same as shared lib version!). m4_define([sr_package_version_major], [0]) -m4_define([sr_package_version_minor], [3]) +m4_define([sr_package_version_minor], [4]) m4_define([sr_package_version_micro], [0]) -m4_define([sr_package_version_suffix], [-git]) -m4_define([sr_package_version], [sr_package_version_major.sr_package_version_minor.sr_package_version_micro[]sr_package_version_suffix]) -AC_INIT([libsigrok], [sr_package_version], [sigrok-devel@lists.sourceforge.net], +AC_INIT([libsigrok], [sr_package_version_major.sr_package_version_minor.sr_package_version_micro], + [sigrok-devel@lists.sourceforge.net], [libsigrok], [http://www.sigrok.org]) -AC_CONFIG_HEADER([config.h]) +AC_CONFIG_HEADERS([config.h include/libsigrok/version.h]) AC_CONFIG_MACRO_DIR([autostuff]) AC_CONFIG_AUX_DIR([autostuff]) # We require at least automake 1.11 (needed for 'silent rules'). -AM_INIT_AUTOMAKE([1.11 -Wall -Werror subdir-objects check-news color-tests]) +AM_INIT_AUTOMAKE([1.11 -Wall -Werror no-define nostdinc subdir-objects check-news color-tests]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) @@ -66,6 +65,31 @@ LT_INIT # We require at least 0.22, as "Requires.private" behaviour changed there. PKG_PROG_PKG_CONFIG([0.22]) +CONFIG_STATUS_DEPENDENCIES= +SR_PACKAGE_VERSION="AC_PACKAGE_VERSION" + +# Check if we can get revision information from git. +sr_head=`git -C "$srcdir" rev-parse --verify --short HEAD 2>&AS_MESSAGE_LOG_FD` + +AS_IF([test "$?" -eq 0 && test -n "$sr_head"], [ + CONFIG_STATUS_DEPENDENCIES='$(top_srcdir)/.git/HEAD' + sr_head_name=`git -C "$srcdir" rev-parse --symbolic-full-name HEAD 2>&AS_MESSAGE_LOG_FD` + AS_IF([test "$?" -eq 0 && test -f "$srcdir/.git/$sr_head_name"], + [CONFIG_STATUS_DEPENDENCIES="$CONFIG_STATUS_DEPENDENCIES \$(top_srcdir)/.git/$sr_head_name"]) + + # Append the revision hash unless we are exactly on a tagged release. + git -C "$srcdir" describe --match 'AC_PACKAGE_NAME-AC_PACKAGE_VERSION' \ + --exact-match >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD \ + || SR_PACKAGE_VERSION="$SR_PACKAGE_VERSION-git-$sr_head" +]) +AC_SUBST([CONFIG_STATUS_DEPENDENCIES]) +AC_SUBST([SR_PACKAGE_VERSION]) + +AC_DEFINE([SR_PACKAGE_VERSION_MAJOR], [sr_package_version_major], [.]) +AC_DEFINE([SR_PACKAGE_VERSION_MINOR], [sr_package_version_minor], [.]) +AC_DEFINE([SR_PACKAGE_VERSION_MICRO], [sr_package_version_micro], [.]) +AC_DEFINE_UNQUOTED([SR_PACKAGE_VERSION_STRING], ["$SR_PACKAGE_VERSION"], [.]) + # 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! @@ -73,13 +97,14 @@ PKG_PROG_PKG_CONFIG([0.22]) SR_LIB_VERSION_CURRENT=2 SR_LIB_VERSION_REVISION=0 SR_LIB_VERSION_AGE=0 -SR_LIB_VERSION="$SR_LIB_VERSION_CURRENT:$SR_LIB_VERSION_REVISION:$SR_LIB_VERSION_AGE" -SR_LIB_LDFLAGS="-version-info $SR_LIB_VERSION" -AC_SUBST(SR_LIB_VERSION_CURRENT) -AC_SUBST(SR_LIB_VERSION_REVISION) -AC_SUBST(SR_LIB_VERSION_AGE) -AC_SUBST(SR_LIB_VERSION) -AC_SUBST(SR_LIB_LDFLAGS) + +AC_SUBST([SR_LIB_VERSION], ["$SR_LIB_VERSION_CURRENT:$SR_LIB_VERSION_REVISION:$SR_LIB_VERSION_AGE"]) +AC_SUBST([SR_LIB_LDFLAGS], ["-version-info $SR_LIB_VERSION"]) + +AC_DEFINE_UNQUOTED([SR_LIB_VERSION_CURRENT], [$SR_LIB_VERSION_CURRENT], [.]) +AC_DEFINE_UNQUOTED([SR_LIB_VERSION_REVISION], [$SR_LIB_VERSION_REVISION], [.]) +AC_DEFINE_UNQUOTED([SR_LIB_VERSION_AGE], [$SR_LIB_VERSION_AGE], [.]) +AC_DEFINE_UNQUOTED([SR_LIB_VERSION_STRING], ["$SR_LIB_VERSION"], [.]) AC_ARG_ENABLE(all-drivers, AC_HELP_STRING([--enable-all-drivers], [enable all drivers by default [default=yes]]), @@ -261,6 +286,8 @@ AC_DEFINE_UNQUOTED(HAVE_RPC, [$have_rpc], [Specifies whether we have RPC support # VXI support is only compiled if RPC support was found. AM_CONDITIONAL(NEED_RPC, test "x$have_rpc" != "x0") +AC_DEFINE_UNQUOTED(HOST, ["$host"], [.]) + # libglib-2.0 is always needed. Abort if it's not found. # Note: glib-2.0 is part of the libsigrok API (hard pkg-config requirement). # We require at least 2.32.0 due to e.g. g_variant_new_fixed_array(). @@ -271,6 +298,8 @@ AM_PATH_GLIB_2_0([2.32.0], PKG_CHECK_MODULES([libzip], [libzip >= 0.10], [LIB_CFLAGS="$LIB_CFLAGS $libzip_CFLAGS"; LIBS="$LIBS $libzip_LIBS"; SR_PKGLIBS="$SR_PKGLIBS libzip"]) +libzip_ver=`$PKG_CONFIG --modversion libzip` +AC_DEFINE_UNQUOTED(HAVE_LIBZIP_VER, ["$libzip_ver"], [.]) # libserialport is only needed for some hardware drivers. Disable the # respective drivers if it is not found. @@ -315,6 +344,8 @@ if test "x$have_librevisa" != "xno"; then # Define HAVE_LIBREVISA in config.h if we found librevisa. AC_DEFINE_UNQUOTED(HAVE_LIBREVISA, [1], [Specifies whether we have librevisa.]) + librevisa_ver=`$PKG_CONFIG --modversion librevisa` + AC_DEFINE_UNQUOTED(HAVE_LIBREVISA_VER, ["$librevisa_ver"], [.]) fi # The GPIB SCPI backend is only compiled in if libgpib is found. @@ -328,6 +359,8 @@ if test "x$have_libgpib" != "xno"; then # Define HAVE_LIBGPIB in config.h if we found libgpib. AC_DEFINE_UNQUOTED(HAVE_LIBGPIB, [1], [Specifies whether we have libgpib.]) + libgpib_ver=`$PKG_CONFIG --modversion libgpib` + AC_DEFINE_UNQUOTED(HAVE_LIBGPIB_VER, ["$libgpib_ver"], [.]) fi # libusb-1.0 is only needed for some hardware drivers. Disable the respective @@ -374,12 +407,13 @@ AM_CONDITIONAL(NEED_USB, test "x$have_libusb1_0" != xno) if test "x$enable_libftdi" != "xno"; then PKG_CHECK_MODULES([libftdi], [libftdi >= 0.16], [have_libftdi="yes"; LIB_CFLAGS="$LIB_CFLAGS $libftdi_CFLAGS"; - LIBS="$LIBS $libftdi_LIBS"; - SR_PKGLIBS="$SR_PKGLIBS libftdi"], + LIBS="$LIBS $libftdi_LIBS"; SR_PKGLIBS="$SR_PKGLIBS libftdi"; + libftdi_ver=`$PKG_CONFIG --modversion libftdi`], [PKG_CHECK_MODULES([libftdi1], [libftdi1 >= 1.0], [LIB_CFLAGS="$LIB_CFLAGS $libftdi1_CFLAGS"; LIBS="$LIBS $libftdi1_LIBS"; - SR_PKGLIBS="$SR_PKGLIBS libftdi1"], + SR_PKGLIBS="$SR_PKGLIBS libftdi1"; + libftdi_ver=`$PKG_CONFIG --modversion libftdi1`], [have_libftdi="no"])]) if test "x$enable_libftdi$have_libftdi" = "xyesno"; then AC_MSG_ERROR([libftdi support requested, but it was not found.]) @@ -390,6 +424,11 @@ fi if test "x$have_libftdi" = "xno"; then HW_ASIX_SIGMA="no"; HW_CHRONOVU_LA="no"; HW_IKALOGIC_SCANAPLUS="no"; HW_PIPISTRELLO_OLS="no"; +else + # Define HAVE_LIBFTDI in config.h if we found libftdi. + AC_DEFINE_UNQUOTED(HAVE_LIBFTDI, [1], + [Specifies whether we have libftdi.]) + AC_DEFINE_UNQUOTED(HAVE_LIBFTDI_VER, ["$libftdi_ver"], [.]) fi # glibmm-2.4 is needed for the C++ bindings. @@ -430,6 +469,10 @@ AM_CONDITIONAL(HAVE_CHECK, test x"$have_check" = "xyes") # build it if these headers aren't available. AC_CHECK_HEADERS([sys/mman.h sys/ioctl.h], [], [HW_BEAGLELOGIC="no"]) +# The BayLibre ACME driver needs sys/timerfd.h. Don't try to build it if +# this header isn't available. +AC_CHECK_HEADERS([sys/timerfd.h], [], [HW_BAYLIBRE_ACME="no"]) + # The ACME driver can only be built for Linux. case "$host" in *linux*) ;; @@ -438,8 +481,8 @@ esac AC_SUBST(SR_PKGLIBS) -CFLAGS="$CFLAGS -Iinclude/libsigrok -I${srcdir}/include/libsigrok $LIB_CFLAGS" -CXXFLAGS="$CXXFLAGS -Iinclude/libsigrok -I${srcdir}/include -Ibindings/cxx -Ibindings/cxx/include/libsigrokcxx -I${srcdir}/bindings/cxx/include $LIB_CFLAGS" +CFLAGS="$CFLAGS $LIB_CFLAGS" +CXXFLAGS="$CXXFLAGS $LIB_CFLAGS" # Find Java compiler and JNI includes for Java bindings. AC_CHECK_PROG([HAVE_JAVAC], [javac], [yes], [no]) @@ -533,22 +576,11 @@ AM_CONDITIONAL(BINDINGS_JAVA, test x$BINDINGS_JAVA = xyes) # Checks for typedefs, structures, and compiler characteristics. AC_C_BIGENDIAN -AC_SUBST(FIRMWARE_DIR, "$datadir/sigrok-firmware") +AC_SUBST([FIRMWARE_DIR], ['$(datadir)/sigrok-firmware']) AC_SUBST(MAKEFLAGS, '--no-print-directory') AC_SUBST(AM_LIBTOOLFLAGS, '--silent') -SR_PACKAGE_VERSION_MAJOR=sr_package_version_major -SR_PACKAGE_VERSION_MINOR=sr_package_version_minor -SR_PACKAGE_VERSION_MICRO=sr_package_version_micro -SR_PACKAGE_VERSION=sr_package_version - -AC_SUBST(SR_PACKAGE_VERSION_MAJOR) -AC_SUBST(SR_PACKAGE_VERSION_MINOR) -AC_SUBST(SR_PACKAGE_VERSION_MICRO) -AC_SUBST(SR_PACKAGE_VERSION) - -AC_CONFIG_FILES([Makefile include/libsigrok/version.h libsigrok.pc - bindings/cxx/libsigrokcxx.pc]) +AC_CONFIG_FILES([Makefile libsigrok.pc bindings/cxx/libsigrokcxx.pc]) AC_OUTPUT