diff options
author | Philip Withnall <philip.withnall@collabora.co.uk> | 2015-01-29 15:00:54 +0000 |
---|---|---|
committer | Peter Simons <simons@cryp.to> | 2015-02-04 12:08:50 +0100 |
commit | 838f290af6485cbb54226a65edf3200e5e709ed8 (patch) | |
tree | 7e97d2438fdd9fe5b6066e90e3e3d8278199dd78 /m4/ax_is_release.m4 | |
parent | 36285eed3f7e49b42330ea927d44e48465170a52 (diff) | |
download | autoconf-archive-838f290af6485cbb54226a65edf3200e5e709ed8.tar.gz |
ax_is_release: Add AX_IS_RELEASE to check for compiling release tarballs
This is a macro providing various different policies for determining
whether the code being configured and compiled is from a stable release,
or from a development version. This allows various configuration
settings, such as whether debug is enabled, to be disabled for stable
releases.
A typical example of a policy is to enable stable releases when the .git
directory is not present.
Diffstat (limited to 'm4/ax_is_release.m4')
-rw-r--r-- | m4/ax_is_release.m4 | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/m4/ax_is_release.m4 b/m4/ax_is_release.m4 new file mode 100644 index 0000000..c495176 --- /dev/null +++ b/m4/ax_is_release.m4 @@ -0,0 +1,60 @@ +# =================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_is_release.html +# =================================================================== +# +# SYNOPSIS +# +# AX_IS_RELEASE(POLICY) +# +# DESCRIPTION +# +# Determine whether the code is being configured as a release, or from git. +# Set the ax_is_release variable to 'yes' or 'no'. +# +# If building a release version, it is recommended that the configure script +# disable compiler errors and debug features, by conditionalising them on +# the ax_is_release variable. If building from git, these features should +# be enabled. +# +# The POLICY parameter specifies how ax_is_release is determined. It can +# take the following values: +# +# * git-directory: ax_is_release will be 'no' if a '.git' directory exists +# * minor-version: ax_is_release will be 'no' if the minor version number +# in $PACKAGE_VERSION is odd; this assumes +# $PACKAGE_VERSION follows the 'major.minor.micro' scheme +# * always: ax_is_release will always be 'yes' +# * never: ax_is_release will always be 'no' +# +# Other policies may be added in future. +# +# LICENSE +# +# Copyright (c) 2015 Philip Withnall <philip@tecnocode.co.uk> +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. + +#serial 1 + +AC_DEFUN([AX_IS_RELEASE],[ + AC_BEFORE([AC_INIT],[$0]) + + m4_case([$1], + [git-directory],[ + # $is_release = (.git directory does not exist) + AS_IF([test -d .git],[ax_is_release=no],[ax_is_release=yes]) + ], + [minor-version],[ + # $is_release = ($minor_version is even) + minor_version=`echo "$PACKAGE_VERSION" | sed 's/[[^.]][[^.]]*.\([[^.]][[^.]]*\).*/\1/'` + AS_IF([test "$(( $minor_version % 2 ))" -ne 0], + [ax_is_release=no],[ax_is_release=yes]) + ], + [always],[ax_is_release=yes], + [never],[ax_is_release=no], + [ + AC_MSG_ERROR([Invalid policy. Valid policies: git-directory, minor-version.]) + ]) +]) |