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 nostdinc subdir-objects check-news color-tests])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
# 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!
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]]),
# 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