testcurl.pl: allow source to be in an arbitrary directory

This way, the build directory can be located on an entirely different
filesystem from the source code (e.g. a tmpfs).
This commit is contained in:
Dan Fandrich 2015-05-21 09:10:31 +02:00
parent b0143a2a33
commit 126e7f7253
1 changed files with 16 additions and 11 deletions

View File

@ -61,6 +61,7 @@
use strict;
use Cwd;
use Cwd 'abs_path';
# Turn on warnings (equivalent to -w, which can't be used with /usr/bin/env)
#BEGIN { $^W = 1; }
@ -387,6 +388,10 @@ if (-d $CURLDIR) {
mydie "$CURLDIR is not a daily source dir or checked out from git!"
}
}
# make the path absolute so we can use it everywhere
$CURLDIR = abs_path("$CURLDIR");
$build="build-$$";
$buildlogname="buildlog-$$";
$buildlog="$pwd/$buildlogname";
@ -459,7 +464,7 @@ if ($git) {
logit " $_";
}
chdir "$pwd/$CURLDIR";
chdir "$CURLDIR";
}
if($nobuildconf) {
@ -558,7 +563,7 @@ chdir "$pwd/$build";
if ($configurebuild) {
# run configure script
print `../$CURLDIR/configure $confopts 2>&1`;
print `$CURLDIR/configure $confopts 2>&1`;
if (-f "lib/Makefile") {
logit "configure seems to have finished fine";
@ -568,26 +573,26 @@ if ($configurebuild) {
} else {
logit "copying files to build dir ...";
if (($^O eq 'MSWin32') && ($targetos !~ /netware/)) {
system("xcopy /s /q ..\\$CURLDIR .");
system("xcopy /s /q $CURLDIR .");
system("buildconf.bat");
}
elsif ($targetos =~ /netware/) {
system("cp -afr ../$CURLDIR/* .");
system("cp -af ../$CURLDIR/Makefile.dist Makefile");
system("cp -afr $CURLDIR/* .");
system("cp -af $CURLDIR/Makefile.dist Makefile");
system("$make -i -C lib -f Makefile.netware prebuild");
system("$make -i -C src -f Makefile.netware prebuild");
if (-d "../$CURLDIR/ares") {
if (-d "$CURLDIR/ares") {
system("$make -i -C ares -f Makefile.netware prebuild");
}
}
elsif ($^O eq 'linux') {
system("cp -afr ../$CURLDIR/* .");
system("cp -af ../$CURLDIR/Makefile.dist Makefile");
system("cp -af ../$CURLDIR/include/curl/curlbuild.h.dist ./include/curl/curlbuild.h");
system("cp -afr $CURLDIR/* .");
system("cp -af $CURLDIR/Makefile.dist Makefile");
system("cp -af $CURLDIR/include/curl/curlbuild.h.dist ./include/curl/curlbuild.h");
system("$make -i -C lib -f Makefile.$targetos prebuild");
system("$make -i -C src -f Makefile.$targetos prebuild");
if (-d "../$CURLDIR/ares") {
system("cp -af ../$CURLDIR/ares/ares_build.h.dist ./ares/ares_build.h");
if (-d "$CURLDIR/ares") {
system("cp -af $CURLDIR/ares/ares_build.h.dist ./ares/ares_build.h");
system("$make -i -C ares -f Makefile.$targetos prebuild");
}
}