From bb0f82be83d43db9cd77049be32ffd0b92ab5bb7 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Fri, 24 Jan 2025 22:03:29 +0100
Subject: [PATCH] package-version: Simplify its use.

Reported by Basil L. Contovounesios <basil@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.
---
 ChangeLog                  | 11 +++++++++++
 doc/package-version.texi   |  2 +-
 m4/init-package-version.m4 | 20 ++++++++++++++------
 3 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ea015f81ca..f7f2698231 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2025-01-24  Bruno Haible  <bruno@clisp.org>
+
+	package-version: Simplify its use.
+	Reported by Basil L. Contovounesios <basil@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.
+
 2025-01-24  Bruno Haible  <bruno@clisp.org>
 
 	tests: Fix a few compilation errors on Solaris 11 OmniOS with gcc 14.
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 @@ a few lines are needed in @code{configure.ac}.
 
 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 @@ dnl the same distribution terms as the rest of that program.
 #
 # 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])
     ])
 ])
-- 
2.39.5