tools/buildbot/bootstrap.pl
author Scott Ehlert <ds@alliedmods.net>
Sun May 01 00:17:11 2011 -0500 (2011-05-01)
changeset 3267 622ef46cd089
parent 3245 6658de988048
child 3309 ef25ef57a0b0
permissions -rwxr-xr-x
Updated buildbot scripts to support clang builders.
dvander@2251
     1
#!/usr/bin/perl
dvander@2783
     2
# vim: set ts=2 sw=2 tw=99 noet: 
dvander@2251
     3
dvander@2255
     4
use strict;
dvander@2255
     5
use Cwd;
dvander@2255
     6
use File::Basename;
ds@2820
     7
use File::Path;
dvander@2255
     8
dvander@2255
     9
my ($myself, $path) = fileparse($0);
dvander@2255
    10
chdir($path);
dvander@2255
    11
dvander@2254
    12
require 'helpers.pm';
dvander@2251
    13
dvander@2783
    14
#Go back above build dir
dvander@2783
    15
chdir(Build::PathFormat('../../..'));
dvander@2256
    16
dvander@2256
    17
#Get the source path.
dvander@2521
    18
our ($root) = getcwd();
dvander@2256
    19
dvander@2783
    20
my $reconf = 0;
dvander@2783
    21
dvander@2256
    22
#Create output folder if it doesn't exist.
dvander@2256
    23
if (!(-d 'OUTPUT')) {
dvander@2783
    24
	$reconf = 1;
dvander@2783
    25
} else {
dvander@2783
    26
	if (-f 'OUTPUT/sentinel') {
dvander@2783
    27
		my @s = stat('OUTPUT/sentinel');
dvander@2783
    28
		my $mtime = $s[9];
dvander@2783
    29
		my @files = ('build/pushbuild.txt', 'build/AMBuildScript', 'build/product.version');
dvander@2783
    30
		my ($i);
dvander@2783
    31
		for ($i = 0; $i <= $#files; $i++) {
dvander@2783
    32
			if (IsNewer($files[$i], $mtime)) {
dvander@2783
    33
				$reconf = 1;
dvander@2783
    34
				last;
dvander@2783
    35
			}
dvander@2783
    36
		}
dvander@2783
    37
	} else {
dvander@2783
    38
		$reconf = 1;
dvander@2783
    39
	}
dvander@2256
    40
}
dvander@2256
    41
dvander@2783
    42
if ($reconf) {
ds@2820
    43
	rmtree('OUTPUT');
ds@2820
    44
	mkdir('OUTPUT') or die("Failed to create output folder: $!\n");
dvander@2783
    45
	chdir('OUTPUT');
ds@3267
    46
	my ($result, $argn);
ds@3267
    47
	$argn = $#ARGV + 1;
dvander@2783
    48
	print "Attempting to reconfigure...\n";
ds@3267
    49
	if ($argn > 0 && $^O !~ /MSWin/) {
ds@3267
    50
		$result = `CC=$ARGV[0] CXX=$ARGV[0] python3.1 ../build/configure.py --enable-optimize`;
dvander@2783
    51
	} else {
ds@3267
    52
		if ($^O eq "linux") {
ds@3267
    53
			$result = `CC=gcc-4.1 CXX=gcc-4.1 python3.1 ../build/configure.py --enable-optimize`;
ds@3267
    54
		} elsif ($^O eq "darwin") {
ds@3267
    55
			$result = `CC=gcc-4.2 CXX=gcc-4.2 python3.1 ../build/configure.py --enable-optimize`;
ds@3267
    56
		} else {
ds@3267
    57
			$result = `C:\\Python31\\Python.exe ..\\build\\configure.py --enable-optimize`;
ds@3267
    58
		}
dvander@2783
    59
	}
dvander@2783
    60
	print "$result\n";
dvander@2783
    61
	if ($? != 0) {
ds@3245
    62
		die("Could not configure: $!\n");
dvander@2783
    63
	}
dvander@2783
    64
	open(FILE, '>sentinel');
dvander@2783
    65
	print FILE "this is nothing.\n";
dvander@2783
    66
	close(FILE);
dvander@2723
    67
}
dvander@2521
    68
dvander@2783
    69
sub IsNewer
dvander@2521
    70
{
dvander@2783
    71
	my ($file, $time) = (@_);
dvander@2783
    72
dvander@2783
    73
	my @s = stat($file);
dvander@2783
    74
	my $mtime = $s[9];
dvander@2783
    75
	return $mtime > $time;
dvander@2521
    76
}
dvander@2521
    77
dvander@2783
    78
exit(0);
dvander@2521
    79
dvander@2783
    80