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