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