tools/buildbot/bootstrap.pl
author Scott Ehlert <ds@alliedmods.net>
Wed Apr 13 18:30:34 2011 -0500 (2011-04-13)
changeset 3244 dada05e32e0e
parent 2980 fddc25c39462
child 3245 6658de988048
permissions -rwxr-xr-x
Attempt at getting a meaningful error message out of buildbot bootstrap.
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');
dvander@2783
    46
	my ($result);
dvander@2783
    47
	print "Attempting to reconfigure...\n";
dvander@2783
    48
	if ($^O eq "linux") {
dvander@2783
    49
		$result = `CC=gcc-4.1 CXX=gcc-4.1 python3.1 ../build/configure.py --enable-optimize`;
fyrenmoo@2980
    50
	} elsif ($^O eq "darwin") {
fyrenmoo@2980
    51
		$result = `CC=gcc-4.2 CXX=gcc-4.2 python3.1 ../build/configure.py --enable-optimize`;
dvander@2783
    52
	} else {
dvander@2783
    53
		$result = `C:\\Python31\\Python.exe ..\\build\\configure.py --enable-optimize`;
dvander@2783
    54
	}
dvander@2783
    55
	print "$result\n";
dvander@2783
    56
	if ($? != 0) {
ds@3244
    57
		die('Could not configure: $!\n');
dvander@2783
    58
	}
dvander@2783
    59
	open(FILE, '>sentinel');
dvander@2783
    60
	print FILE "this is nothing.\n";
dvander@2783
    61
	close(FILE);
dvander@2723
    62
}
dvander@2521
    63
dvander@2783
    64
sub IsNewer
dvander@2521
    65
{
dvander@2783
    66
	my ($file, $time) = (@_);
dvander@2783
    67
dvander@2783
    68
	my @s = stat($file);
dvander@2783
    69
	my $mtime = $s[9];
dvander@2783
    70
	return $mtime > $time;
dvander@2521
    71
}
dvander@2521
    72
dvander@2783
    73
exit(0);
dvander@2521
    74
dvander@2783
    75