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