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