This is the mail archive of the automake@gnu.org mailing list for the automake project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

09-add-depend2.patch


Index: ChangeLog
from  Akim Demaille  <akim@epita.fr>
	
	* 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/\@PFX\@/' . $pfx . '/g;'
-	      . 's/\@FPFX\@/' . $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/\@BASE\@/\$\*/g;'
-			   . 's/\@SOURCE\@/\$\</g;'
-			   . 's/\@(LT|OBJ)?OBJ\@/\$\@/g;');
+			   . &transform ('BASE'   => '$*',
+					 'SOURCE' => '$<',
+					 'OBJ'    => '$@',
+					 'LTOBJ'  => '$@',
+					 'OBJOBJ' => '$@'));
 
 	foreach $ext (&lang_extensions ($lang))
 	{
-	    $output_rules .= (&file_contents_with_transform ('s/\@EXT\@/'
-							     . $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/^\@EXT\@\.o:/'
-					   . $obj . '.o: ' . $source
-					   . '/g;'
-					   # Maybe generate rule for `.lo'.
-					   # Might be eliminated by
-					   # $XFORM.
-					   . 's/^\@EXT\@\.lo:/'
-					   . $obj . '.lo: ' . $source
-					   . '/g;'
-					   # Maybe generate rule for `.obj'.
-					   # Might be eliminated by
-					   # $XFORM.
-					   . 's/^\@EXT\@\.obj:/'
-					   . $obj . '.obj: ' . $source
-					   . '/g;'
-					   # Handle source and obj
-					   # transforms.
-					   . 's/\@OBJ\@/' . $obj . '.o/g;'
-					   . 's/\@OBJOBJ\@/' . $obj . '.obj/g;'
-					   . 's/\@LTOBJ\@/' . $obj . '.lo/g;'
-					   . 's/\@BASE\@/' . $obj . '/g;'
-					   . 's/\@SOURCE\@/' . $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/^\@EXT\@\.o:/' . $obj . '.o: ' . $source . '/g;'
+		 # Maybe generate rule for `.lo'.  Might be eliminated
+		 # by $XFORM.
+		 . 's/^\@EXT\@\.lo:/' . $obj . '.lo: ' . $source . '/g;'
+		 # Maybe generate rule for `.obj'.  Might be
+		 # eliminated by $XFORM.
+		 . 's/^\@EXT\@\.obj:/' . $obj . '.obj: ' . $source . '/g;',
+		 'depend2');
     }
 }
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]