summaryrefslogtreecommitdiff
path: root/bin/create_ace_build
diff options
context:
space:
mode:
Diffstat (limited to 'bin/create_ace_build')
-rwxr-xr-xbin/create_ace_build183
1 files changed, 0 insertions, 183 deletions
diff --git a/bin/create_ace_build b/bin/create_ace_build
deleted file mode 100755
index 3a92ec0088c..00000000000
--- a/bin/create_ace_build
+++ /dev/null
@@ -1,183 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# Creates an ACE build tree in directory "build/<build name>" below the current
-# directory, which must be an ACE "top level" directory (such as
-# $ACE_ROOT). The build tree directory structure mirrors that of the ACE
-# top level directory structure, except that instead of containing any plain
-# files, it contains only symlinks to the files in the ACE top level structure.
-#
-# This program has a similar purpose to "clone", but in addition to
-# only creating symlinks (clone creates hard links, by default), this
-# script:
-# 1) uses relative rather than absolute symlinks,
-# 2) tries not to put junk files into the build tree,
-# 3) only creates a new tree in a build/ directory below the current,
-# top level ACE directory (it's a feature :-), but it does enforce
-# consistency).
-#
-# This program can be re-run on a build tree at any time in order to
-# update it. It will only add new symlinks, it won't remove any that
-# are no longer valid. If you want to do that, it's easiest just to
-# remove the build completely and start from scratch.
-#
-# If the <build name> starts with "build/", that part will be removed
-# from it.
-#
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-$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;
-
-$perl_version = $] + 0;
-if ($perl_version >= 5) {
- #### Use an eval so that this script will compile with perl4.
- eval <<'PERL5_CWD'
- require Cwd;
- sub cwd {
- Cwd::getcwd ();
- }
-PERL5_CWD
-} else {
- sub cwd {
- local ($pwd);
-
- chop ($pwd = `pwd`);
- $pwd;
- }
-}
-
-####
-#### Process command line args.
-####
-while ($#ARGV >= 0 && $ARGV[0] =~ /^-/) {
- if ($ARGV[0] eq '-v') {
- $verbose = 1;
- } elsif ($ARGV[0] eq '-d') {
- if ($ARGV[1] =~ /^\d+$/) {
- $directory_mode = eval ($ARGV[1]); shift;
- } else {
- warn "$0: must provide argument for -d option\n";
- die $usage;
- }
- } elsif ($ARGV[0] eq '-a') {
- $source = &cwd ();
- $absolute = 1;
- } elsif ($ARGV[0] eq '-?') {
- print "$usage";
- exit;
- } else {
- warn "$0: unknown option $ARGV[0]\n";
- die $usage;
- }
- shift;
-}
-
-die $usage unless $#ARGV == 0;
-$build = $ARGV[0];
-$build =~ s%^build/%%; #### remove leading "build/", if any
-$build = "build/$build";
-
-if (-e '/usr/bin/find') {
- $find = '/usr/bin/find';
-} elsif (-e '/bin/find') {
- $find = '/bin/find';
-} else {
- $find = '/find';
-}
-
-####
-#### Check that we're in an ACE "top level" directory.
-####
-(-d 'ace' && -d 'include') ||
- die "$0: must be in an ACE top level (ACE_ROOT) directory!\n";
-
-####
-#### Create build directories, if needed.
-####
--d 'build' || mkdir ('build', $directory_mode);
--d "$build" || mkdir ("$build", $directory_mode);
-
-####
-#### Get all ACE plain file and directory names.
-####
-@files = (`$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 '.#*' \\\
- ! -name '*.log' \\) \\\
- -print`);
-
-####
-#### 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
-
- 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") {
- if (!$absolute) {
- $up = '../..';
- while ($file =~ m%/%g) {
- $up .= '/..';
- }
-
- print "symlink $up/$file $build/$file\n" if $verbose;
- symlink ("$up/$file", "$build/$file") ||
- warn "$0: symlink to $build/$file failed\n";
- } else {
- $path = $source . '/' . $file;
- print "symlink $path $build/$file\n" if $verbose;
- symlink ("$path", "$build/$file") ||
- warn "$0: symlink to $build/$file failed\n";
- }
- }
- }
-}
-
-####
-#### Find all the symlinks in the build directory, and remove ones
-#### that are no longer actually linked to a file.
-####
-open (LINKS, "$find $build -type l |") ||
- die "$0: cannot find symlinks in $build\n";
-
-while (<LINKS>) {
- chop;
- local @s = stat $_;
- if ($#s == -1) {
- print "Removing $_ \n" if $verbose;
- unlink $_ || warn "$0: unlink of $_ failed\n";
- }
-}
-close (LINKS) ||
- die "$0: cannot close symlinks pipe\n";
-
-####
-#### Done: print message.
-####
-print "\nCompleted creation of $build/.\n";
-
-unless (-e "$build/ace/config.h" &&
- -e "$build/include/makeinclude/platform_macros.GNU") {
- print "Be sure to setup $build/ace/config.h and\n" .
- "$build/include/makeinclude/platform_macros.GNU symlinks.\n";
-}
-
-#### EOF