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
7290207Sjkimwhile ($ARGV[0] =~ /^(\S+)\s*=(.*)$/)
8290207Sjkim	{
9290207Sjkim	$sym{$1} = $2;
10290207Sjkim	shift;
11290207Sjkim	}
12290207Sjkim
1355714Skris$s="";
1455714Skriswhile (<>)
1555714Skris	{
1655714Skris	chop;
1755714Skris	s/#.*//;
1855714Skris	if (/^(\S+)\s*=\s*(.*)$/)
1955714Skris		{
2055714Skris		$o="";
2155714Skris		($s,$b)=($1,$2);
2255714Skris		for (;;)
2355714Skris			{
2455714Skris			if ($b =~ /\\$/)
2555714Skris				{
2655714Skris				chop($b);
2755714Skris				$o.=$b." ";
2855714Skris				$b=<>;
2955714Skris				chop($b);
3055714Skris				}
3155714Skris			else
3255714Skris				{
3355714Skris				$o.=$b." ";
3455714Skris				last;
3555714Skris				}
3655714Skris			}
3755714Skris		$o =~ s/^\s+//;
3855714Skris		$o =~ s/\s+$//;
3955714Skris		$o =~ s/\s+/ /g;
4055714Skris
4155714Skris		$o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
42290207Sjkim		$sym{$s}=$o if !exists $sym{$s};
4355714Skris		}
4455714Skris	}
4555714Skris
4655714Skris$pwd=`pwd`; chop($pwd);
4755714Skris
4855714Skrisif ($sym{'TOP'} eq ".")
4955714Skris	{
5055714Skris	$n=0;
5155714Skris	$dir=".";
5255714Skris	}
5355714Skriselse	{
5455714Skris	$n=split(/\//,$sym{'TOP'});
5555714Skris	@_=split(/\//,$pwd);
5655714Skris	$z=$#_-$n+1;
5755714Skris	foreach $i ($z .. $#_) { $dir.=$_[$i]."/"; }
5855714Skris	chop($dir);
5955714Skris	}
6055714Skris
6155714Skrisprint "RELATIVE_DIRECTORY=$dir\n";
6255714Skris
6355714Skrisforeach (sort keys %sym)
6455714Skris	{
6555714Skris	print "$_=$sym{$_}\n";
6655714Skris	}
6755714Skrisprint "RELATIVE_DIRECTORY=\n";
68