diff options
Diffstat (limited to 'infrastructure/BoxPlatform.pm.in')
-rw-r--r-- | infrastructure/BoxPlatform.pm.in | 80 |
1 files changed, 42 insertions, 38 deletions
diff --git a/infrastructure/BoxPlatform.pm.in b/infrastructure/BoxPlatform.pm.in index b2b2ce43..325e56c3 100644 --- a/infrastructure/BoxPlatform.pm.in +++ b/infrastructure/BoxPlatform.pm.in @@ -1,24 +1,34 @@ package BoxPlatform; use Exporter; @ISA = qw/Exporter/; -@EXPORT = qw/$build_os $target_os $make_command $bsd_make $platform_define $platform_cpu $gcc_v3 $product_version $product_name $install_into_dir $sub_make_options $platform_compile_line_extra $platform_link_line_extra $platform_lib_files $platform_exe_ext $target_windows/; +@EXPORT = qw/$build_os $build_os_ver $ac_target $ac_target_cpu $ac_target_vendor $ac_target_os $make_command $bsd_make $platform_define $platform_cpu $gcc_v3 $product_version $product_name $install_into_dir $sub_make_options $platform_compile_line_extra $platform_link_line_extra $platform_lib_files $platform_exe_ext $target_windows $target_msvc/; BEGIN { # which OS are we building under? - $target_os = '@target_os@'; + $ac_target = '@target@'; + $ac_target_cpu = '@target_cpu@'; + $ac_target_vendor = '@target_vendor@'; + $ac_target_os = '@target_os@'; $target_windows = 0; - $target_windows = 1 if $target_os =~ m'^mingw32' - or $target_os eq "winnt"; if ($^O eq "MSWin32" and not -x "/usr/bin/uname") { + $target_windows = 1; + $target_msvc = 1; $build_os = "winnt"; + eval "use Win32"; + $build_os_ver = Win32::GetOSName(); } else { + $target_windows = 1 if $ac_target_os =~ m'^mingw32' + or $ac_target_os eq "winnt"; + $target_msvc = 0; $build_os = `uname`; + $build_os_ver = `uname -r`; chomp $build_os; + chomp $build_os_ver; } # Cygwin Builds usually something like CYGWIN_NT-5.0, CYGWIN_NT-5.1 @@ -30,11 +40,23 @@ BEGIN $xcode_ver = `xcodebuild -version | awk '/^Xcode/ {print \$2}'` } - $make_command = ($build_os eq 'Darwin' && $xcode_ver < 4) ? 'bsdmake' : ($build_os eq 'SunOS') ? 'gmake' : 'make'; - - $bsd_make = ($build_os ne 'Linux' && $build_os ne 'CYGWIN' && - $build_os ne "MINGW32" && $build_os ne "SunOS" - && $build_os ne 'GNU/kFreeBSD' && $xcode_ver < 4); + if ($build_os eq 'Darwin' and $xcode_ver < 4) + { + $make_command = 'bsdmake'; + $bsd_make = 1; + } + elsif ($build_os eq 'SunOS') + { + $make_command = 'gmake'; + $bsd_make = 0; + } + else + { + $make_command = 'make'; + $bsd_make = ($build_os ne 'Linux' && $build_os ne 'CYGWIN' && + $build_os ne "MINGW32" && $build_os ne 'GNU/kFreeBSD' && + $build_os ne 'Darwin'); + } # blank extra flags by default $platform_compile_line_extra = ''; @@ -56,33 +78,10 @@ BEGIN if($product_version =~ /USE_SVN_VERSION/) { - # for developers, use SVN version - my $svnversion = `svnversion .`; - chomp $svnversion; - $svnversion =~ tr/0-9A-Za-z/_/c; - open INFO,'svn info . |'; - my $svnurl; - while(<INFO>) - { - if(m/^URL: (.+?)[\n\r]+/) - { - $svnurl = $1 - } - } - close INFO; - - my $svndir; - if ($svnurl =~ m!/box/(.+)$!) - { - $svndir = $1; - } - elsif ($svnurl =~ m'/(boxi/.+)/boxi/boxbackup') - { - $svndir = $1; - } - - $svndir =~ tr/0-9A-Za-z/_/c; - $product_version =~ s/USE_SVN_VERSION/$svndir.'_'.$svnversion/e; + # for developers, use Git version (SVN is no more): + my $gitversion = `git rev-parse HEAD`; + chomp $gitversion; + $product_version =~ s/USE_SVN_VERSION/git_$gitversion/; } # where to put the files @@ -108,7 +107,7 @@ BEGIN print STDERR "$cpus processors detected, will set make to perform concurrent jobs\n"; $sub_make_options = ' -j '.($cpus + 1); } - + # if it's Darwin, if($build_os eq 'Darwin') { @@ -120,6 +119,11 @@ BEGIN $platform_link_line_extra = '-L/sw/lib '; } } + + if ($target_windows) + { + $platform_exe_ext = '.exe'; + } } sub make_flag @@ -133,7 +137,7 @@ sub make_flag sub parcel_root { - my $tos = $_[1] || $target_os; + my $tos = $_[1] || $ac_target; return $product_name.'-'.$product_version.'-'.$_[0].'-'.$tos; } |