$NetBSD: patch-aa,v 1.23 2023/05/17 10:33:24 jperkin Exp $

Override library subdirectory name for consistency.
Don't use cache file to avoid trailing space problem.
Support staged installation of modules.
Fix SunOS linking.
Fix NetBSD module linking.
Don't use -nt on nonexistent files because the behavior isn't portable.

https://mail-index.netbsd.org/pkgsrc-users/2019/11/02/msg029846.html
https://sourceforge.net/p/clisp/bugs/740/ (macOS build failure)

--- src/makemake.in.orig	2010-07-07 15:15:35.000000000 +0000
+++ src/makemake.in
@@ -577,8 +577,8 @@ case $# in
      CROSS=false
      if [ -z "$HSYS" ]; then # not win32gcc
        # some shells (A/UX and OSF/1) need the parentheses around "arch" below.
-       HSYS=`((arch) 2>/dev/null || uname -m 2>/dev/null) | $tolower` # system name in lowercase
-       HSYSOS=`((uname) 2>/dev/null || arch 2>/dev/null) | $tolower` # OS name in lowercase
+       HSYS=`( (arch) 2>/dev/null || uname -m 2>/dev/null) | $tolower` # system name in lowercase
+       HSYSOS=`( (uname) 2>/dev/null || arch 2>/dev/null) | $tolower` # OS name in lowercase
        if [ "$HSYS" = 386bsd -o "$HSYS" = sun386 -o "$HSYS" = "386/at" -o "$HSYS" = i86pc ] ; then
          HSYS='i386'
        fi
@@ -1416,42 +1416,42 @@ if [ "${with_dynamic_modules}" != no ]; 
       XCC_PICFLAG=''
       ;;
   esac
-  XCC_CREATESHARED='create-shared-lib -o $lib $libs' # dummy command
+  XCC_CREATESHARED='create-shared-lib -o "${DESTDIR}$lib" $libs' # dummy command
   case "$host_os" in
     freebsd2.2*)
-      XCC_CREATESHARED='ld -Bshareable -o $lib $libs /usr/lib/c++rt0.o'
+      XCC_CREATESHARED='ld -Bshareable -o "${DESTDIR}$lib" $libs /usr/lib/c++rt0.o'
       ;;
-    freebsd2* | netbsd* | openbsd*)
-      XCC_CREATESHARED='ld -Bshareable -o $lib $libs'
+    freebsd2* | openbsd*)
+      XCC_CREATESHARED='ld -Bshareable -o "${DESTDIR}$lib" $libs'
       ;;
-    freebsd3* | gnu* | linux* | cygwin* | mingw* | k*bsd* | dragonfly*)
-      XCC_CREATESHARED='${CC} ${CFLAGS} ${CLFLAGS} -shared -o $lib $libs'
+    freebsd3* | gnu* | linux* | cygwin* | mingw* | k*bsd* | dragonfly* | netbsd*)
+      XCC_CREATESHARED='${CC} ${CFLAGS} ${CLFLAGS} -shared -o "${DESTDIR}$lib" $libs'
       ;;
     hpux9* | hpux10*)
-      XCC_CREATESHARED='ld -b +s -o $lib $libs'
+      XCC_CREATESHARED='ld -b +s -o "${DESTDIR}$lib" $libs'
       ;;
     irix5* | irix6*)
       case " $CC $CFLAGS " in
-        *" -32 "*)  XCC_CREATESHARED='ld -32 -shared -o $lib $libs' ;;
-        *" -n32 "*) XCC_CREATESHARED='ld -n32 -shared -o $lib $libs' ;;
-        *" -64 "*)  XCC_CREATESHARED='ld -64 -shared -o $lib $libs' ;;
-        *)          XCC_CREATESHARED='ld -shared -o $lib $libs' ;;
+        *" -32 "*)  XCC_CREATESHARED='ld -32 -shared -o "${DESTDIR}$lib" $libs' ;;
+        *" -n32 "*) XCC_CREATESHARED='ld -n32 -shared -o "${DESTDIR}$lib" $libs' ;;
+        *" -64 "*)  XCC_CREATESHARED='ld -64 -shared -o "${DESTDIR}$lib" $libs' ;;
+        *)          XCC_CREATESHARED='ld -shared -o "${DESTDIR}$lib" $libs' ;;
       esac
       ;;
     osf3* | osf4*)
-      XCC_CREATESHARED='ld -shared -expect_unresolved -o $lib $libs -lc'
+      XCC_CREATESHARED='ld -shared -expect_unresolved -o "${DESTDIR}$lib" $libs -lc'
       ;;
     sco3.2v5*)
-      XCC_CREATESHARED='ld -G -o $lib $libs'
+      XCC_CREATESHARED='ld -G -o "${DESTDIR}$lib" $libs'
       ;;
     solaris2*)
-      XCC_CREATESHARED='ld -G -z text -o $lib $libs'
+      XCC_CREATESHARED='ld -G -z text -o "${DESTDIR}$lib" $libs'
       ;;
     sunos4*)
-      XCC_CREATESHARED='ld -assert pure-text -Bstatic -o $lib $libs'
+      XCC_CREATESHARED='ld -assert pure-text -Bstatic -o "${DESTDIR}$lib" $libs'
       ;;
     darwin*)
-      XCC_CREATESHARED='${CC} -bundle -flat_namespace -undefined suppress -o $lib $libs'
+      XCC_CREATESHARED='${CC} -bundle -flat_namespace -undefined suppress -o "${DESTDIR}$lib" $libs'
       ;;
     *) echo "$0: how do you create a shared library on ${host_os}?" >&2;
       ;;
@@ -1542,7 +1542,7 @@ if [ $CROSS = false ] ; then
       # Newer versions of Solaris (Solaris 2.2 and newer) don't have
       # libdl_stubs.a any more. This means that you cannot link -static !
       XCLFLAGS=`echol "$XCLFLAGS" | sed -e 's/-B*static//g'`
-      SOLARIS_LINKING=1 # Even more hacks needed??
+      SOLARIS_LINKING= # Even more hacks needed??
       BINARY_DISTRIB=1
     ;;
     hpux*)
@@ -1917,7 +1917,7 @@ echol "htmldir = ${HTMLDIR}"
 echol "psdir   = ${PSDIR}"
 echol "pdfdir  = ${PDFDIR}"
 echol "libdir  = ${LIBDIR}"
-echol "lisplibdir = \$(libdir)${NEXT_}\$(TOPDIR)"
+echol "lisplibdir = \$(libdir)${NEXT_}clisp"
 test -n "$USE_GETTEXT" && echol "localedir = ${LOCALEDIR}"
 echol "elispdir = ${ELISPDIR}"
 echol "vimdir = ${VIMDIR}"
@@ -3301,7 +3301,7 @@ echotab "m=\`cd ${MODULESDIR_}\$@; pwd\`
 if [ "@TEST_NT@" = no ]; then # re-making a module requires rm -rf module
   newer(){ echo 'test -f $$m/'$1' -a '"'!'"' -f $@/'$2; }
 else # re-making a module just works
-  newer(){ echo 'test -f $$m/'$1' -a $$m/'$1' -nt $@/'$2; }
+  newer(){ echo 'test -f $$m/'$1' -a \( ! -f $@/'$2' -o $$m/'$1' -nt $@/'$2' \)'; }
 fi
 # srcdir has to be passed to ./configure because it must be able to find
 # src/build-aux/install-sh _AND_ also its own sources, thus we must
@@ -3315,7 +3315,7 @@ for var in ${PRECIOUS_VARS}; do
 done
 # we must use $(SHELL) for sub-configures because when the top CONFIG_SHELL
 # is bash, config.cache may be unparsable with sh on Solaris
-echotab "      \$(SHELL) \$\$m/configure --with-clisp=\"${HEREP}/clisp -K boot ${someflags}\" --cache-file=\$\${cache} --srcdir=\$\$m \$(MODULE_CONFIGURE_FLAGS);\\"
+echotab "      \$(SHELL) \$\$m/configure --with-clisp=\"${HEREP}/clisp -K boot ${someflags}\" --srcdir=\$\$m \$(MODULE_CONFIGURE_FLAGS);\\"
 echotab "    else \\"
 echotab "      \$(SHELL) \$\$m/configure --srcdir=\$\$m \$(MODULE_CONFIGURE_FLAGS); \\"
 echotab "    fi ) ;\\"
