81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/perl
 | |
| # vim: set ts=2 sw=2 tw=99 noet: 
 | |
| 
 | |
| use strict;
 | |
| use Cwd;
 | |
| use File::Basename;
 | |
| use File::Path;
 | |
| 
 | |
| my ($myself, $path) = fileparse($0);
 | |
| chdir($path);
 | |
| 
 | |
| require 'helpers.pm';
 | |
| 
 | |
| #Go back above build dir
 | |
| chdir(Build::PathFormat('../../..'));
 | |
| 
 | |
| #Get the source path.
 | |
| our ($root) = getcwd();
 | |
| 
 | |
| my $reconf = 0;
 | |
| 
 | |
| #Create output folder if it doesn't exist.
 | |
| if (!(-d 'OUTPUT')) {
 | |
| 	$reconf = 1;
 | |
| } else {
 | |
| 	if (-f 'OUTPUT/sentinel') {
 | |
| 		my @s = stat('OUTPUT/sentinel');
 | |
| 		my $mtime = $s[9];
 | |
| 		my @files = ('build/pushbuild.txt', 'build/AMBuildScript', 'build/product.version');
 | |
| 		my ($i);
 | |
| 		for ($i = 0; $i <= $#files; $i++) {
 | |
| 			if (IsNewer($files[$i], $mtime)) {
 | |
| 				$reconf = 1;
 | |
| 				last;
 | |
| 			}
 | |
| 		}
 | |
| 	} else {
 | |
| 		$reconf = 1;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| if ($reconf) {
 | |
| 	rmtree('OUTPUT');
 | |
| 	mkdir('OUTPUT') or die("Failed to create output folder: $!\n");
 | |
| 	chdir('OUTPUT');
 | |
| 	my ($result, $argn);
 | |
| 	$argn = $#ARGV + 1;
 | |
| 	print "Attempting to reconfigure...\n";
 | |
| 	if ($argn > 0 && $^O !~ /MSWin/) {
 | |
| 		$result = `CC=$ARGV[0] CXX=$ARGV[0] python3 ../build/configure.py --enable-optimize`;
 | |
| 	} else {
 | |
| 		if ($^O eq "linux") {
 | |
| 			$result = `CC=gcc-4.4 CXX=gcc-4.4 python3 ../build/configure.py --enable-optimize`;
 | |
| 		} elsif ($^O eq "darwin") {
 | |
| 			$result = `CC=clang CXX=clang python3 ../build/configure.py --enable-optimize`;
 | |
| 		} else {
 | |
| 			$result = `C:\\Python32\\Python.exe ..\\build\\configure.py --enable-optimize`;
 | |
| 		}
 | |
| 	}
 | |
| 	print "$result\n";
 | |
| 	if ($? != 0) {
 | |
| 		die("Could not configure: $!\n");
 | |
| 	}
 | |
| 	open(FILE, '>sentinel');
 | |
| 	print FILE "this is nothing.\n";
 | |
| 	close(FILE);
 | |
| }
 | |
| 
 | |
| sub IsNewer
 | |
| {
 | |
| 	my ($file, $time) = (@_);
 | |
| 
 | |
| 	my @s = stat($file);
 | |
| 	my $mtime = $s[9];
 | |
| 	return $mtime > $time;
 | |
| }
 | |
| 
 | |
| exit(0);
 | |
| 
 | |
| 
 |