]> git.draconx.ca Git - dxcommon.git/commitdiff
DX_GNULIB_SYMFILES: Don't use "awk -f -".
authorNick Bowler <nbowler@draconx.ca>
Mon, 1 Jan 2024 20:21:12 +0000 (15:21 -0500)
committerNick Bowler <nbowler@draconx.ca>
Mon, 1 Jan 2024 20:21:12 +0000 (15:21 -0500)
Even though a filename of "-" is specified by POSIX to read the program
from standard input and works with almost every awk implementation out
there, it seems it does not work on AIX 7.2 awk (which tries to read the
program from a file named "-" instead).  How wonderful.

In this case, it is easy enough to use a quoted string for the program
instead of a here-document.

m4/gnulib-shared.m4

index 94af008fdabd8e6e89c2fdb0d5ee85e98d7b9125..4d2e2731b1f69c4740bd0e640657b6a52c6c5a9e 100644 (file)
@@ -1,4 +1,4 @@
-dnl Copyright © 2022-2023 Nick Bowler
+dnl Copyright © 2022-2024 Nick Bowler
 dnl
 dnl Hack to reduce glsym transformations to a subset of gnulib sources.
 dnl
@@ -53,34 +53,32 @@ m4_bpatsubst(m4_indir([m4_include], [$1]), [[.][^/.]*$], [ x])
 EOF
   $JOIN -a1 "$ac_tmp/gl_syms.1" "$ac_tmp/gl_syms.2" >"$ac_tmp/gl_syms.3"
   # Now replace default gnulib_symfiles assignment with the computed list
-  $AWK -f - f="$ac_tmp/gl_syms.3" "$gl_of" >"$ac_tmp/gl_tmp.mk" <<'EOF'
-$[1] "/" $[2] "/" $[3] == "gnulib_symfiles/=/$(gnulib_all_symfiles)" {
-  objlst = symlst = "";
-  while ((rc = getline < f) > 0) {
-    if ($[3] == "x") {
-      symlst = symlst " " $[1] ".glsym";
-    } else {
-      m4_ifnblank([$2], [sub(/[[^\/]]*$/, "$2-&", $[1]);
-      ])objlst = objlst " " $[1] $[2];
+  $AWK '$[1] "/" $[2] "/" $[3] == "gnulib_symfiles/=/$(gnulib_all_symfiles)" {
+    objlst = symlst = "";
+    while ((rc = getline < f) > 0) {
+      if ($[3] == "x") {
+        symlst = symlst " " $[1] ".glsym";
+      } else {
+        m4_ifnblank([$2], [sub(/[[^\/]]*$/, "$2-&", $[1]);
+        ])objlst = objlst " " $[1] $[2];
+      }
     }
-  }
 
-  if (rc < 0)
-    exit 1;
+    if (rc < 0)
+      exit 1;
 
-  print "gnulib_symfiles =" symlst;
-  print "gnulib_extra_objects =" objlst;
-  next;
-}
-# add ourself to Automake's generated rebuild rules
-$[2] == "=" && $[1] ~ /^am__(depfiles_maybe|maybe_remake_depfiles)$/ {
-  for (i = 3; i <= NF; i++)
-    if ($i == "gnulib-symfiles")
-      break;
-  $i = "gnulib-symfiles";
-}
-{ print }
-EOF
+    print "gnulib_symfiles =" symlst;
+    print "gnulib_extra_objects =" objlst;
+    next;
+  }
+  # add ourself to Automake-generated rebuild rules
+  $[2] == "=" && $[1] ~ /^am__(depfiles_maybe|maybe_remake_depfiles)$/ {
+    for (i = 3; i <= NF; i++)
+      if ($i == "gnulib-symfiles")
+        break;
+    $i = "gnulib-symfiles";
+  }
+  { print; }' f="$ac_tmp/gl_syms.3" "$gl_of" >"$ac_tmp/gl_tmp.mk"
   mv -f "$ac_tmp/gl_tmp.mk" "$gl_of"
   break # should be max one makefile needing patching
 done], [: "\${MAKE=${MAKE-make}}" "\${JOIN=$JOIN}"])])