automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[patch 2/2] support AC_SUBST'able automake rules


From: Lars J. Aas
Subject: [patch 2/2] support AC_SUBST'able automake rules
Date: Wed, 31 Jan 2001 14:31:37 +0100
User-agent: Mutt/1.2.5i

This patch makes it possible to have AC_SUBST keywords in for instance
library names, allowing for much greater flexibility.  It depends on
patch 1/2, of course.

2001-02-01  Lars J. Aas  <address@hidden>

        * automake.in ($quote_ats): New.
        ($MACRO_PATTERN, $CANONICALS): Allow '@'s in automake macro names.
        (&am_install_var): Use &quote_ats to escape '@'s in transform rules
        given to &file_contents_with_transform.

--- automake.in Mon Jan 29 21:17:31 2001
+++ automake.in Wed Jan 31 03:51:41 2001
@@ -45,7 +45,7 @@
 # Only recognize leading spaces, not leading tabs.  If we recognize
 # leading tabs here then we need to make the reader smarter, because
 # otherwise it will think rules like `foo=bar; \' are errors.
-$MACRO_PATTERN = "^ *([A-Za-z0-9_]+)[ \t]*([:+]?)=[ \t]*(.*)\$";
+$MACRO_PATTERN = "^ *(address@hidden)[ \t]*([:+]?)=[ \t]*(.*)\$";
 $BOGUS_MACRO_PATTERN = "^ *([^ \t]*)[ \t]*([:+]?)=[ \t]*(.*)\$";
 $GNITS_VERSION_PATTERN = "[0-9]+\\.[0-9]+([a-z]|\\.[0-9]+)?";
 $IF_PATTERN = "^if[ \t]+\([A-Za-z][A-Za-z0-9_]*\)[ \t]*\(#.*\)?\$";
@@ -54,7 +54,7 @@
 $PATH_PATTERN='(\\w|[/.-])+';
 # This will pass through anything not of the prescribed form.
 $INCLUDE_PATTERN = "^include[ 
\t]+((\\\$\\\(top_srcdir\\\)/${PATH_PATTERN})|(\\\$\\\(srcdir\\\)/${PATH_PATTERN})|([^/\\\$]${PATH_PATTERN}))[
 \t]*(#.*)?\$";
-$CANONICALS = "A-Za-z0-9_";
+$CANONICALS = "A-Za-z0-9_\@";
 
 # Some regular expressions.  One reason to put them here is that it
 # makes indentation work better in Emacs.
@@ -5626,6 +5627,15 @@
     return $val;
 }
 
+# Quote 'at' (@) instances with backslash escapes so they don't evaluate as
+# arrays.
+sub quote_ats
+{
+    local ($val) = @_;
+    $val =~ s/\@/\\\@/og;
+    return $val;
+}
+   
 # Return the set of conditions for which a variable is defined.
 
 # If the variable is not defined conditionally, and is not defined in
@@ -7435,11 +7445,11 @@
            }
 
            $output_rules .=
-               &file_contents_with_transform ('s/address@hidden@/' . $X . '/g;'
-                                              . 's/address@hidden@/' . 
$nodir_name . '/go;'
-                                              . $ltxform . $cygxform
-                                              . $subdir_xform,
-                                              $file);
+               &file_contents_with_transform (
+                   &quote_ats ('s/@DIR@/' . $X . '/g;'
+                               . 's/@NDIR@/' . $nodir_name . '/go;'
+                               . $ltxform . $cygxform . $subdir_xform),
+                   $file);
 
            push (@uninstall, 'uninstall-' . $X . $primary);
            push (@phony, 'uninstall-' . $X . $primary);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]