automake
[Top][All Lists]
Advanced

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

09-add-depend2.patch


From: Akim Demaille
Subject: 09-add-depend2.patch
Date: Sun, 28 Jan 2001 17:15:06 +0100

Index: ChangeLog
from  Akim Demaille  <address@hidden>
        
        * automake.in (add_depend2): Use &transform.
        
Index: automake.in
--- automake.in Sat, 27 Jan 2001 02:29:11 +0100 akim (am/f/39_automake.i 1.12 
755)
+++ automake.in Sun, 28 Jan 2001 07:36:10 +0100 akim (am/f/39_automake.i 1.12 
755)
@@ -2949,6 +2949,9 @@ sub handle_dist
     &handle_dist_worker ($makefile);
 }
 
+
+# add_depend2 ($LANG)
+# -------------------
 # A subroutine of handle_dependencies.  This function includes
 # `depend2' with appropriate transformations.
 sub add_depend2
@@ -2961,10 +2964,10 @@ sub add_depend2
 
     local ($pfx) = $language_map{$key};
     local ($fpfx) = ($pfx eq '') ? 'CC' : $pfx;
-    $xform = ('s/address@hidden@/' . $pfx . '/g;'
-             . 's/address@hidden@/' . $fpfx . '/g;'
-             . ($seen_objext ? 's/^OBJEXT//;' : 's/^OBJEXT.*$//;')
-             . ($seen_libtool ? 's/^LIBTOOL//;' : 's/^LIBTOOL.*$//;'));
+    $xform = &transform ('PFX'  => $pfx,
+                        'FPFX' => $fpfx);
+    $xform .= $seen_objext  ? 's/^OBJEXT//;'  : 's/^OBJEXT.*$//;';
+    $xform .= $seen_libtool ? 's/^LIBTOOL//;' : 's/^LIBTOOL.*$//;';
 
     # This function can be called even when we don't want dependency
     # tracking.  This happens when we need an explicit rule for some
@@ -2972,16 +2975,17 @@ sub add_depend2
     if ($use_dependencies)
     {
        local ($xform1) = ($xform
-                          . 's/address@hidden@/\$\*/g;'
-                          . 's/address@hidden@/\$\</g;'
-                          . 's/\@(LT|OBJ)?OBJ\@/\$\@/g;');
+                          . &transform ('BASE'   => '$*',
+                                        'SOURCE' => '$<',
+                                        'OBJ'    => '$@',
+                                        'LTOBJ'  => '$@',
+                                        'OBJOBJ' => '$@'));
 
        foreach $ext (&lang_extensions ($lang))
        {
-           $output_rules .= (&file_contents_with_transform 
('s/address@hidden@/'
-                                                            . $ext . '/g;'
-                                                            . $xform1,
-                                                            'depend2')
+           $output_rules .= (&file_contents_with_transform
+                                 (&transform ('EXT' => $ext) . $xform1,
+                                  'depend2')
                              . "\n");
        }
     }
@@ -3002,8 +3006,8 @@ sub add_depend2
     while ($i < $max)
     {
        $derived = $list[$i];
-       ($source = $list[$i + 1]) =~ s,([/\$]),\\$1,g;
-       ($obj = $list[$i + 2]) =~ s,([/\$]),\\$1,g;
+       $source = $list[$i + 1];
+       $obj = $list[$i + 2];
        $i += 3;
 
        local ($flag) = $language_map{$lang . '-flags'};
@@ -3011,42 +3015,31 @@ sub add_depend2
        ($rule = $language_map{$lang . '-compile'}) =~
            s/\(AM_$flag/$val/;
 
-       $rule =~ s,([/\$]),\\$1,g;
-
        # Generate a transform which will turn suffix targets in
        # depend2.am into real targets for the particular objects we
        # are building.
        $output_rules .=
-           &file_contents_with_transform ($xform
-                                          . 's/\$\(' . $pfx . 'COMPILE\)/'
-                                          . $rule . '/g;'
-                                          . 's/\$\(LT' . $pfx . 'COMPILE\)/'
-                                          . '\$(LIBTOOL) --mode=compile '
-                                          . $rule . '/g;'
-                                          # Generate rule for `.o'.
-                                          . 's/address@hidden@\.o:/'
-                                          . $obj . '.o: ' . $source
-                                          . '/g;'
-                                          # Maybe generate rule for `.lo'.
-                                          # Might be eliminated by
-                                          # $XFORM.
-                                          . 's/address@hidden@\.lo:/'
-                                          . $obj . '.lo: ' . $source
-                                          . '/g;'
-                                          # Maybe generate rule for `.obj'.
-                                          # Might be eliminated by
-                                          # $XFORM.
-                                          . 's/address@hidden@\.obj:/'
-                                          . $obj . '.obj: ' . $source
-                                          . '/g;'
-                                          # Handle source and obj
-                                          # transforms.
-                                          . 's/address@hidden@/' . $obj . 
'.o/g;'
-                                          . 's/address@hidden@/' . $obj . 
'.obj/g;'
-                                          . 's/address@hidden@/' . $obj . 
'.lo/g;'
-                                          . 's/address@hidden@/' . $obj . '/g;'
-                                          . 's/address@hidden@/' . $source . 
'/g;',
-                                          'depend2');
+           &file_contents_with_transform
+               ($xform
+                . &transform ('$(' . $pfx . 'COMPILE)'
+                                => $rule,
+                              '$(LT' . $pfx . 'COMPILE)'
+                                => '$(LIBTOOL) --mode=compile ' . $rule,
+                              # Handle source and obj transforms.
+                              'OBJ'    => $obj . '.o',
+                              'OBJOBJ' => $obj . '.obj',
+                              'LTOBJ'  => $obj . '.lo',
+                              'BASE'   => $obj,
+                              'SOURCE' => $source)
+                # Generate rule for `.o'.
+                . 's/address@hidden@\.o:/' . $obj . '.o: ' . $source . '/g;'
+                # Maybe generate rule for `.lo'.  Might be eliminated
+                # by $XFORM.
+                . 's/address@hidden@\.lo:/' . $obj . '.lo: ' . $source . '/g;'
+                # Maybe generate rule for `.obj'.  Might be
+                # eliminated by $XFORM.
+                . 's/address@hidden@\.obj:/' . $obj . '.obj: ' . $source . 
'/g;',
+                'depend2');
     }
 }
 



reply via email to

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