155714Skris#!/usr/local/bin/perl
255714Skris#
355714Skris# used to generate the file MINFO for use by util/mk1mf.pl
455714Skris# It is basically a list of all variables from the passed makefile
555714Skris#
655714Skris
755714Skris$s="";
855714Skriswhile (<>)
955714Skris	{
1055714Skris	chop;
1155714Skris	s/#.*//;
1255714Skris	if (/^(\S+)\s*=\s*(.*)$/)
1355714Skris		{
1455714Skris		$o="";
1555714Skris		($s,$b)=($1,$2);
1655714Skris		for (;;)
1755714Skris			{
1855714Skris			if ($b =~ /\\$/)
1955714Skris				{
2055714Skris				chop($b);
2155714Skris				$o.=$b." ";
2255714Skris				$b=<>;
2355714Skris				chop($b);
2455714Skris				}
2555714Skris			else
2655714Skris				{
2755714Skris				$o.=$b." ";
2855714Skris				last;
2955714Skris				}
3055714Skris			}
3155714Skris		$o =~ s/^\s+//;
3255714Skris		$o =~ s/\s+$//;
3355714Skris		$o =~ s/\s+/ /g;
3455714Skris
3555714Skris		$o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
3655714Skris		$sym{$s}=$o;
3755714Skris		}
3855714Skris	}
3955714Skris
4055714Skris$pwd=`pwd`; chop($pwd);
4155714Skris
4255714Skrisif ($sym{'TOP'} eq ".")
4355714Skris	{
4455714Skris	$n=0;
4555714Skris	$dir=".";
4655714Skris	}
4755714Skriselse	{
4855714Skris	$n=split(/\//,$sym{'TOP'});
4955714Skris	@_=split(/\//,$pwd);
5055714Skris	$z=$#_-$n+1;
5155714Skris	foreach $i ($z .. $#_) { $dir.=$_[$i]."/"; }
5255714Skris	chop($dir);
5355714Skris	}
5455714Skris
5555714Skrisprint "RELATIVE_DIRECTORY=$dir\n";
5655714Skris
5755714Skrisforeach (sort keys %sym)
5855714Skris	{
5955714Skris	print "$_=$sym{$_}\n";
6055714Skris	}
6155714Skrisprint "RELATIVE_DIRECTORY=\n";
62