summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGunter Knauf <gk@gknw.de>2004-06-22 20:02:49 +0000
committerGunter Knauf <gk@gknw.de>2004-06-22 20:02:49 +0000
commit53189fb2d7b2407740d3e15e90443d5e64b5d859 (patch)
tree9773e552cfca375cb6253a864ec7efc503a3552e
parent450c178d7752fd39ea935590c7a4cc27bfa0fdb2 (diff)
downloadgnurl-53189fb2d7b2407740d3e15e90443d5e64b5d859.tar.gz
gnurl-53189fb2d7b2407740d3e15e90443d5e64b5d859.tar.bz2
gnurl-53189fb2d7b2407740d3e15e90443d5e64b5d859.zip
added new --target option for autobuilding other targets than GNU-like.
-rwxr-xr-xtests/testcurl.pl99
1 files changed, 69 insertions, 30 deletions
diff --git a/tests/testcurl.pl b/tests/testcurl.pl
index 1efbba375..ff9c13399 100755
--- a/tests/testcurl.pl
+++ b/tests/testcurl.pl
@@ -35,12 +35,15 @@
# USAGE:
# testcurl.pl [curl-daily-name] > output
+# or:
+# testcurl.pl --target=your_os > output
# Updated:
-# v1.2 8-Mar-04 - rewritten in perl
-# v1.1 6-Nov-03 - to take an optional parameter, the name of a daily-build
-# directory. If present, build from that directory, otherwise
-# perform a normal CVS build.
+# v1.7 22-Jun-04 - added --target option for other platform targets.
+# v1.2 8-Mar-04 - rewritten in perl
+# v1.1 6-Nov-03 - to take an optional parameter, the name of a daily-build
+# directory. If present, build from that directory, otherwise
+# perform a normal CVS build.
use strict;
@@ -49,20 +52,44 @@ use Cwd;
# Turn on warnings (equivalent to -w, which can't be used with /usr/bin/env)
BEGIN { $^W = 1; }
-use vars qw($version $fixed $infixed $CURLDIR $CVS $pwd $build $buildlog $buildlogname $gnulikebuild);
+use vars qw($version $fixed $infixed $CURLDIR $CVS $pwd $build $buildlog
+ $buildlogname $gnulikebuild $targetos $confsuffix $binext);
use vars qw($name $email $desc $confopts);
# version of this script
$version='$Revision$';
$fixed=0;
-# Determine if we're running from CVS or a canned copy of curl
+# Determine if we're running from CVS or a canned copy of curl,
+# or if we got a specific target option
+$CURLDIR="curl";
+$CVS=1;
if (@ARGV && $ARGV[0]) {
- $CURLDIR=$ARGV[0];
- $CVS=0;
-} else {
- $CURLDIR="curl";
- $CVS=1;
+ if ($ARGV[0] =~ /--target=/) {
+ $targetos = (split(/=/, $ARGV[0]))[1];
+ } else {
+ $CURLDIR=$ARGV[0];
+ $CVS=0;
+ }
+}
+
+# Do the platform-specific stuff here
+$gnulikebuild = 1;
+$confsuffix = '';
+$binext = '';
+if ($^O eq 'MSWin32' || defined($targetos)) {
+ $gnulikebuild = 0;
+ if (!defined($targetos)) {
+ # If no target defined on Win32 lets assume vc
+ $targetos = 'vc';
+ }
+ if ($targetos =~ /vc/ || $targetos =~ /mingw32/) {
+ $confsuffix = '-win32';
+ $binext = '.exe';
+ } elsif ($targetos =~ /netware/) {
+ $confsuffix = '-netware';
+ $binext = '.nlm';
+ }
}
$ENV{LANG}="C";
@@ -118,11 +145,6 @@ sub mydie($){
exit 1;
}
-$gnulikebuild = 1;
-if ($^O eq 'MSWin32') {
- $gnulikebuild = 0;
-}
-
if (open(F, "setup")) {
while (<F>) {
if (/(\w+)=(.*)/) {
@@ -183,6 +205,7 @@ logit "DESC = $desc";
logit "CONFOPTS = $confopts";
logit "CFLAGS = ".($ENV{CFLAGS} ? $ENV{CFLAGS} : "");
logit "CC = ".($ENV{CC} ? $ENV{CC} : "");
+logit "target = ".($targetos ? $targetos : "");
logit "version = $version";
logit "date = ".(scalar gmtime)." UTC";
@@ -286,7 +309,8 @@ if ($CVS) {
mydie "buildconf was NOT successful";
}
} else {
- system("buildconf.bat");
+ system("buildconf.bat") if ($^O eq 'MSWin32');
+ # logit "buildconf was successful (dummy message)" if ($^O eq 'linux');
}
}
@@ -314,24 +338,28 @@ if ($gnulikebuild) {
mydie "configure didn't work";
}
} else {
- system("xcopy /s /q ..\\$CURLDIR .");
+ system("xcopy /s /q ..\\$CURLDIR .") if ($^O eq 'MSWin32');
+ if ($^O eq 'linux') {
+ system("cp -ar ../$CURLDIR/* .");
+ system("cp -a ../$CURLDIR/Makefile.dist Makefile");
+ }
}
-logit "display lib/config.h";
-open(F, $gnulikebuild ? "lib/config.h" : "lib/config-win32.h") or die;
+logit "display lib/config$confsuffix.h";
+open(F, "lib/config$confsuffix.h") or die;
while (<F>) {
print if /^ *#/;
}
close(F);
-logit "display src/config.h";
-open(F, $gnulikebuild ? "src/config.h" : "src/config-win32.h") or die;
+logit "display src/config$confsuffix.h";
+open(F, "src/config$confsuffix.h") or die;
while (<F>) {
print if /^ *#/;
}
close(F);
-if (grepfile("define USE_ARES", $gnulikebuild ? "lib/config.h" : "lib/config-win32.h")) {
+if (grepfile("define USE_ARES", "lib/config$confsuffix.h")) {
logit "setup to build ares";
logit "build ares";
@@ -362,7 +390,15 @@ if ($gnulikebuild) {
}
close(F);
} else {
- open(F, "nmake -i vc|") or die;
+ if ($^O eq 'MSWin32') {
+ if ($targetos =~ /vc/) {
+ open(F, "nmake -i $targetos|") or die;
+ } else {
+ open(F, "make -i $targetos |") or die;
+ }
+ } else {
+ open(F, "make -i $targetos 2>&1 |") or die;
+ }
while (<F>) {
s/$pwd//g;
print;
@@ -370,16 +406,19 @@ if ($gnulikebuild) {
close(F);
}
-my $exe = $gnulikebuild ? "curl" : "curl.exe";
-if (-f "src/$exe") {
- logit "src/curl was created fine ($exe)";
+if (-f "src/curl$binext") {
+ logit "src/curl was created fine (curl$binext)";
} else {
- mydie "src/curl was not created ($exe)";
+ mydie "src/curl was not created (curl$binext)";
}
-logit "display $exe --version output";
+if (defined($targetos) && $targetos =~ /netware/) {
+ #system('../../curlver.sh');
+} else {
+logit "display curl$binext --version output";
-system("./src/$exe --version");
+system("./src/curl$binext --version");
+}
if ($gnulikebuild) {
logit "run make test-full";