Re: [External] Re: PKG_LIB_DIR/PKGMODULEDIR expansion issues

"Matsumura, George" <[email protected]> Sun, 17 Jul 2022 02:13:17 -0600
Newsgroups gmane.linux.printing.gimp-print.devel
Message-ID <[email protected]>
On 7/16/22 17:01, Robert Krawitz wrote:
> The model count == 0 patch looks unproblematic, although you removed a blank line unnecessarily.
> Could you regenerate it without that inadvertent change?

Unless I am mistaken, it seems that a blank line was added rather than
removed. I added this line in order to provide visual clarity,
especially with the if statement right above it, but it can be removed
if that would be desirable.

> The prefix defined patch is a bit more complex; in particular, you've removed a number of cases.
> Those changes don't look a priori wrong, but I'd like to make sure this gets well tested.  What
> testing have you done on it?

Thank you very much for asking. I apologize in that in the process of
testing, I found that the quoting on one of the lines for the first
patch was slightly off, as well as the AC_SUBST statements. I have
attached an updated patch.

So far, I have tested on Void Linux and NetBSD with various combinations
of configure flags I could think of, especially for the cases dealt with
by the specific code that was removed, although I doubtless have given
insufficient attention to some cases. If you have any ideas on how I
could make these tests more comprehensive, I would be glad to know.

Thank you for your patience.

Regards,
    George

_______________________________________________
Gimp-print-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gimp-print-devel
0001-build-Move-expansion-of-pathnames-to-build-time.patch (text/x-patch, 6.1 KB)
From 3c1857afdd56448572c8043d63c76af6c4b065c0 Mon Sep 17 00:00:00 2001
From: George Matsumura <[email protected]>
Date: Sat, 16 Jul 2022 21:41:13 -0600
Subject: [PATCH 1/2] build: Move expansion of pathnames to build time

This corrects errors in expansion encountered under the previous
scheme, and is in line with autoconf recommendations.
---
 configure.ac      | 84 +++++++----------------------------------------
 scripts/global.mk |  2 +-
 2 files changed, 13 insertions(+), 73 deletions(-)

diff --git a/configure.ac b/configure.ac
index 2b1cd098..93f3e7b7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -671,81 +671,17 @@ GUTENPRINT_BASE_VERSION=${GUTENPRINT_MAJOR_VERSION}.${GUTENPRINT_MINOR_VERSION}.
 AH_TEMPLATE(GUTENPRINT_BASE_VERSION,, [Gutenprint base version])
 AC_DEFINE_UNQUOTED(GUTENPRINT_BASE_VERSION, "${GUTENPRINT_BASE_VERSION}")
 
-dnl Set PACKAGE_LOCALE_DIR in config.h
-AH_TEMPLATE(PACKAGE_LOCALE_DIR,, [Package locale directory])
-if test "x${prefix}" = "xNONE"; then
-  AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, ["${ac_default_prefix}/share/locale"])
-else
-  AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, ["${prefix}/share/locale"])
-fi
+PACKAGE_LOCALE_DIR='${prefix}/share/locale'
 
-dnl Set PACKAGE_DATA_DIR in config.h.
-AH_TEMPLATE(PACKAGE_DATA_DIR,, [Package data directory])
-if test "x${datadir}" = 'x${prefix}/share'; then
-  if test "x${prefix}" = "xNONE"; then
-    PACKAGE_DATA_DIR="${ac_default_prefix}/share/${PACKAGE}"
-  else
-    PACKAGE_DATA_DIR="${prefix}/share/${PACKAGE}"
-  fi
-elif test "x${datadir}" = 'x${datarootdir}'; then
-  if test "x${datarootdir}" = 'x${prefix}/share'; then
-    if test "x${prefix}" = "xNONE"; then
-      PACKAGE_DATA_DIR="${ac_default_prefix}/share/${PACKAGE}"
-    else
-      PACKAGE_DATA_DIR="${prefix}/share/${PACKAGE}"
-    fi
-  else
-    PACKAGE_DATA_DIR="${datarootdir}/${PACKAGE}"
-  fi
-else
-  PACKAGE_DATA_DIR="${datadir}/${PACKAGE}"
-fi
+PACKAGE_DATA_DIR="${datadir}/${PACKAGE}"
 
-AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${PACKAGE_DATA_DIR}")
-
-dnl Set PACKAGE_LIB_DIR in config.h.
-AH_TEMPLATE(PACKAGE_LIB_DIR,, [Package lib directory])
-if test "x${libdir}" = 'x${exec_prefix}/lib'; then
-  if test "x${exec_prefix}" = "xNONE"; then
-    if test "x${prefix}" = "xNONE"; then
-      PACKAGE_LIB_DIR="${ac_default_prefix}/lib/${PACKAGE}"
-    else
-      PACKAGE_LIB_DIR="${prefix}/lib/${PACKAGE}"
-    fi
-  else
-    PACKAGE_LIB_DIR="${exec_prefix}/lib/${PACKAGE}"
-  fi
-else
-  PACKAGE_LIB_DIR="${libdir}/${PACKAGE}"
-fi
-
-AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, ["${PACKAGE_LIB_DIR}"])
-
-dnl Set PACKAGE_BIN_DIR in config.h.
-AH_TEMPLATE(PACKAGE_BIN_DIR,, [Package bin directory])
-if test "x${bindir}" = 'x${exec_prefix}/bin'; then
-  if test "x${exec_prefix}" = "xNONE"; then
-    if test "x${prefix}" = "xNONE"; then
-      PACKAGE_BIN_DIR="${ac_default_prefix}/bin"
-    else
-      PACKAGE_BIN_DIR="${prefix}/bin"
-    fi
-  else
-    PACKAGE_BIN_DIR="${exec_prefix}/bin"
-  fi
-else
-  PACKAGE_BIN_DIR="${bindir}"
-fi
+PACKAGE_LIB_DIR="${libdir}/${PACKAGE}"
 
-AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, ["${PACKAGE_BIN_DIR}"])
+PACKAGE_BIN_DIR="${bindir}"
 
-AH_TEMPLATE(PKGXMLDATADIR,, [Package XML data directory])
 PKGXMLDATADIR="${PACKAGE_DATA_DIR}/${GUTENPRINT_RELEASE_VERSION}/xml"
-AC_DEFINE_UNQUOTED(PKGXMLDATADIR, ["$PKGXMLDATADIR"], )
 
-AH_TEMPLATE(PKGMODULEDIR,, [Package module directory])
 PKGMODULEDIR="${PACKAGE_LIB_DIR}/${GUTENPRINT_RELEASE_VERSION}/modules"
-AC_DEFINE_UNQUOTED(PKGMODULEDIR, ["$PKGMODULEDIR"])
 
 dnl Compiler flags
 if test x$ac_compiler_gnu = "xyes"; then
@@ -1064,8 +1000,6 @@ RM='rm'
 PKGROOT=`pwd`
 
 dnl Substitutions
-AC_SUBST(prefix)
-AC_SUBST(exec_prefix)
 AC_SUBST(cups_prefix)
 AC_SUBST(cups_exec_prefix)
 AC_SUBST(cups_bindir)
@@ -1107,6 +1041,12 @@ AC_SUBST(GUTENPRINT_RELEASE_VERSION)
 AC_SUBST(LIBUSB_BACKEND_LIBDEPS)
 AC_SUBST(PKGROOT)
 AC_SUBST(MINIMAL_PRINTERS_TO_TEST)
+AC_SUBST(PACKAGE_LOCALE_DIR)
+AC_SUBST(PACKAGE_DATA_DIR)
+AC_SUBST(PACKAGE_LIB_DIR)
+AC_SUBST(PACKAGE_BIN_DIR)
+AC_SUBST(PKGXMLDATADIR)
+AC_SUBST(PKGMODULEDIR)
 
 dnl Optional architecture options to be applied after all autoconf tests
 dnl are done...
@@ -1252,10 +1192,10 @@ echo "    Installation prefix:                        $prefix" |tee -a config.su
 # Configure intentionally does not expand exec_prefix to allow make
 # to do so.
 echo "    Exec prefix:                                `eval eval echo $exec_prefix` ($exec_prefix)" |tee -a config.summary
-echo "    Data directory:                             $PACKAGE_DATA_DIR" |tee -a config.summary
+echo "    Data directory:                             `eval eval echo $PACKAGE_DATA_DIR` ($PACKAGE_DATA_DIR)" |tee -a config.summary
 echo "    Library directory:                          `eval eval echo $PACKAGE_LIB_DIR` ($PACKAGE_LIB_DIR)" |tee -a config.summary
 echo "    Executable directory:                       `eval eval echo $PACKAGE_BIN_DIR` ($PACKAGE_BIN_DIR)" |tee -a config.summary
-echo "    XML data directory:                         $PKGXMLDATADIR" |tee -a config.summary
+echo "    XML data directory:                         `eval eval echo $PKGXMLDATADIR` ($PKGXMLDATADIR)" |tee -a config.summary
 echo "    Module directory:                           `eval eval echo $PKGMODULEDIR` ($PKGMODULEDIR)" |tee -a config.summary
 echo "    Install sample images:                      $INSTALL_SAMPLES" |tee -a config.summary
 echo |tee -a config.summary
diff --git a/scripts/global.mk b/scripts/global.mk
index c4054826..792b8b0d 100644
--- a/scripts/global.mk
+++ b/scripts/global.mk
@@ -6,7 +6,7 @@
 #export STP_MODULE_PATH = $(top_builddir)/src/main/.libs:$(top_builddir)/src/main
 #export STP_DATA_PATH = $(top_srcdir)/src/xml
 
-AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(LOCAL_CPPFLAGS) $(GNUCFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(LOCAL_CPPFLAGS) $(GNUCFLAGS) -DPACKAGE_LOCALE_DIR=\"$(PACKAGE_LOCALE_DIR)\" -DPACKAGE_DATA_DIR=\"$(PACKAGE_DATA_DIR)\" -DPACKAGE_LIB_DIR=\"$(PACKAGE_LIB_DIR)\" -DPACKAGE_BIN_DIR=\"$(PACKAGE_BIN_DIR)\" -DPKGMODULEDIR=\"$(PKGMODULEDIR)\" -DPKGXMLDATADIR=\"$(PKGXMLDATADIR)\"
 
 LIBS = $(INTLLIBS) @LIBS@
 
-- 
2.37.1