summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-08-21 18:13:59 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-08-21 18:13:59 +0000
commit170031ebe4ae3a55e18ed72cccc101590dc8ba8a (patch)
treeae65e39b5ac00fd394214a6d0640d2284cbae14c /bin
parent3b62b31a98fb98225a183690d2113194d377feea (diff)
downloadATCD-170031ebe4ae3a55e18ed72cccc101590dc8ba8a.tar.gz
ChangeLogTag:Thu Aug 21 13:08:43 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
Diffstat (limited to 'bin')
-rwxr-xr-xbin/create_ace_build44
1 files changed, 32 insertions, 12 deletions
diff --git a/bin/create_ace_build b/bin/create_ace_build
index 7824e7896dc..9e1b3911fd0 100755
--- a/bin/create_ace_build
+++ b/bin/create_ace_build
@@ -33,10 +33,14 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
# full path to perl, as long as it is in the user's PATH.
# Taken from perlrun man page.
-$usage = "usage: $0 -? | [-d <directory mode>] [-v] <build name>\n";
+$usage = "usage: $0 -? | [-a] [-d <directory mode>] [-v] <build name>\n";
$directory_mode = 042755; #### fine on Suns, but maybe not all Unix platforms
$verbose = 0;
+$source='.';
+$absolute= 0;
+
+require Cwd;
####
#### process command line args
@@ -51,6 +55,9 @@ while ( $#ARGV >= 0 && $ARGV[0] =~ /^-/ ) {
warn "$0: must provide argument for -d option\n";
die $usage;
}
+ } elsif ($ARGV[0] eq '-a' ) {
+ $source = Cwd::getcwd();
+ $absolute = 1;
} elsif ( $ARGV[0] eq '-?' ) {
print "$usage";
exit;
@@ -81,7 +88,8 @@ $build = "build/$build";
####
#### Get all ACE plain file and directory names.
####
-@files = ( `/usr/bin/find . -name CVS -prune -o -name build -prune -o \\\
+@files = ( `/usr/bin/find . -name CVS -prune \\\
+ -o -name build -prune -o \\\
-name '.*obj' -prune -o -name Templates.DB -prune -o \\\
\\( ! -type l ! -name core ! -name '*.state' ! -name '*.so' \\\
! -name '*.[oa]' ! -name '*~' ! -name '.' ! -name '.#*' \\\
@@ -92,22 +100,29 @@ $build = "build/$build";
#### Create directories and symlinks to files.
####
foreach $file ( @files ) {
- chop $file; #### remove trailing newline (from find command above)
- $file =~ s%^\./%%g; #### excise leading ./ directory component
+ chop $file; #### remove trailing newline (from find command above)
+ $file =~ s%^./%%g; #### excise leading ./ directory component
- if ( -d $file ) {
+ if ( -d $file ) {
unless ( -d "$build/$file" ) {
print "mkdir $build/$file, $directory_mode\n" if $verbose;
mkdir "$build/$file", $directory_mode;
}
} else {
unless ( -e "$build/$file" ) {
- $up = '../..';
- while ( $file =~ m%/%g ) { $up .= '/..'; }
-
- print "symlink $up/$file $build/$file\n" if $verbose;
- symlink "$up/$file", "$build/$file" ||
+ if (!$absolute) {
+ $up = '../..';
+ while ( $file =~ m%/%g ) { $up .= '/..'; }
+
+ print "symlink $up/$file $build/$file\n" if $verbose;
+ symlink "$up/$file", "$build/$file" ||
die "$0 symlink to $build/$file failed\n";
+ } else {
+ $path = $source . '/' . $file;
+ print "symlink $path $build/$file\n" if $verbose;
+ symlink "$path", "$build/$file"
+ || die "$0 symlink to $build/$file failed\n";
+ }
}
}
}
@@ -116,8 +131,13 @@ foreach $file ( @files ) {
#### If this is for an ACE top-level directory, create ChangeLog symlink.
####
unless ( -e "$build/ChangeLog" ) {
- symlink '../../ChangeLog', "$build/ChangeLog" ||
- die "$0: unable to create $build/ChangeLog symlink\n";
+ if (!$absolute) {
+ symlink "../../ChangeLog", "$build/ChangeLog" ||
+ die "$0: unable to create $build/ChangeLog symlink\n";
+ } else {
+ symlink "$source/ChangeLog", "$build/ChangeLog" ||
+ die "$0: unable to create $build/ChangeLog symlink\n";
+ }
}
####