| #!/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 (<>) |
| { |
| chop; |
| s/#.*//; |
| if (/^([^\s=]+)\s*=\s*(.*)$/) |
| { |
| $o=""; |
| ($s,$b)=($1,$2); |
| for (;;) |
| { |
| if ($b =~ /\\$/) |
| { |
| chop($b); |
| $o.=$b." "; |
| $b=<>; |
| chop($b); |
| } |
| 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`; chop($pwd); |
| |
| if ($sym{'TOP'} eq ".") |
| { |
| $n=0; |
| $dir="."; |
| } |
| else { |
| $n=split(/\//,$sym{'TOP'}); |
| @_=split(/\//,$pwd); |
| $z=$#_-$n+1; |
| foreach $i ($z .. $#_) { $dir.=$_[$i]."/"; } |
| chop($dir); |
| } |
| |
| print "RELATIVE_DIRECTORY=$dir\n"; |
| |
| foreach (sort keys %sym) |
| { |
| print "$_=$sym{$_}\n"; |
| } |
| print "RELATIVE_DIRECTORY=\n"; |