summaryrefslogtreecommitdiff
path: root/bin/autoconf_compile
diff options
context:
space:
mode:
Diffstat (limited to 'bin/autoconf_compile')
-rwxr-xr-xbin/autoconf_compile520
1 files changed, 0 insertions, 520 deletions
diff --git a/bin/autoconf_compile b/bin/autoconf_compile
deleted file mode 100755
index 8c3a283723d..00000000000
--- a/bin/autoconf_compile
+++ /dev/null
@@ -1,520 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# -*- perl -*-
-# $Id$
-#
-# This script checkouts ACE from CVS, configures ACE, and compiles
-# `ace', `tests' and finally runs `tests/run_tests.sh'.
-#
-# If it detects any problem it sends e-mail.
-#
-# DO NOT invoke this script from your crontab, use
-# autoconf_compile_wrapper for that.
-#
-# This script requires Perl 5.
-#
-# TODO: Modify the script or split it in such a way that the main copy
-# can be obtained either using cvs or downloading the latest beta
-# from the WWW.
-#
-
-# 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.
-
-use File::Basename;
-use FileHandle;
-require POSIX;
-
-$directory_mode=0755;
-
-# This is the module we will checkout, someday someone could define a
-# smaller module.
-$MODULE='ACE_wrappers';
-
-# These are the sub-directories (in the module) we really compile.
-
-# Find out the command name.
-$CMD = basename($0);
-
-$single_threaded = 0;
-$minimum_corba = 0;
-$ami = 0;
-$dont_update = 0;
-$dont_run = 0;
-$pre_clean = 0;
-$post_clean = 0;
-$report_success = 0;
-$debug = 0;
-@BUILD_LIST= ();
-
-@ARGS = ();
-while ($#ARGV >= 0) {
- if (!($ARGV[0] =~ m/-/)) {
- push @ARGS, $ARGV[0];
- shift;
- } elsif ($ARGV[0] eq "-single_threaded") {
- $single_threaded = 1;
- shift;
- } elsif ($ARGV[0] eq "-minimum_corba") {
- $minimum_corba = 1;
- shift;
- } elsif ($ARGV[0] eq "-ami") {
- $ami =1;
- shift;
- } elsif ($ARGV[0] eq "-build_list") {
- shift;
- @BUILD_LIST = split (/,/, $ARGV[0]);
- shift;
- } elsif ($ARGV[0] eq "-dont_update") {
- $dont_update = 1;
- shift;
- } elsif ($ARGV[0] eq "-dont_run") {
- $dont_run = 1;
- shift;
- } elsif ($ARGV[0] eq "-pre_clean") {
- $pre_clean = 1;
- shift;
- } elsif ($ARGV[0] eq "-post_clean") {
- $post_clean = 1;
- shift;
- } elsif ($ARGV[0] eq "-report_success") {
- $report_success = 1;
- shift;
- } elsif ($ARGV[0] eq "-debug") {
- $debug = 1;
- shift;
- }
-}
-
-# Extract configuration information from command line.
- # TODO: Some validation and checking should be done here.
-$CHECKOUT = $ARGS[0];
-$BUILD = $ARGS[1];
-$LOGDIR = $ARGS[2];
-$ADMIN = $ARGS[3];
-$MAIL = "mail";
-if ($#ARGS >= 4) {
- $MAIL = $ARGS[4];
-}
-
-# We obtain our revision to report errors.
-$REVISION='$Revision$ ';
-
-# When an error is found we try to die gracefully and send some email
-# to ADMIN.
-
-$disable_file = $LOGDIR . '/.disable';
-$histfile = $LOGDIR . '/history';
-$LOGBASE = POSIX::strftime("%b%d_%Y.txt", localtime);
-$LOGFILE = $LOGDIR . '/' . $LOGBASE;
-$HOST = `hostname`;
-chop $HOST;
-$LOG_NAME = $HOST . "_" . $BUILD . "_" . $LOGBASE;
-$STATUS = "OK";
-
-if ($debug) {
- print "CHECKOUT = $CHECKOUT\n";
- print "BUILD = $BUILD\n";
- print "LOGDIR = $LOGDIR\n";
- print "ADMIN = $ADMIN\n";
- print "MAIL = $MAIL\n";
-}
-
-push @INC, $CHECKOUT . '/' . $MODULE . '/bin';
-#require run_all_list;
-@RUN_LIST = ('tests'); # Temporary hack
-
-
-if ($#BUILD_LIST == -1) {
- @BUILD_LIST=
- ('ace',
- 'netsvcs',
- 'tests',
- 'apps/gperf');
-}
-if ($debug) {
-
- @BUILD_LIST = ('ace');
- @RUN_LIST = ('tests');
-# @SINGLE_THREADED_LIST = ('TAO/tests/OctetSeq');
-# @MINIMUM_CORBA_LIST = ('TAO/tests/OctetSeq');
- $ADMIN = $ENV{'LOGNAME'};
-
-}
-
-sub mydie {
- unlink $disable_file;
- die $_ . "\n";
-}
-
-sub report_errors {
- # First clear the lock, so the next execution works...
- unlink $disable_file; # Ignore errors!
-
- # Now send a summary of the errors to the ADMIN account...
- local $to = $ADMIN;
-
- open (MAIL, "|".$MAIL.' -s "[AUTO_COMPILE] '.$BUILD.'" '.$to)
- || mydie "Cannot open mail pipe for: $_\n";
-
- print MAIL 'The following message is brought to you by: ', "\n";
- print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n\n";
-
- local $m;
- foreach $m (@_) {
- print MAIL $m, "\n";
- }
-
- print MAIL "\nPlease check the following log for more info:\n\n";
- print MAIL 'http://www.cs.wustl.edu/~bugzilla/auto_compile_logs/',
- $LOG_NAME, "\n\n";
-
- close (MAIL); # Ignore errors....
-
- # Now send the complete log to bugzilla...
- local $bugs = 'bugzilla'.'@cs.wustl.edu';
- open (MAIL, "|".$MAIL.' -s AUTO_COMPILE_LOG='.$LOG_NAME.' '.$bugs)
- || mydie "Cannot open mail pipe for: $LOG_NAME\n";
-
- print MAIL 'This is the log for: ', "\n";
- print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
-
- print MAIL "\n================================================================\n";
-
- if (open (THELOG, "$LOGFILE"))
- {
- while (<THELOG>) {
- print MAIL $_;
- }
- close (THELOG);
- }
- close (MAIL); # Ignore errors....
-}
-
-### MAIN FUNCTION
-
-if (-f $disable_file) {
- print 'The following message is brought to you by: ', "\n";
- print $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
-
- print "DISABLED\n";
-
- exit 0;
-}
-
-open (DISABLE, '>' . $disable_file)
- || die "cannot open disable file";
-print DISABLE "autoconf_compile <$date> is running\n";
-close (DISABLE)
- || die "cannot close disable file";
-
-open(HIST, '>>' . $histfile)
- # Do not use 'mydie' to report the problem, it tries to remove the
- # disable file
- || mydie "cannot open history file \"$histfile\"\n";
-
-$date = localtime;
-
-print HIST $CMD, ': running at ', $date, ' ';
-
-open(LOG, '>' . $LOGFILE)
- || mydie "cannot open log file";
-
-LOG->autoflush ();
-
-# The following lines are useful when debugging the script or wrapper.
-# print LOG $CHECKOUT, " ", $BUILD, " ", $LOGDIR, " ", $ADMIN, "\n";
-#while (($key,$value) = each %ENV) {
-# print LOG $key, " = ", $value, "\n";
-#}
-
-chdir($CHECKOUT)
- || mydie "Cannot chdir to $CHECKOUT";
-
-if ($dont_update == 0) {
- $date = localtime;
- print LOG "$CMD: starting checkout at ", $date, "\n";
- open(CVS, "cvs -q checkout -P $MODULE 2>&1 |")
- || mydie "cannot start checkout of $MODULE";
-# open(CVS, "cvsup -g -L 2 -P m ace-supfile 2>&1 |")
-# || mydie "cannot start checkout";
-
- $conflicts = 0;
- while (<CVS>) {
- if (m/^C /) {
- $conflicts = 1;
- }
- print LOG $_;
- }
- close(CVS)
- || mydie "error while checking out $MODULE";
- $date = localtime;
- print LOG "$CMD: checkout finished at ", $date, "\n";
-
- if ($conflicts != 0) {
- mydie "conflicts on checkout";
- }
-}
-
-chdir($MODULE)
- || mydie "cannot chdir to $MODULE";
-
-open (CHLOG, "ChangeLog")
- || mydie "cannot open Changelog";
-$_ = <CHLOG>;
-chop;
-print LOG "ACE ChangeLogTag:", $_, "\n";
-close (CHLOG);
-
-open (CHLOG, "TAO/ChangeLog")
- || mydie "cannot open TAO/Changelog";
-$_ = <CHLOG>;
-chop;
-print LOG "TAO ChangeLogTag:", $_, "\n";
-close (CHLOG);
-
-# Bootstrap the workspace
-print LOG "$CMD: ==================================================\n\n";
-print LOG "$CMD: bootstrapping the workspace\n";
-open(BOOTSTRAP, "cd $CHECKOUT/ACE_wrappers && "
- . "sh bin/bootstrap workspace --enable-deps 2>&1 |")
- || mydie "cannot bootstrap workspace for $BUILD";
-while(<BOOTSTRAP>) {
- print LOG $_;
-}
-close(BOOTSTRAP)
- || mydie "error while bootstrapping the workspace";
-print LOG "$CMD: ==================================================\n\n";
-
-# Begin the workspace configuration
-$date = localtime;
-print LOG "$CMD: starting configuration at ", $date, "\n";
-
-# Check that we're in an ACE "top level" directory.
-# We can actually build outside of the top level ACE directory, but
-# let's do it this way for now.
-(-d 'ace' && -d 'm4') ||
- die "$0: must be in top level ACE directory!\n";
-
-# Create build directories, if needed.
--d 'build' || mkdir ('build', $directory_mode);
--d "$build" || mkdir ('build/' . "$BUILD", $directory_mode);
-
-# Now enter the build directory.
-chdir('build/' . $BUILD)
- || mydie "cannot chdir to $BUILD";
-
-# Remove the configuration cache file to make sure a fresh
-# configuration is created.
-unlink "config.cache";
-
-# Run the configuration script.
-open(CONFIGURE, "sh $CHECKOUT/ACE_wrappers/configure 2>&1 |")
- || mydie "cannot configure for $BUILD";
-while(<CONFIGURE>) {
- print LOG $_;
-}
-close(CONFIGURE)
- || mydie "error while configuring ACE";
-$date = localtime;
-print LOG "$CMD: configure finished at ", $date, "\n";
-
-
-@failures = ();
-
-if ($pre_clean) {
- foreach $i (@BUILD_LIST) {
- $date = localtime;
- print LOG "$CMD: =============================================\n";
- print LOG "$CMD: make clean in $i started at ", $date, "\n";
- open(MAKE, "make -k $MAKEFLAGS -C $i clean 2>&1 |")
- || mydie "cannot start make in $i";
-
- while (<MAKE>) {
- # Ignore errors....
- }
- if (close(MAKE) == 0) {
- push @failures, "errors while cleaning $i";
- }
- $date = localtime;
- print LOG "$CMD: make clean in $i finished at ", $date, "\n";
- print LOG "$CMD: ==================================================\n\n";
- }
-}
-
-$MAKEFLAGS .= "";
-foreach $i (@BUILD_LIST) {
- $date = localtime;
- print LOG "$CMD: =============================================\n";
- print LOG "$CMD: make for $i started at ", $date, "\n";
- open(MAKE, "make -k $MAKEFLAGS -C $i 2>&1 |")
- || mydie "cannot start make for $i";
-
- local $current_dir = $i;
- local $last_error = "";
- while (<MAKE>) {
- chop;
- if ($^O eq 'hpux'
- && m/^Warning:[ \t]+[0-9]+ future errors were detected/) {
- next;
- }
- print LOG $_, "\n";
-
- if (m/^make(\[[0-9]+\])?: Entering directory /) {
- s/^make(\[[0-9]+\])?: Entering directory //;
- $current_dir = $_;
- }
- if (m/error:/i || m/error /i
- || m/^make(\[[0-9]+\])?: \*\*\*/) {
- if ($last_error ne $current_dir
- || STATUS eq "COMPILATION WARNING") {
- $STATUS = "COMPILATION ERROR";
- push @failures, "Error while compiling in $current_dir \n";
- $last_error = $current_dir;
- }
- }
- if (m/warning:/i || m/warning /i) {
- if ($last_error ne $current_dir) {
- if ($STATUS eq "OK") {
- $STATUS = "COMPILATION WARNING";
- }
- push @failures, "Warning while compiling in $current_dir\n";
- $last_error = $current_dir;
- }
- }
- }
- if (close(MAKE) == 0) {
- push @failures, "errors while running make in $i";
- }
- $date = localtime;
- print LOG "$CMD: make for $i finished at ", $date, "\n";
- print LOG "$CMD: =============================================\n\n";
-}
-
-if ($dont_run == 0) {
- @LIST = @RUN_LIST;
- if ($single_threaded) {
- @LIST = @SINGLE_THREADED_LIST;
- } elsif ($minimum_corba) {
- @LIST = @MINIMUM_CORBA_LIST;
- } elsif ($ami) {
- @LIST = @AMI_CORBA_LIST;
- }
-
- foreach $i (@LIST) {
-
- $date = localtime;
- print LOG "$CMD: ==================================================\n";
- print LOG "$CMD: running checks in $i at ", $date, "\n";
- local $subdir =
- $CHECKOUT .'/'. $MODULE .'/build/'. $BUILD .'/'. $i;
- chdir ($subdir)
- || mydie "cannot chdir to $subdir";
-
- $run_error = 0;
- open(CHECK, "make -k $MAKEFLAGS -C $subdir check 2>&1 |");
-
- local $current_dir = $i;
- local $last_error = "";
- while (<CHECK>) {
- chop;
- if ($^O eq 'hpux'
- && m/^Warning:[ \t]+[0-9]+ future errors were detected/) {
- next;
- }
- print LOG $_, "\n";
-
- if (m/^make(\[[0-9]+\])?: Entering directory /) {
- s/^make(\[[0-9]+\])?: Entering directory //;
- $current_dir = $_;
- }
- if (m/error:/i || m/error /i
- || m/^make(\[[0-9]+\])?: \*\*\*/) {
- if ($last_error ne $current_dir
- || STATUS eq "COMPILATION WARNING") {
- $STATUS = "COMPILATION ERROR";
- push @failures, "Error while compiling in $current_dir \n";
- $last_error = $current_dir;
- }
- }
- if (m/warning:/i || m/warning /i) {
- if ($last_error ne $current_dir) {
- if ($STATUS eq "OK") {
- $STATUS = "COMPILATION WARNING";
- }
- push @failures, "Warning while compiling in $current_dir\n";
- $last_error = $current_dir;
- }
- }
- if (m/Error/
- || m/ERROR/
- || m/FAILED/
- || m/failed/
- || m/FAIL/
- || m/EXCEPTION/
- || m/pure virtual /i) {
- if ($STATUS eq "OK") {
- $STATUS = "RUNTIME ERROR";
- }
- $run_error = 1;
- }
- }
-
- if (close(CHECK) == 0) {
- if ($STATUS eq "OK") {
- $STATUS = "RUNTIME ERROR";
- }
- push @failures, "Error when closing pipe in $i";
- next;
- }
- $date = localtime;
- print LOG "$CMD: check finished ", $date, "\n";
-
- if ($run_error != 0) {
- push @failures,
- "errors detected while making check in $i";
- }
- }
-}
-
-if ($post_clean) {
- foreach $i (@BUILD_LIST) {
- $date = localtime;
- print LOG "$CMD: ==================================================\n";
- print LOG "$CMD: make clean in $i started at ", $date, "\n";
- open(MAKE, "make -k $MAKEFLAGS -C $i clean 2>&1 |");
-
- while (<MAKE>) {
- # Ignore errors....
- }
- if (close(MAKE) == 0) {
- push @failures, "errors while cleaning $i";
- }
- $date = localtime;
- print LOG "$CMD: make clean in $i finished at ", $date, "\n";
- print LOG "$CMD: ==================================================\n\n";
- }
-}
-
-if ($#failures >= 0) {
- report_errors @failures;
-}
-
-close(LOG)
- || mydie "cannot close LOGFILE";
-
-print HIST "$STATUS\n";
-close(HIST)
- || mydie "cannot close history file";
-
-unlink $disable_file
- || die "cannot unlink disable file";
-
-if ($report_success && $STATUS eq "OK") {
- report_errors "Congratulations: No errors or warnings detected\n";
-}
-
-exit 0;