 2ba91e9698
			
		
	
	2ba91e9698
	
	
	
		
			
			Adding dependencies on included files to the generated man pages is wrong - includes are processed by asciidoc, therefore the intermediate Docbook XML files really depend on included files. Because of these wrong dependencies the man pages were not rebuilt properly if the intermediate XML files were left in the tree. Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Signed-off-by: Junio C Hamano <junkio@cox.net>
		
			
				
	
	
		
			47 lines
		
	
	
		
			968 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			968 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/perl
 | |
| 
 | |
| my %include = ();
 | |
| my %included = ();
 | |
| 
 | |
| for my $text (<*.txt>) {
 | |
|     open I, '<', $text || die "cannot read: $text";
 | |
|     while (<I>) {
 | |
| 	if (/^include::/) {
 | |
| 	    chomp;
 | |
| 	    s/^include::\s*//;
 | |
| 	    s/\[\]//;
 | |
| 	    $include{$text}{$_} = 1;
 | |
| 	    $included{$_} = 1;
 | |
| 	}
 | |
|     }
 | |
|     close I;
 | |
| }
 | |
| 
 | |
| # Do we care about chained includes???
 | |
| my $changed = 1;
 | |
| while ($changed) {
 | |
|     $changed = 0;
 | |
|     while (my ($text, $included) = each %include) {
 | |
| 	for my $i (keys %$included) {
 | |
| 	    # $text has include::$i; if $i includes $j
 | |
| 	    # $text indirectly includes $j.
 | |
| 	    if (exists $include{$i}) {
 | |
| 		for my $j (keys %{$include{$i}}) {
 | |
| 		    if (!exists $include{$text}{$j}) {
 | |
| 			$include{$text}{$j} = 1;
 | |
| 			$included{$j} = 1;
 | |
| 			$changed = 1;
 | |
| 		    }
 | |
| 		}
 | |
| 	    }
 | |
| 	}
 | |
|     }
 | |
| }
 | |
| 
 | |
| while (my ($text, $included) = each %include) {
 | |
|     if (! exists $included{$text} &&
 | |
| 	(my $base = $text) =~ s/\.txt$//) {
 | |
| 	print "$base.html $base.xml : ", join(" ", keys %$included), "\n";
 | |
|     }
 | |
| }
 |