1
1
openmpi/contrib/dist/make_dist_tarball
Brian Barrett 3c11936b34 Minor changes to the distscript:
- The Verification check only checked that a file that's in SVN is there,
    which AM would have complained about during make dist, so it's really
    a pointless check
  - No need to remove / restore autogen.sh, as AM isn't going to put it
    in the tarball anyway, and even if it would, this thing would only
    cause it to fail during make dist.  All this step did was erase any
    changes you had to autogen.sh when you run make_dist_tarball, which
    really sucks.

This commit was SVN r13307.
2007-01-25 15:53:08 +00:00

184 строки
4.5 KiB
Bash
Исполняемый файл

#!/bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
#
# Version of auto tools that we want
#
AM_TARGET_VERSION=1.9.6
AC_TARGET_VERSION=2.59
LT_TARGET_VERSION=2.1a
#
# First things first -- check that the auto versions that we have are
# the ones that we want.
#
check_gnu_version() {
prog="$1"
target="$2"
ver="`$prog --version | head -n 1 | sed -e's/([^)]*)//g' -e's/[^0-9 .][^ ]* / /g' -e's/ //g'`"
if test "$ver" != "$target"; then
cat <<EOF
ERROR: Program "$prog" does not have the correct/expected version:
Found: $ver
Expected versions:
Automake: $AM_TARGET_VERSION
Autoconf: $AC_TARGET_VERSION
Libtool: $LT_TARGET_VERSION
Either change this script to match the found version, or install
the correct version of the tools.
EOF
exit 1
fi
}
#
# Subroutine to actually make a tarball
#
make_tarball() {
#
# Autogen
#
echo "*** Running autogen.sh..."
./autogen.sh 2>&1 | tee auto.out
if test ! "$?" = "0"; then
echo "Autogen failed. Aborting"
exit 1
fi
#
# Configure
#
echo "*** Running configure..."
./configure --enable-dist 2>&1 | tee config.out
if test ! "$?" = "0"; then
echo "Configure failed. Aborting"
exit 1
fi
#
# make tarball
#
echo "*** Running make distcheck..."
save_LD=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=
make distcheck 2>&1 | tee dist.out
if test ! "$?" = "0"; then
echo "Make dist failed. Aborting"
exit 1
fi
LD_LIBRARY_PATH=$save_LD
#
# move
#
echo "*** Moving tarballs..."
mv openmpi-* ..
echo "*** All done"
}
#########################################################################
# main
#########################################################################
echo "*** Checking GNU tools versions..."
check_gnu_version automake $AM_TARGET_VERSION
check_gnu_version autoconf $AC_TARGET_VERSION
check_gnu_version libtool $LT_TARGET_VERSION
#
# Verify that we're in a top Open MPI dir
#
echo "*** Checking to ensure in top-level Open MPI directory..."
if test -f VERSION -a -f configure.ac -a -f config/ompi_setup_cc.m4; then
happy=1
else
echo "Do not appear to be in an Open MPI top directory. Abort!"
exit 1
fi
#
# Do svn up and all that
#
echo "*** Removing old VERSION files..."
find . -name VERSION -exec rm -f {} \; -print
echo "*** Running svn up..."
svn up
if test ! "$?" = "0"; then
echo "SVN update failed. Aborting"
exit 1
fi
#
# Ditch "svn" from all version numbers
#
echo "*** Removing svn version numbers..."
svn_r="r`svnversion .`"
version_files="`find . -name VERSION`"
for file in $version_files; do
echo " - $file"
sed -e 's/^want_svn=.*/want_svn=0/' \
-e 's/^svn_r=.*/'svn_r=$svn_r/ $file > $file.new
cp -f $file.new $file
rm $file.new
done
#
# Make 2 tarballs:
#
# - one with the greek
# - one without the greek
#
# unless the user specifically said --greekonly, then only make the
# greek tarball. Making both tarballs at once allows us to guarantee
# to have two tarballs -- one greek and one not -- that have exactly
# the same SVN r number (as opposed to, for example, running this
# script to make a greek tarball, then running it again to make a
# non-greek tarball -- there is a race condition that someone could
# commit in the meantime and change the SVN r number in the 2nd
# tarball)
#
# First, make greek tarball
echo "*** Making greek tarball"
make_tarball
# Now if ! --greekonly, make the non-greek tarball
if test "$1" != "-greekonly" -a "$1" != "--greekonly"; then
echo "*** REMOVING ALL GREEK FROM VERSION NUMBERS!!"
for file in $version_files; do
echo " - $file"
sed -e 's/^greek=.*/greek=/' $file > $file.new
cp -f $file.new $file
rm $file.new
done
echo "Making non-greek tarball"
make_tarball
fi