-dnl as-version.m4 0.1.0
+dnl as-version.m4 0.2.0
dnl autostars m4 macro for versioning
dnl Thomas Vander Stichele <thomas at apestaart dot org>
-dnl $Id: as-version.m4,v 1.14 2005/09/15 05:51:34 ds Exp $
+dnl $Id: as-version.m4,v 1.15 2006/04/01 09:40:24 thomasvs Exp $
-dnl AS_VERSION(PACKAGE, PREFIX, MAJOR, MINOR, MICRO, NANO,
-dnl ACTION-IF-NO-NANO, [ACTION-IF-NANO])
+dnl AS_VERSION
dnl example
-dnl AS_VERSION(gstreamer, GST_VERSION, 0, 3, 2,)
-dnl for a 0.3.2 release version
+dnl AS_VERSION
dnl this macro
-dnl - defines [$PREFIX]_MAJOR, MINOR and MICRO
-dnl - if NANO is empty, then we're in release mode, else in cvs/dev mode
-dnl - defines [$PREFIX], VERSION, and [$PREFIX]_RELEASE
-dnl - executes the relevant action
-dnl - AC_SUBST's PACKAGE, VERSION, [$PREFIX] and [$PREFIX]_RELEASE
-dnl as well as the little ones
+dnl - AC_SUBST's PACKAGE_VERSION_MAJOR, _MINOR, _MICRO
+dnl - AC_SUBST's PACKAGE_VERSION_RELEASE,
+dnl which can be used for rpm release fields
dnl - doesn't call AM_INIT_AUTOMAKE anymore because it prevents
-dnl maintainer mode from running ok
+dnl maintainer mode from running correctly
dnl
-dnl don't forget to put #undef [$2] and [$2]_RELEASE in acconfig.h
+dnl don't forget to put #undef PACKAGE_VERSION_RELEASE in acconfig.h
dnl if you use acconfig.h
AC_DEFUN([AS_VERSION],
[
- PACKAGE=[$1]
- [$2]_MAJOR=[$3]
- [$2]_MINOR=[$4]
- [$2]_MICRO=[$5]
- NANO=[$6]
- [$2]_NANO=$NANO
- if test "x$NANO" = "x" || test "x$NANO" = "x0";
- then
- AC_MSG_NOTICE(configuring [$1] for release)
- VERSION=[$3].[$4].[$5]
- [$2]_RELEASE=1
- dnl execute action
- ifelse([$7], , :, [$7])
- else
- AC_MSG_NOTICE(configuring [$1] for development with nano $NANO)
- VERSION=[$3].[$4].[$5].$NANO
- [$2]_RELEASE=0.`date +%Y%m%d.%H%M%S`
- dnl execute action
- ifelse([$8], , :, [$8])
- fi
+ PACKAGE_VERSION_MAJOR=$(echo AC_PACKAGE_VERSION | cut -d'.' -f1)
+ PACKAGE_VERSION_MINOR=$(echo AC_PACKAGE_VERSION | cut -d'.' -f2)
+ PACKAGE_VERSION_MICRO=$(echo AC_PACKAGE_VERSION | cut -d'.' -f3)
+
+ AC_SUBST(PACKAGE_VERSION_MAJOR)
+ AC_SUBST(PACKAGE_VERSION_MINOR)
+ AC_SUBST(PACKAGE_VERSION_MICRO)
+])
+
+dnl AS_NANO(ACTION-IF-NO-NANO, [ACTION-IF-NANO])
+
+dnl requires AC_INIT to be called before
+dnl For projects using a fourth or nano number in your versioning to indicate
+dnl development or prerelease snapshots, this macro allows the build to be
+dnl set up differently accordingly.
- [$2]=$VERSION
- AC_DEFINE_UNQUOTED([$2], "$[$2]", [Define the version])
- AC_SUBST([$2])
- AC_SUBST([$2]_RELEASE)
+dnl this macro:
+dnl - parses AC_PACKAGE_VERSION, set by AC_INIT, and extracts the nano number
+dnl - sets the variable PACKAGE_VERSION_NANO
+dnl - sets the variable PACKAGE_VERSION_RELEASE, which can be used
+dnl for rpm release fields
+dnl - executes ACTION-IF-NO-NANO or ACTION-IF-NANO
+
+dnl example:
+dnl AS_NANO(RELEASE="yes", RELEASE="no")
- AC_SUBST([$2]_MAJOR)
- AC_SUBST([$2]_MINOR)
- AC_SUBST([$2]_MICRO)
- AC_SUBST([$2]_NANO)
- AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Define the package name])
- AC_SUBST(PACKAGE)
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Define the version])
- AC_SUBST(VERSION)
+AC_DEFUN([AS_NANO],
+[
+ AC_MSG_CHECKING(nano version)
+
+ NANO=$(echo AC_PACKAGE_VERSION | cut -d'.' -f4)
+
+ if test x"$NANO" = x || test "x$NANO" = "x0" ; then
+ AC_MSG_RESULT([0 (release)])
+ NANO=0
+ PACKAGE_VERSION_RELEASE=1
+ ifelse([$1], , :, [$1])
+ else
+ AC_MSG_RESULT($NANO)
+ PACKAGE_VERSION_RELEASE=0.`date +%Y%m%d.%H%M%S`
+ ifelse([$2], , :, [$2])
+ fi
+ PACKAGE_VERSION_NANO=$NANO
+ AC_SUBST(PACKAGE_VERSION_NANO)
+ AC_SUBST(PACKAGE_VERSION_RELEASE)
])