]> git.draconx.ca Git - dxcommon.git/blobdiff - m4/gnulib-shared.m4
DX_GNULIB_SYMFILES: Don't use "awk -f -".
[dxcommon.git] / 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}"])])