| 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 |
| 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 |