You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2001/02/25 23:03:29 UTC
cvs commit: httpd-2.0/build fixwin32mak.pl
wrowe 01/02/25 14:03:29
Added: build fixwin32mak.pl
Log:
Ok ... .mak files are nasty. Here's a bit to clean up -some- of that
nastyness - the absolute paths that .dsp dependencies off of parent
directories are encoded with. This chops cd "\checkout\httpd-2.0" from
the support directory down to cd "..", a much nicer solution.
Revision Changes Path
1.1 httpd-2.0/build/fixwin32mak.pl
Index: fixwin32mak.pl
===================================================================
#
# fixwin32mak.pl ::: Apache/Win32 maintanace program
#
# This program, launched from the build/ directory, replaces all nasty absoulute paths
# in the win32 .mak files with the appropriate relative root.
#
# Run this program prior to committing or packaging any newly exported make files.
use Cwd;
use IO::File;
use File::Find;
chdir '..';
$root = cwd;
$root =~ s|.:(.*)|cd "$1|;
$root =~ s|/|\\\\|g;
print $root . "\n";
find(\&fixcwd, '.');
sub fixcwd {
if (m|.mak$|) {
$repl = $File::Find::dir;
$repl =~ s|^./||;
$repl =~ s|[^\./]+|..|g;
$repl =~ s|/|\\\\|;
$oname = $_;
$tname = '.#' . $_;
$verchg = 0;
$srcfl = new IO::File $_, "r" || die;
$dstfl = new IO::File $tname, "w" || die;
while ($src = <$srcfl>) {
if ($src =~ s|^(\s*)$root|$1cd "$repl|) {
$verchg = -1;
}
print $dstfl $src;
}
undef $srcfl;
undef $dstfl;
if ($verchg) {
unlink $oname || die;
rename $tname, $oname || die;
print "Corrected absolute paths within " . $oname . " in " . $File::Find::dir . "\n";
}
else {
unlink $tname;
}
}
}