From 77bb1f793b4da36627001a63f0f0f135b63b1b66 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 15 Jul 2002 10:08:25 -0400 Subject: [PATCH] ENH: Protoype unix release script. --- Utilities/cmake_release_unix.sh | 166 ++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100755 Utilities/cmake_release_unix.sh diff --git a/Utilities/cmake_release_unix.sh b/Utilities/cmake_release_unix.sh new file mode 100755 index 000000000..71c5683a7 --- /dev/null +++ b/Utilities/cmake_release_unix.sh @@ -0,0 +1,166 @@ +#!/bin/sh +# +# CMake UNIX Release Script. +# +# Run this in an empty directory. Your ~/.cvspass file should already +# have an entry for the CVSROOT used below. +# + +# Check the command line arguments. +CONFIG_FILE=$1 +if test "x$1" = "x"; then + echo "Usage:" + echo " $0 " + echo "" + echo "Sample configuration file:" + echo " RELEASE_TAG=\"Release-1-4\"" + echo " VERSION=\"1.4\"" + echo " PLATFORM=\"x86-linux\"" + exit 1 +fi + +# Set some defaults here. They can be changed by the configuration +# file. +CVSROOT=":pserver:anonymous@www.cmake.org:/cvsroot/CMake" +CURSES_LIBRARY="/usr/lib/libcurses.a" +FORM_LIBRARY="/usr/lib/libform.a" +STATIC_LINK_FLAGS="-static" +RELEASE_ROOT=`pwd` +CREATE_SOURCE_TARBALL="no" +CMAKE="cmake" +GZIP="gzip" +COMPRESS="compress" +TAR="tar" +CAT="cat" +MAKE="make" +FIND="find" +CVS="cvs" +CC="gcc" +CXX="c++" +CFLAGS="" +CXXFLAGS="" + +#----------------------------------------------------------------------------- +# Configuration options (could be in separate file) +echo "Reading configuration from ${CONFIG_FILE}..." +if . `pwd`/${CONFIG_FILE} ; then : ; else + echo "Error reading configuration." + exit 1 +fi +#----------------------------------------------------------------------------- + +export CC CXX CFLAGS CXXFLAGS + +# Select directories. +INSTALL_DIR="${RELEASE_ROOT}/Install" +TARBALL_DIR="${RELEASE_ROOT}/Tarballs" +BUILD_DIR="${RELEASE_ROOT}/CMake-$VERSION-static" +LOG_DIR="${RELEASE_ROOT}/Logs" + +# Cleanup from possible previous run. +rm -rf ${LOG_DIR} ${BUILD_DIR} ${INSTALL_DIR} ${TARBALL_DIR} +mkdir -p ${LOG_DIR} ${BUILD_DIR} ${INSTALL_DIR} ${TARBALL_DIR} + +# Make sure the source is exported from CVS. +SOURCE_DIR="${RELEASE_ROOT}/CMake-$VERSION" +if test ! -d ${SOURCE_DIR} ; then + cd ${RELEASE_ROOT} + rm -rf CMake + echo "Exporing CMake from CVS..." + if ${CVS} -z3 -d ${CVSROOT} export -r ${RELEASE_TAG} \ + CMake > ${LOG_DIR}/cvs.log 2>&1 ; then : ; else + echo "Error, see ${LOG_DIR}/cvs.log" + exit 1 + fi + mv CMake CMake-$VERSION +fi + +# Make the source tarball if requested. +if test "${CREATE_SOURCE_TARBALL}" = "yes" ; then + TARBALL="${TARBALL_DIR}/CMake$VERSION-src-unix.tar" + echo "Creating CMake$VERSION-src-unix.tar" + if ${TAR} cvf $TARBALL CMake-$VERSION \ + > ${LOG_DIR}/CMake$VERSION-src-unix.log 2>&1 ; then : ; else + "Error, see ${LOG_DIR}/CMake$VERSION-src-unix.log" + exit 1 + fi + if test "x${GZIP}" != "x" ; then + echo "Creating $TARBALL.gz" + ${GZIP} -c $TARBALL > $TARBALL.gz + fi + if test "x${COMPRESS}" != "x" ; then + echo "Creating $TARBALL.Z" + ${COMPRESS} $TARBALL + fi +fi + +# Build the release. +cd ${BUILD_DIR} +echo "Writing CMakeCache.txt..." +${CAT} >> CMakeCache.txt < ${LOG_DIR}/cmake.log 2>&1 ; then : ; else + echo "Error, see ${LOG_DIR}/cmake.log" + exit 1 +fi + +echo "Running make..." +if ${MAKE} > ${LOG_DIR}/make.log 2>&1 ; then : ; else + echo "Error, see ${LOG_DIR}/make.log" + exit 1 +fi + +echo "Running make install..." +if ${MAKE} install > ${LOG_DIR}/make_install.log 2>&1 ; then : ; else + echo "Error, see ${LOG_DIR}/make_install.log" + exit 1 +fi + +# Create the release tarballs. +cd ${INSTALL_DIR} +echo "Creating cmake-$VERSION-$PLATFORM.tar" + +if ${TAR} cvf cmake-$VERSION-$PLATFORM.tar bin share \ + > ${LOG_DIR}/cmake-$VERSION-$PLATFORM.log 2>&1 ; then : ; else + echo "Error, see ${LOG_DIR}/cmake-$VERSION-$PLATFORM.log" + exit 1 +fi + +echo "Writing README" +FILES=`${FIND} bin share -type f |sed 's/^\.\///'` +${CAT} >> README < ${LOG_DIR}/CMake$VERSION-$PLATFORM-static.log 2>&1 ; then : ; else + "Error, see ${LOG_DIR}/CMake$VERSION-$PLATFORM-static.log" + exit 1 +fi + +if test "x${GZIP}" != "x" ; then + echo "Creating $TARBALL.gz" + ${GZIP} -c $TARBALL > $TARBALL.gz +fi + +if test "x${COMPRESS}" != "x" ; then + echo "Creating $TARBALL.Z" + ${COMPRESS} $TARBALL +fi