files.pl 943 B

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