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