]> git.draconx.ca Git - dxcommon.git/blobdiff - scripts/fix-gnulib.pl
Rewrite Gnulib symbols to be in libcdecl's namespace.
[dxcommon.git] / scripts / fix-gnulib.pl
index 3876f93e4b8639fcc0420ef51f17f8fc8f9a6c85..b8185fa642107538128023f844d76eb03191f286 100755 (executable)
@@ -93,7 +93,9 @@ while (<STDIN>) {
 # This trick should define gnulib_orderonly to | iff we're using GNU make.
 gnulib_have_orderonly = $(findstring order-only,$(.FEATURES))
 gnulib_orderonly = $(gnulib_have_orderonly:order-only=|)
-gnulib_headers = $(gnulib_orderonly)
+gnulib_core_headers = $(gnulib_orderonly)
+gnulib_src_headers = $(gnulib_core_headers)
+gnulib_headers = $(gnulib_src_headers)
 EOF
 
                $printed_header = 1;
@@ -133,7 +135,7 @@ EOF
        # BUILT_SOURCES has similar problems to recursive make: inadequate
        # dependencies lead to incorrect builds.  Collect them into an
        # ordinary variable so we can deal with them later.
-       s/BUILT_SOURCES/gnulib_headers/;
+       s/BUILT_SOURCES/gnulib_core_headers/;
 
        # Targets are similar to variables: the target and its dependencies
        # need to be mangled.
@@ -158,7 +160,7 @@ EOF
 
 print <<'EOF';
 gnulib_lt_objects = $(libgnu_la_OBJECTS) $(gl_LTLIBOBJS)
-$(gnulib_lt_objects): $(gnulib_headers)
+$(gnulib_lt_objects): $(gnulib_src_headers)
 EOF
 print @cleanfiles;
 
@@ -172,9 +174,21 @@ if (defined $m4output) {
 
        open(M4OUT, '>', $m4output) or die "$m4output: $!\n";
 
-       print M4OUT "dnl This file was generated by fix-gnulib.pl\n";
-       print M4OUT "AC_DEFUN([$m4macro], [dnl\n";
+       print M4OUT <<EOF;
+dnl This file was generated by fix-gnulib.pl
+dnl
+dnl Usage: DX_FIX_GNULIB([symbol-prefix])
+dnl   where symbol-prefix is the application-specific symbol prefix to apply
+dnl   to Gnulib's symbols.  Defaults to \${PACKAGE}__.
+dnl   top-level source directory; e.g. lib.
+AC_DEFUN([$m4macro], [dnl
+EOF
        print M4OUT <<'EOF';
+GLSRC=lib
+GLSYM_PREFIX='ifelse([$1], [], [${PACKAGE}__], [$1])'
+AC_SUBST([GLSRC])
+AC_SUBST([GLSYM_PREFIX])
+
 m4_foreach([gl_objvar], [[gl_LIBOBJS], [gl_LTLIBOBJS]], [dnl
 set x $gl_objvar; shift
 gl_objvar=
@@ -183,7 +197,6 @@ while test ${#} -gt 0; do
 done
 ])
 EOF
-
        foreach (@vars) {
                print M4OUT "$_=\${$_:+lib/\$$_}\n";
        }