Basil L. Contovounesios wrote: > I understand that projects using Automake can use VERSION in place of > PACKAGE_VERSION, but I'm not aware of anything analogous to other > PACKAGE_* definitions, such as PACKAGE_STRING or PACKAGE_URL. > ... > AC_INIT is documented as taking two mandatory arguments. > > - One small consequence of following this pattern is that uses of > PACKAGE_* variables have to be adapted.
The patch below - removes the need to change your package if it uses PACKAGE_STRING etc. or if it passes more than 2 arguments to AC_INIT, - fixes a bug: AC_PACKAGE_NAME would expand to empty or (in Autoconf 2.69) trigger an error. 2025-01-24 Bruno Haible <br...@clisp.org> package-version: Simplify its use. Reported by Basil L. Contovounesios <ba...@contovou.net> in <https://lists.gnu.org/archive/html/bug-gnulib/2025-01/msg00195.html>. * doc/package-version.texi (Propagating the package version): Recommend to pass the usual arguments to AC_INIT. * m4/init-package-version.m4: Likewise. (gl_INIT_PACKAGE): Define PACKAGE_VERSION and PACKAGE_STRING as needed. (gl_RPL_INIT_AUTOMAKE): Improve quoting. diff --git a/doc/package-version.texi b/doc/package-version.texi index fb050a8fcf..4075b98d03 100644 --- a/doc/package-version.texi +++ b/doc/package-version.texi @@ -118,7 +118,7 @@ The recommended code pattern is @example -AC_INIT +AC_INIT([@var{package}], [dummy]) AC_CONFIG_SRCDIR([@var{unique-file-in-source-dir}]) AC_CONFIG_AUX_DIR([build-aux]) VERSION_NUMBER=`cd $srcdir \ diff --git a/m4/init-package-version.m4 b/m4/init-package-version.m4 index 525dfe5bf5..69f7764892 100644 --- a/m4/init-package-version.m4 +++ b/m4/init-package-version.m4 @@ -1,5 +1,5 @@ # init-package-version.m4 -# serial 3 +# serial 4 dnl Copyright (C) 1992-2025 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General @@ -57,7 +57,7 @@ # # With the macro defined in this file, the approach can be coded like this: # -# AC_INIT +# AC_INIT(PACKAGE, [dummy], [MORE OPTIONS]) # AC_CONFIG_SRCDIR(WITNESS) # . $srcdir/../version.sh # gl_INIT_PACKAGE(PACKAGE, $VERSION_NUMBER) @@ -102,8 +102,16 @@ AC_DEFUN([gl_INIT_PACKAGE] [AC_PACKAGE_NAME], [gl_INIT_DUMMY])), [AC_PACKAGE_TARNAME], [gl_INIT_EMPTY])), [AC_PACKAGE_VERSION], [gl_INIT_DUMMY]) - [AC_SUBST([PACKAGE], [$1]) - AC_SUBST([VERSION], [$2]) + [dnl Set variables documented in Automake. + AC_SUBST([PACKAGE], [$1]) + AC_SUBST([VERSION], ["$2"]) + dnl Set variables documented in Autoconf. + AC_SUBST([PACKAGE_VERSION], ["$2"]) + AC_SUBST([PACKAGE_STRING], ["$1 $2"]) + AC_DEFINE_UNQUOTED([PACKAGE_VERSION], ["$2"], + [Define to the version of this package.]) + AC_DEFINE_UNQUOTED([PACKAGE_STRING], ["$1 $2"], + [Define to the full name and version of this package.]) ]) m4_define([AM_INIT_AUTOMAKE], m4_defn([gl_RPL_INIT_AUTOMAKE])) @@ -118,7 +126,7 @@ AC_DEFUN([gl_RPL_INIT_AUTOMAKE] [m4_fatal([After gl_INIT_PACKAGE, the two-argument form of AM_INIT_AUTOMAKE cannot be used.])]) gl_AM_INIT_AUTOMAKE([$1 no-define]) m4_if(m4_index([ $1 ], [ no-define ]), [-1], - [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]) + [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package]) ]) ])