summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--infrastructure/BoxPlatform.pm.in30
-rwxr-xr-xinfrastructure/makeparcels.pl.in24
-rw-r--r--infrastructure/parcelpath.pl17
3 files changed, 43 insertions, 28 deletions
diff --git a/infrastructure/BoxPlatform.pm.in b/infrastructure/BoxPlatform.pm.in
index f5c55f25..8657134e 100644
--- a/infrastructure/BoxPlatform.pm.in
+++ b/infrastructure/BoxPlatform.pm.in
@@ -5,7 +5,6 @@ use Exporter;
BEGIN
{
-
# which OS are we building under?
$target_os = '@target_os@';
$target_windows = 0;
@@ -38,20 +37,17 @@ BEGIN
$platform_exe_ext = '@EXEEXT@';
# get version
- if (! -r "VERSION.txt" and -r "../../VERSION.txt")
- {
- open VERSION,"../../VERSION.txt" or die "../../VERSION.txt: $!";
- }
- else
- {
- open VERSION,"VERSION.txt" or die "VERSION.txt: $!";
- }
+ my $version_file = "VERSION.txt";
+ if (not -r $version_file) { $version_file = "../../$version_file" }
+ die "missing version file: $version_file" unless $version_file;
+ open VERSION, $version_file or die "$version_file: $!";
$product_version = <VERSION>;
chomp $product_version;
$product_name = <VERSION>;
chomp $product_name;
close VERSION;
+
if($product_version =~ /USE_SVN_VERSION/)
{
# for developers, use SVN version
@@ -116,5 +112,21 @@ sub make_flag
return $_[0].'=1';
}
+sub parcel_root
+{
+ my $tos = $_[1] || $target_os;
+ return $product_name.'-'.$product_version.'-'.$_[0].'-'.$tos;
+}
+
+sub parcel_dir
+{
+ 'parcels/'.parcel_root($_[0], $_[1])
+}
+
+sub parcel_target
+{
+ parcel_dir($_[0]).'.tgz'
+}
+
1;
diff --git a/infrastructure/makeparcels.pl.in b/infrastructure/makeparcels.pl.in
index 6a355bbf..2370f435 100755
--- a/infrastructure/makeparcels.pl.in
+++ b/infrastructure/makeparcels.pl.in
@@ -98,8 +98,8 @@ print MAKE "all:\t",join(' ',map {"build-".$_} @parcels),"\n\n";
print MAKE "clean:\n";
for my $parcel (@parcels)
{
- print MAKE "\trm -rf ",parcel_dir($parcel),"\n";
- print MAKE "\trm -f ",parcel_target($parcel),"\n";
+ print MAKE "\trm -rf ", BoxPlatform::parcel_dir($parcel), "\n";
+ print MAKE "\trm -f ", BoxPlatform::parcel_target($parcel), "\n";
}
print MAKE "\tif [ `uname -o` = 'Cygwin' ]; then find release debug -type f | xargs -r rm -f; else find release debug -type f -exec rm -f {} \\;; fi\n";
print MAKE "\n";
@@ -110,8 +110,8 @@ my $release_flag = BoxPlatform::make_flag('RELEASE');
for my $parcel (@parcels)
{
- my $target = parcel_target($parcel);
- my $dir = parcel_dir($parcel);
+ my $target = BoxPlatform::parcel_target($parcel);
+ my $dir = BoxPlatform::parcel_dir($parcel);
my @parcel_deps;
unless ($target_windows)
@@ -215,7 +215,7 @@ EOF
chmod 0755,"parcels/scripts/install-$parcel";
}
- my $root = parcel_root($parcel);
+ my $root = BoxPlatform::parcel_root($parcel);
unless ($target_windows)
{
@@ -256,17 +256,3 @@ print INSTALLMSG "\n";
close INSTALLMSG;
-sub parcel_root
-{
- $product_name.'-'.$product_version.'-'.$_[0].'-'.$target_os
-}
-
-sub parcel_dir
-{
- 'parcels/'.parcel_root($_[0])
-}
-
-sub parcel_target
-{
- parcel_dir($_[0]).'.tgz'
-}
diff --git a/infrastructure/parcelpath.pl b/infrastructure/parcelpath.pl
new file mode 100644
index 00000000..24f951a2
--- /dev/null
+++ b/infrastructure/parcelpath.pl
@@ -0,0 +1,17 @@
+#!perl
+
+unless (@ARGV == 2)
+{
+ die "Usage: $0 <parcel-name> <target-os>\n";
+}
+
+$basedir = $0;
+$basedir =~ s|/.*||;
+$basedir .= "/..";
+-d $basedir or die "$basedir: $!";
+chdir $basedir or die "$basedir: $!";
+require "infrastructure/BoxPlatform.pm.in";
+
+print BoxPlatform::parcel_dir(@ARGV) . "\n";
+
+exit 0;