68 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/local/bin/perl
 | 
						|
#
 | 
						|
# used to generate the file MINFO for use by util/mk1mf.pl
 | 
						|
# It is basically a list of all variables from the passed makefile
 | 
						|
#
 | 
						|
 | 
						|
while ($ARGV[0] =~ /^([^\s=]+)\s*=\s*(.*)$/)
 | 
						|
	{
 | 
						|
	$sym{$1} = $2;
 | 
						|
	shift;
 | 
						|
	}
 | 
						|
 | 
						|
$s="";
 | 
						|
while (<>)
 | 
						|
	{
 | 
						|
	s|\R$||;
 | 
						|
	s/#.*//;
 | 
						|
	if (/^([^\s=]+)\s*=\s*(.*)$/)
 | 
						|
		{
 | 
						|
		$o="";
 | 
						|
		($s,$b)=($1,$2);
 | 
						|
		for (;;)
 | 
						|
			{
 | 
						|
			if ($b =~ /\\$/)
 | 
						|
				{
 | 
						|
				$b=$`; # Keep what is before the backslash
 | 
						|
				$o.=$b." ";
 | 
						|
				$b = "" unless defined($b = <>);
 | 
						|
				$b =~ s{\R$}{};
 | 
						|
				}
 | 
						|
			else
 | 
						|
				{
 | 
						|
				$o.=$b." ";
 | 
						|
				last;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		$o =~ s/^\s+//;
 | 
						|
		$o =~ s/\s+$//;
 | 
						|
		$o =~ s/\s+/ /g;
 | 
						|
 | 
						|
		$o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
 | 
						|
		$sym{$s}=$o if !exists $sym{$s};
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
($pwd=`pwd`) =~ s{\R$}{};
 | 
						|
 | 
						|
if ($sym{'TOP'} eq ".")
 | 
						|
	{
 | 
						|
	$n=0;
 | 
						|
	$dir=".";
 | 
						|
	}
 | 
						|
else	{
 | 
						|
	$n=split(/\//,$sym{'TOP'});
 | 
						|
	@_=split(/\//,$pwd);
 | 
						|
	$z=$#_-$n+1;
 | 
						|
	foreach $i ($z .. $#_) { $dir.=$_[$i]."/"; }
 | 
						|
	chop($dir);             # Remove the last slash
 | 
						|
	}
 | 
						|
 | 
						|
print "RELATIVE_DIRECTORY=$dir\n";
 | 
						|
 | 
						|
foreach (sort keys %sym)
 | 
						|
	{
 | 
						|
	print "$_=$sym{$_}\n";
 | 
						|
	}
 | 
						|
print "RELATIVE_DIRECTORY=\n";
 |