tools/buildbot/bootstrap.pl
author David Anderson <dvander@alliedmods.net>
Thu Mar 05 02:36:27 2009 -0500 (2009-03-05)
changeset 2656 fb3f7371c612
parent 2653 0ae7d8ab1de7
child 2723 d8cde305bb14
permissions -rwxr-xr-x
Re-added -dev tag, bumped version to 1.2.1.
dvander@2251
     1
#!/usr/bin/perl
dvander@2251
     2
dvander@2255
     3
use strict;
dvander@2255
     4
use Cwd;
dvander@2255
     5
use File::Basename;
dvander@2255
     6
dvander@2255
     7
my ($myself, $path) = fileparse($0);
dvander@2255
     8
chdir($path);
dvander@2255
     9
dvander@2254
    10
require 'helpers.pm';
dvander@2251
    11
dvander@2254
    12
chdir(Build::PathFormat('../builder'));
dvander@2251
    13
if ($^O eq "linux")
dvander@2251
    14
{
dvander@2251
    15
    Build::Command('make clean');
dvander@2251
    16
    Build::Command('make');
dvander@2251
    17
}
dvander@2251
    18
else
dvander@2251
    19
{
dvander@2328
    20
    Build::Command('"' . $ENV{'VC9BUILDER'} . '" /rebuild builder.csproj Release');
dvander@2251
    21
    Build::Command('move ' . Build::PathFormat('bin/Release/builder.exe') . ' .');
dvander@2251
    22
}
dvander@2251
    23
dvander@2251
    24
die "Unable to build builder tool!\n" unless -e 'builder.exe';
dvander@2251
    25
dvander@2256
    26
#Go back to main source dir.
dvander@2256
    27
chdir(Build::PathFormat('../..'));
dvander@2256
    28
dvander@2256
    29
#Get the source path.
dvander@2521
    30
our ($root) = getcwd();
dvander@2256
    31
dvander@2256
    32
#Create output folder if it doesn't exist.
dvander@2256
    33
if (!(-d 'OUTPUT')) {
dvander@2256
    34
    mkdir('OUTPUT') or die("Failed to create output folder: $!\n");
dvander@2256
    35
}
dvander@2256
    36
dvander@2256
    37
#Write the configuration file.
dvander@2256
    38
open(CONF, '>build.cfg') or die("Failed to write build.cfg: $!\n");
dvander@2256
    39
print CONF "OutputBase = " . Build::PathFormat($root . '/OUTPUT') . "\n";
dvander@2256
    40
print CONF "SourceBase = $root\n";
dvander@2256
    41
if ($^O eq "linux") 
dvander@2256
    42
{
dvander@2256
    43
    print CONF "BuilderPath = /usr/bin/make\n";
dvander@2256
    44
}
dvander@2256
    45
else
dvander@2256
    46
{
dvander@2328
    47
    print CONF "BuilderPath = " . $ENV{'VC9BUILDER'} . "\n";
dvander@2267
    48
    print CONF "PDBLog = $root\\OUTPUT\\pdblog.txt\n";
dvander@2256
    49
}
dvander@2256
    50
close(CONF);
dvander@2256
    51
dvander@2256
    52
#Do the annoying revision bumping.
dvander@2256
    53
#Linux needs some help here.
dvander@2256
    54
if ($^O eq "linux")
dvander@2256
    55
{
dvander@2256
    56
    Build::Command("flip -u modules.versions");
dvander@2256
    57
    Build::Command("flip -u tools/versionchanger.pl");
dvander@2256
    58
    Build::Command("chmod +x tools/versionchanger.pl");
dvander@2256
    59
}
dvander@2656
    60
Build::Command(Build::PathFormat('tools/versionchanger.pl') . ' --buildstring="-dev"');
dvander@2521
    61
dvander@2521
    62
#Bootstrap extensions that have complex dependencies
dvander@2521
    63
dvander@2521
    64
if ($^O eq "linux")
dvander@2521
    65
{
dvander@2521
    66
	BuildLibCurl_Linux();
dvander@2521
    67
}
dvander@2521
    68
else
dvander@2521
    69
{
dvander@2521
    70
	BuildLibCurl_Win32();
dvander@2521
    71
}
dvander@2521
    72
dvander@2521
    73
sub BuildLibCurl_Win32
dvander@2521
    74
{
dvander@2521
    75
	chdir("extensions\\curl\\curl-src\\lib");
dvander@2522
    76
	Build::Command('"' . $ENV{'VC9BUILDER'} . '" /rebuild build_libcurl.vcproj "LIB Release"');
dvander@2521
    77
	die "Unable to find libcurl.lib!\n" unless (-f "LIB-Release\\libcurl.lib");
dvander@2521
    78
	chdir("..\\..\\..\\..");
dvander@2521
    79
}
dvander@2521
    80
dvander@2521
    81
sub BuildLibCurl_Linux
dvander@2521
    82
{
dvander@2521
    83
	chdir("extensions/curl/curl-src");
dvander@2521
    84
	Build::Command("mkdir -p Release");
dvander@2521
    85
	Build::Command("chmod +x configure");
dvander@2521
    86
	chdir("Release");
dvander@2521
    87
	Build::Command("../configure --enable-static --disable-shared --disable-ldap --without-ssl --without-zlib");
dvander@2521
    88
	Build::Command("make");
dvander@2521
    89
	die "Unable to find libcurl.a!\n" unless (-f "lib/.libs/libcurl.a");
dvander@2521
    90
	chdir("../../../..");
dvander@2521
    91
}