diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | README.CVS | 35 | ||||
-rwxr-xr-x | autogen.sh | 98 | ||||
-rw-r--r-- | configure.ac | 7 |
4 files changed, 93 insertions, 49 deletions
@@ -1,5 +1,7 @@ 2003-12-08 Werner Koch <[email protected]> + * README.CVS: Enhanced. + * autogen.sh: New. * Makefile.am (EXTRA_DIST): Added autogen.sh. @@ -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. @@ -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]) |