]> git.draconx.ca Git - dxcommon.git/blobdiff - scripts/fix-gnulib.pl
fix-gnulib: Fix pattern for variable mangling.
[dxcommon.git] / scripts / fix-gnulib.pl
index a59e4a6e3d66b1eab748754fc33b6d5eba3349f8..9f868f2ef0121293fd7f0142d540fce5a875b775 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env perl
 #
-# Copyright © 2011-2014, 2020-2021 Nick Bowler
+# Copyright © 2011-2014, 2020-2022 Nick Bowler
 #
 # Prepare the Gnulib tree for inclusion into a non-recursive automake build.
 # While the output of gnulib-tool is "include"-able if the --makefile-name
@@ -145,7 +145,7 @@ m4_unquote(m4_argn([2], [
 
 # This trick should define gnulib_orderonly to | iff we're using GNU make.
 gnulib_make_features = $(.FEATURES)
-gnulib_have_orderonly = $(findstring order-only,$(gnulib_make_features))
+gnulib_have_orderonly = $(findstring order-only,${gnulib_make_features})
 gnulib_orderonly = $(gnulib_have_orderonly:order-only=|)
 gnulib_core_headers =
 gnulib_raw_headers = $(gnulib_core_headers)
@@ -211,7 +211,7 @@ EOF
        if (/^([[:word:]]+)[[:space:]]*\+?=/) {
                $allvars{$1} = 1;
 
-               if (/_SOURCES|CLEANFILES|EXTRA_DIST|[[:upper:]]+_H/) {
+               if ($1 =~ /(_SOURCES|CLEANFILES|EXTRA_DIST|[[:upper:]]+_H)$/) {
                        $_ = mangle_variable($_);
                }
        }
@@ -254,10 +254,12 @@ EOF
 print <<'EOF' if ($use_libtool);
 gnulib_lt_objects = $(libgnu_la_OBJECTS) $(gl_LTLIBOBJS)
 gnulib_objects = $(gnulib_lt_objects)
+gnulib_all_symfiles = $(gnulib_lt_objects:.lo=.glsym)
 $(gnulib_objects): $(gnulib_headers)
 EOF
 print <<'EOF' if (!$use_libtool);
 gnulib_objects = $(libgnu_a_OBJECTS) $(gl_LIBOBJS)
+gnulib_all_symfiles = $(gnulib_objects:.@OBJEXT@=.glsym)
 $(gnulib_objects): $(gnulib_headers)
 EOF
 
@@ -270,10 +272,10 @@ if FALSE
 AC_SUBST([GLSRC], [lib])
 AC_CONFIG_LIBOBJ_DIR([lib])
 
-AC_DEFUN_ONCE([DX_GLSYM_PREFIX], [dnl
-AC_REQUIRE([DX_EXPORTED_SH])
-AC_SUBST([GLSYM_PREFIX], [$1])
-])
+AC_DEFUN_ONCE([DX_GLSYM_PREFIX],
+[AC_REQUIRE([DX_AUTOMAKE_COMPAT])AC_REQUIRE([DX_EXPORTED_SH])dnl
+AC_SUBST([GLSYM_PREFIX], [$1])dnl
+AC_SUBST([gnulib_symfiles], ['$(gnulib_all_symfiles)'])])
 EOF
 
 print <<'EOF' if ($for_library);