1*ebfedea0SLionel Sambuc#!/usr/local/bin/perl 2*ebfedea0SLionel Sambuc# 3*ebfedea0SLionel Sambuc# used to generate the file MINFO for use by util/mk1mf.pl 4*ebfedea0SLionel Sambuc# It is basically a list of all variables from the passed makefile 5*ebfedea0SLionel Sambuc# 6*ebfedea0SLionel Sambuc 7*ebfedea0SLionel Sambuc$s=""; 8*ebfedea0SLionel Sambucwhile (<>) 9*ebfedea0SLionel Sambuc { 10*ebfedea0SLionel Sambuc chop; 11*ebfedea0SLionel Sambuc s/#.*//; 12*ebfedea0SLionel Sambuc if (/^(\S+)\s*=\s*(.*)$/) 13*ebfedea0SLionel Sambuc { 14*ebfedea0SLionel Sambuc $o=""; 15*ebfedea0SLionel Sambuc ($s,$b)=($1,$2); 16*ebfedea0SLionel Sambuc for (;;) 17*ebfedea0SLionel Sambuc { 18*ebfedea0SLionel Sambuc if ($b =~ /\\$/) 19*ebfedea0SLionel Sambuc { 20*ebfedea0SLionel Sambuc chop($b); 21*ebfedea0SLionel Sambuc $o.=$b." "; 22*ebfedea0SLionel Sambuc $b=<>; 23*ebfedea0SLionel Sambuc chop($b); 24*ebfedea0SLionel Sambuc } 25*ebfedea0SLionel Sambuc else 26*ebfedea0SLionel Sambuc { 27*ebfedea0SLionel Sambuc $o.=$b." "; 28*ebfedea0SLionel Sambuc last; 29*ebfedea0SLionel Sambuc } 30*ebfedea0SLionel Sambuc } 31*ebfedea0SLionel Sambuc $o =~ s/^\s+//; 32*ebfedea0SLionel Sambuc $o =~ s/\s+$//; 33*ebfedea0SLionel Sambuc $o =~ s/\s+/ /g; 34*ebfedea0SLionel Sambuc 35*ebfedea0SLionel Sambuc $o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g; 36*ebfedea0SLionel Sambuc $sym{$s}=$o; 37*ebfedea0SLionel Sambuc } 38*ebfedea0SLionel Sambuc } 39*ebfedea0SLionel Sambuc 40*ebfedea0SLionel Sambuc$pwd=`pwd`; chop($pwd); 41*ebfedea0SLionel Sambuc 42*ebfedea0SLionel Sambucif ($sym{'TOP'} eq ".") 43*ebfedea0SLionel Sambuc { 44*ebfedea0SLionel Sambuc $n=0; 45*ebfedea0SLionel Sambuc $dir="."; 46*ebfedea0SLionel Sambuc } 47*ebfedea0SLionel Sambucelse { 48*ebfedea0SLionel Sambuc $n=split(/\//,$sym{'TOP'}); 49*ebfedea0SLionel Sambuc @_=split(/\//,$pwd); 50*ebfedea0SLionel Sambuc $z=$#_-$n+1; 51*ebfedea0SLionel Sambuc foreach $i ($z .. $#_) { $dir.=$_[$i]."/"; } 52*ebfedea0SLionel Sambuc chop($dir); 53*ebfedea0SLionel Sambuc } 54*ebfedea0SLionel Sambuc 55*ebfedea0SLionel Sambucprint "RELATIVE_DIRECTORY=$dir\n"; 56*ebfedea0SLionel Sambuc 57*ebfedea0SLionel Sambucforeach (sort keys %sym) 58*ebfedea0SLionel Sambuc { 59*ebfedea0SLionel Sambuc print "$_=$sym{$_}\n"; 60*ebfedea0SLionel Sambuc } 61*ebfedea0SLionel Sambucprint "RELATIVE_DIRECTORY=\n"; 62