diff --git a/util/configure b/util/configure index 5b91e03..ef2b4de 100755 --- a/util/configure +++ b/util/configure @@ -446,6 +446,11 @@ _END_ $extra_opts .= ' CFLAGS=-I..'; } + if ($on_solaris) { + $extra_opts .= " INSTALL_X='$root_dir/build/install -m 0755' " . + "INSTALL_F='$root_dir/build/install -m 0644'"; + } + if (defined $cc) { $extra_opts .= " CC=$cc"; } diff --git a/util/install b/util/install new file mode 100755 index 0000000..27dc366 --- /dev/null +++ b/util/install @@ -0,0 +1,79 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +use Getopt::Std qw(getopts); + +my %opts; +getopts("m:", \%opts) or usage(); + +my $mode = $opts{m}; + +if (!defined $mode) { + die "No -m option specified.\n"; +} + +my $mod = $opts{m}; + +if (@ARGV < 2) { + usage(); +} + +my $dst = pop; + +my @src = @ARGV; + +my $target_dir; + +if (@src > 1 || $dst =~ m{/$}) { + $target_dir = $dst; + +} elsif (-d $dst) { + $target_dir = $dst; + +} elsif ($dst =~ m{(.+)/}) { + $target_dir = $1; + +} else { + $target_dir = '.'; +} + +if (!-d $target_dir) { + shell("mkdir -p $target_dir"); +} + +shell("cp @src $dst"); + +if (-f $dst) { + chmod oct($mode), $dst or + die "failed to change mode of $dst to $mode.\n"; + + exit; +} + +for my $src (@src) { + my $name; + + if ($src =~ m{/([^/]+)$}) { + $name = $1; + + } else { + $name = $src; + } + + my $target = "$target_dir/$name"; + chmod oct($mode), $target or + die "failed to change mode of $target to $mode.\n"; +} + +sub usage { + die "Usage: install -m ... \n"; +} + +sub shell { + my $cmd = shift; + system($cmd) == 0 or + die "failed to run command $cmd\n"; +} + diff --git a/util/mirror-tarballs b/util/mirror-tarballs index ab2bff6..6d0c09a 100755 --- a/util/mirror-tarballs +++ b/util/mirror-tarballs @@ -208,6 +208,7 @@ rm *.tar.gz cd .. cp $root/util/configure ./ cp $root/README ./ +cp $root/util/install bundle/ cd $root diff --git a/util/ver b/util/ver index da9eee8..2c41448 100755 --- a/util/ver +++ b/util/ver @@ -1,7 +1,7 @@ #!/bin/bash main_ver=1.0.4 -minor_ver=2rc12 +minor_ver=2rc13 version=$main_ver.$minor_ver echo $version