aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2003-12-08 20:38:42 +0000
committerWerner Koch <[email protected]>2003-12-08 20:38:42 +0000
commit70b2139fb160a6d39c840d16a8f03f65fe898b57 (patch)
treef9a368b3d1ab4d1b858bdb548f1db5d6e85e22f1
parentAlso test for msgmerge to detect presence of gettext-dev. (diff)
downloadlibgpg-error-70b2139fb160a6d39c840d16a8f03f65fe898b57.tar.gz
libgpg-error-70b2139fb160a6d39c840d16a8f03f65fe898b57.zip
* README.CVS: Enhanced.
* autogen.sh: New. * Makefile.am (EXTRA_DIST): Added autogen.sh.
-rw-r--r--ChangeLog2
-rw-r--r--README.CVS35
-rwxr-xr-xautogen.sh98
-rw-r--r--configure.ac7
4 files changed, 93 insertions, 49 deletions
diff --git a/ChangeLog b/ChangeLog
index cea731b..0632ac8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
2003-12-08 Werner Koch <[email protected]>
+ * README.CVS: Enhanced.
+
* autogen.sh: New.
* Makefile.am (EXTRA_DIST): Added autogen.sh.
diff --git a/README.CVS b/README.CVS
index 18fb582..ae17923 100644
--- a/README.CVS
+++ b/README.CVS
@@ -3,21 +3,48 @@ If you are building from CVS, run the script
./autogen.sh
first, to make sure that you have all the necessary maintainer tools
-are installed and to build the actual configuration files. The run
+are installed and to build the actual configuration files. Then run
./configure --enable-maintainer-mode
followed by the usual make.
+If autogen.sh complains about insufficient versions of the required
+tools, or the tools are not installed, you may use environment
+variables to override the default tool names:
+
+ AUTOMAKE_SUFFIX is used as a suffix for all tools from the automake
+ package. For example
+ AUTOMAKE_SUFFIX="-1.7" ./autogen.sh
+ uses "automake-1.7" and "aclocal-1.7.
+ AUTOMAKE_PREFIX is used as a prefix for all tools from the automake
+ page and may be combined with AUTOMAKE_SUFFIX. e.g.:
+ AUTOMAKE_PREFIX=/usr/foo/bin ./autogen.sh
+ uses "automake" and "aclocal" in the /usr/foo/bin
+ directory.
+ AUTOCONF_SUFFIX is used as a suffix for all tools from the automake
+ package
+ AUTOCONF_PREFIX is used as a prefix for all tools from the automake
+ package
+ GETTEXT_SUFFIX is used as a suffix for all tools from the gettext
+ package
+ GETTEXT_PREFIX is used as a prefix for all tools from the gettext
+ package
+
+It is also possible to use the variable name AUTOMAKE, AUTOCONF,
+ACLOCAL, AUTOHEADER, GETTEXT and MSGMERGE to directly specify the name
+of the programs to run. It is however better to use the suffix and
+prefix forms as described above because that does not require
+knowledge about the actual tools used by autgen.sh.
+
Please don't use autopoint, libtoolize or autoreconf unless you are
the current maintainer and want to update the standard configuration
files. All those files should be in the CVS and only updated manually
if the maintainer decides that newer versions are required. The
maintainer should also make sure that the required version of automake
-et al. are properly indicated at the top of the autogen.sh script and
-take care to copy the files and not merely use symlinks.
-
+et al. are properly indicated at the top of configure.ac and take care
+to copy the files and not merely use symlinks.
diff --git a/autogen.sh b/autogen.sh
index dc9bf27..3ba50a5 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,5 +1,5 @@
#! /bin/sh
-# Run this to generate all the initial makefiles, etc.
+# Run this to generate all the initial makefiles, etc.
#
# Copyright (C) 2003 g10 Code GmbH
#
@@ -11,64 +11,78 @@
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-PGM=libgpg-error
-
-# Required version of autoconf. Keep it in sync with the AC_PREREQ
-# macro at the top of configure.ac.
-autoconf_vers=2.57
-
-# Required version of automake.
-automake_vers=1.7.6
-
-# Required version of gettext. Keep it in sync with the
-# AM_GNU_GETTEXT_VERSION macro in configure.ac.
-gettext_vers=0.12.1
-
-
-ACLOCAL=${ACLOCAL:-aclocal}
-AUTOCONF=${AUTOCONF:-autoconf}
-AUTOMAKE=${AUTOMAKE:-automake}
-AUTOHEADER=${AUTOHEADER:-autoheader}
-GETTEXT=${GETTEXT:-gettext}
-MSGMERGE=${MSGMERGE:-gettext}
-DIE=no
+configure_ac="configure.ac"
cvtver () {
- awk 'NR==1 {split($NF,A,".");X=1000000*A[1]+1000*A[2]+A[3];print X;exit 0}'
-}
-
-chkver () {
- expr `("$1" --version || echo "0") | cvtver` '>=' `echo "$2" | cvtver` \
- >/dev/null
+ awk 'NR==1 {split($NF,A,".");X=1000000*A[1]+1000*A[2]+A[3];print X;exit 0}'
}
check_version () {
- if ! chkver $1 $2 ; then
- echo "**Error**: "\`$1\'" not installed or too old." >&2
- echo ' Version '$2' or newer is required.' >&2
- [ -n "$3" ] && echo ' Note that this is part of '\`$3\''.' >&2
- DIE="yes"
- return 1
- else
+ if [ $(( `("$1" --version || echo "0") | cvtver` >= $2 )) == 1 ]; then
return 0
fi
+ echo "**Error**: "\`$1\'" not installed or too old." >&2
+ echo ' Version '$3' or newer is required.' >&2
+ [ -n "$4" ] && echo ' Note that this is part of '\`$4\''.' >&2
+ DIE="yes"
+ return 1
}
-check_version $AUTOCONF $autoconf_vers
-if check_version $AUTOMAKE $automake_vers ; then
- check_version $ACLOCAL $automake_vers automake
+# Grep the required versions from configure.ac
+autoconf_vers=`sed -n '/^AC_PREREQ(/ {
+s/^.*(\(.*\))/\1/p
+q
+}' ${configure_ac}`
+autoconf_vers_num=`echo "$autoconf_vers" | cvtver`
+
+automake_vers=`sed -n '/^min_automake_version=/ {
+s/^.*="\(.*\)"/\1/p
+q
+}' ${configure_ac}`
+automake_vers_num=`echo "$automake_vers" | cvtver`
+
+gettext_vers=`sed -n '/^min_gettext_version=/ {
+s/^.*="\(.*\)"/\1/p
+q
+}' ${configure_ac}`
+gettext_vers_num=`echo "$gettext_vers" | cvtver`
+
+
+if [ -z "$autoconf_vers" -o -z "$automake_vers" -o -z "$gettext_vers" ]
+then
+ echo "**Error**: version information not found in "\`${configure_ac}\'"." >&2
+ exit 1
+fi
+
+# Allow to override the default tool names
+AUTOCONF=${AUTOCONF_PREFIX}${AUTOCONF:-autoconf}${AUTOCONF_SUFFIX}
+AUTOHEADER=${AUTOCONF_PREFIX}${AUTOHEADER:-autoheader}${AUTOCONF_SUFFIX}
+
+AUTOMAKE=${AUTOMAKE_PREFIX}${AUTOMAKE:-automake}${AUTOMAKE_SUFFIX}
+ACLOCAL=${AUTOMAKE_PREFIX}${ACLOCAL:-aclocal}${AUTOMAKE_SUFFIX}
+
+GETTEXT=${GETTEXT_PREFIX}${GETTEXT:-gettext}${GETTEXT_SUFFIX}
+MSGMERGE=${GETTEXT_PREFIX}${MSGMERGE:-msgmerge}${GETTEXT_SUFFIX}
+
+DIE=no
+
+
+if check_version $AUTOCONF $autoconf_vers_num $autoconf_vers ; then
+ check_version $AUTOHEADER $autoconf_vers_num $autoconf_vers autoconf
+fi
+if check_version $AUTOMAKE $automake_vers_num $automake_vers; then
+ check_version $ACLOCAL $automake_vers_num $autoconf_vers automake
fi
-if check_version $GETTEXT $gettext_vers ; then
- check_version $MSGMERGE $gettext_vers gettext
+if check_version $GETTEXT $gettext_vers_num $gettext_vers; then
+ check_version $MSGMERGE $gettext_vers_num $gettext_vers gettext
fi
if test "$DIE" = "yes"; then
cat <<EOF
Note that you may use alternative versions of the tools by setting
-the corresponding environment variable to that version; e.g.:
- AUTOMAKE=automake-1.6 ACLOCAL=aclocal-1.6 ./autogen.sh
+the corresponding environment variables; see README.CVS for details.
EOF
exit 1
diff --git a/configure.ac b/configure.ac
index eb10502..b717300 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,11 +18,13 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
# (Process this file with autoconf to produce a configure script.)
+# The following lines are used by ./autogen.sh.
AC_PREREQ(2.57)
-
+min_automake_version="1.7.6"
+min_gettext_version="0.12.1"
# Version number: Remember to change it immediately *after* a release.
-AC_INIT(libgpg-error, 0.7, [email protected])
+AC_INIT(libgpg-error, 0.7-cvs, [email protected])
# LT Version numbers, remember to change them just *before* a release.
# (Code changed: REVISION++)
# (Interfaces added/removed/changed: CURRENT++, REVISION=0)
@@ -36,7 +38,6 @@ AC_SUBST(LIBGPG_ERROR_LT_CURRENT)
AC_SUBST(LIBGPG_ERROR_LT_AGE)
AC_SUBST(LIBGPG_ERROR_LT_REVISION)
-AC_PREREQ(2.57)
AM_INIT_AUTOMAKE
AM_MAINTAINER_MODE
AC_CONFIG_SRCDIR([src/err-sources.h.in])