X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=configure.ac;h=a5a309b10a12bad7ced14e86902043760a78df69;hb=8b2a184327900fd7d08bb09f58699d62e2578eea;hp=45ee40cf00e0de0d5b0aa72e8359fcf7cadf0b97;hpb=c1aae90038456a61d0f9313d34e6107c3440d3e7;p=libsigrok.git diff --git a/configure.ac b/configure.ac index 45ee40cf..a5a309b1 100644 --- a/configure.ac +++ b/configure.ac @@ -25,17 +25,16 @@ AC_PREREQ([2.63]) m4_define([sr_package_version_major], [0]) 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 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]]), @@ -551,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