diff options
author | Brad King <brad.king@kitware.com> | 2003-01-15 23:42:41 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2003-01-15 23:42:41 (GMT) |
commit | 7f5589e9f48d6d1ca58ee9203a57b9232209008c (patch) | |
tree | 7880467dbe412b572a7fefbe0a45c670b07a556d /Utilities | |
parent | 81c99943431c94a7c818a23a8310e43aa751437a (diff) | |
download | CMake-7f5589e9f48d6d1ca58ee9203a57b9232209008c.zip CMake-7f5589e9f48d6d1ca58ee9203a57b9232209008c.tar.gz CMake-7f5589e9f48d6d1ca58ee9203a57b9232209008c.tar.bz2 |
ENH: New release script prototype.
Diffstat (limited to 'Utilities')
-rwxr-xr-x | Utilities/Release/cmake_release.sh | 324 | ||||
-rw-r--r-- | Utilities/Release/config_Darwin | 12 | ||||
-rw-r--r-- | Utilities/Release/config_HP-UX | 20 | ||||
-rw-r--r-- | Utilities/Release/config_IRIX64 | 3 | ||||
-rw-r--r-- | Utilities/Release/config_Linux | 18 | ||||
-rw-r--r-- | Utilities/Release/config_SunOS | 24 | ||||
-rw-r--r-- | Utilities/Release/config_aix | 14 |
7 files changed, 415 insertions, 0 deletions
diff --git a/Utilities/Release/cmake_release.sh b/Utilities/Release/cmake_release.sh new file mode 100755 index 0000000..958b4e6 --- /dev/null +++ b/Utilities/Release/cmake_release.sh @@ -0,0 +1,324 @@ +#!/bin/sh +#============================================================================= +# +# Program: CMake - Cross-Platform Makefile Generator +# Module: $RCSfile$ +# Language: C++ +# Date: $Date$ +# Version: $Revision$ +# +# Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. +# See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even +# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the above copyright notices for more information. +# +#============================================================================= + +# +# CMake UNIX Release Script. +# + +SELF="$0" +CVSROOT=:pserver:anonymous@www.cmake.org:/cvsroot/CMake +TAG="Release-1-6" +VERSION="1.6.beta2" +RELEASE="1" +PREVIOUS_VERSION="1.4.7" +PREVIOUS_RELEASE="1" +RELEASE_ROOT_NAME="CMakeReleaseRoot" +RELEASE_ROOT="${HOME}/${RELEASE_ROOT_NAME}" +CC="" +CXX="" +CFLAGS="" +CXXFLAGS="" +PREFIX="/usr/local" +INSTALL_SUBDIRS="bin share doc" +DOC_DIR="/doc/cmake" + +#----------------------------------------------------------------------------- +usage() +{ + echo "Usage!!" +} + +#----------------------------------------------------------------------------- +error_log() +{ + echo "An error has been logged to $1:" && + cat "$1" +} + +#----------------------------------------------------------------------------- +remote() +{ + HOST="$1" + shift + REMOTE_TASK="$@" + echo "------- Running remote task on $HOST. -------" + (echo "TASK=\"${REMOTE_TASK}\"" && cat $SELF) | ssh "$HOST" /bin/sh 2>/dev/null + echo "-------- Remote task on $HOST done. --------" +} + +#----------------------------------------------------------------------------- +remote_copy() +{ + HOST="$1" + echo "------- Copying tarballs from $HOST. -------" + scp "$HOST:${RELEASE_ROOT_NAME}/Tarballs/*" . + echo "---- Done copying tarballs from $HOST. -----" +} + +#----------------------------------------------------------------------------- +setup() +{ + [ -z "${DONE_setup}" ] || return 0 ; DONE_setup="yes" + mkdir -p ${RELEASE_ROOT}/Logs && + echo "Entering ${RELEASE_ROOT}" && + cd ${RELEASE_ROOT} +} + +#----------------------------------------------------------------------------- +clean() +{ + setup || return 1 + echo "Cleaning up ${RELEASE_ROOT}" + rm -rf cmake-* + rm -rf ReleaseUtilities +} + +#----------------------------------------------------------------------------- +cvs_login() +{ + [ -z "${DONE_cvs_login}" ] || return 0 ; DONE_cvs_login="yes" + setup || return 1 + ( + if [ -f "${HOME}/.cvspass" ]; then + CVSPASS="${HOME}/.cvspass" + else + CVSPASS="" + fi + if [ -z "`grep \"$CVSROOT\" ${CVSPASS} /dev/null`" ]; then + echo "cmake" | cvs -q -z3 -d $CVSROOT cvs_login + else + echo "Already logged in." + fi + ) >Logs/cvs_login.log 2>&1 || error_log Logs/cvs_login.log +} + +#----------------------------------------------------------------------------- +utilities() +{ + [ -z "${DONE_utilities}" ] || return 0 ; DONE_utilities="yes" + cvs_login || return 1 + ( + if [ -d "ReleaseUtilities/CVS" ]; then + cd ReleaseUtilities && cvs -z3 -q update -dAP + else + rm -rf CheckoutTemp && + mkdir CheckoutTemp && + cd CheckoutTemp && + cvs -q -z3 -d $CVSROOT co CMake/Utilities/Release && + mv CMake/Utilities/Release ../ReleaseUtilities && + cd .. && + rm -rf CheckoutTemp + fi + ) >Logs/utilities.log 2>&1 || error_log Logs/utilities.log +} + +#----------------------------------------------------------------------------- +config() +{ + [ -z "${DONE_config}" ] || return 0 ; DONE_config="yes" + utilities || return 1 + CONFIG_FILE="config_`uname`" + echo "Loading ${CONFIG_FILE} ..." + . ${RELEASE_ROOT}/ReleaseUtilities/${CONFIG_FILE} >Logs/config.log 2>&1 || error_log Logs/config.log + if [ -z "${CC}" ] || [ -z "${CXX}" ] || [ -z "${PLATFORM}" ]; then + echo "${CONFIG_FILE} should specify CC, CXX, and PLATFORM." && + return 1 + fi +} + +#----------------------------------------------------------------------------- +checkout() +{ + [ -z "${DONE_checkout}" ] || return 0 ; DONE_checkout="yes" + config || return 1 + echo "Exporting cmake from cvs ..." && + ( + rm -rf cmake-${VERSION} && + rm -rf CheckoutTemp && + mkdir CheckoutTemp && + cd CheckoutTemp && + cvs -q -z3 -d $CVSROOT export -r ${TAG} CMake && + mv CMake ../cmake-${VERSION} && + cd .. && + rm -rf CheckoutTemp + ) >Logs/checkout.log 2>&1 || error_log Logs/checkout.log +} + +#----------------------------------------------------------------------------- +source_tarball() +{ + [ -z "${DONE_source_tarball}" ] || return 0 ; DONE_source_tarball="yes" + config || return 1 + [ -d "cmake-${VERSION}" ] || checkout || return 1 + echo "Creating source tarballs ..." && + ( + mkdir -p Tarballs && + rm -rf Tarballs/cmake-${VERSION}.tar* && + tar cvf Tarballs/cmake-${VERSION}.tar cmake-${VERSION} && + gzip -c Tarballs/cmake-${VERSION}.tar >Tarballs/cmake-${VERSION}.tar.gz && + compress Tarballs/cmake-${VERSION}.tar + ) >Logs/source_tarball.log 2>&1 || error_log Logs/source_tarball.log +} + +#----------------------------------------------------------------------------- +write_cache() +{ + cat > CMakeCache.txt <<EOF +BUILD_TESTING:BOOL=OFF +EOF +} + +#----------------------------------------------------------------------------- +cache() +{ + [ -z "${DONE_cache}" ] || return 0 ; DONE_cache="yes" + config || return 1 + echo "Writing CMakeCache.txt ..." && + ( + rm -rf "cmake-${VERSION}-${PLATFORM}" && + mkdir -p "cmake-${VERSION}-${PLATFORM}" && + cd "cmake-${VERSION}-${PLATFORM}" && + write_cache + ) >Logs/cache.log 2>&1 || error_log Logs/cache.log +} + +#----------------------------------------------------------------------------- +configure() +{ + [ -z "${DONE_configure}" ] || return 0 ; DONE_configure="yes" + config || return 1 + [ -d "cmake-${VERSION}" ] || checkout || return 1 + cache || return 1 + echo "Running configure ..." && + ( + cd "cmake-${VERSION}-${PLATFORM}" && + ../cmake-${VERSION}/configure --prefix=${PREFIX} + ) >Logs/configure.log 2>&1 || error_log Logs/configure.log +} + +#----------------------------------------------------------------------------- +build() +{ + [ -z "${DONE_build}" ] || return 0 ; DONE_build="yes" + config || return 1 + if [ ! -d "cmake-${VERSION}-${PLATFORM}/Bootstrap" ]; then + configure || return 1 + fi + echo "Running make ..." && + ( + cd "cmake-${VERSION}-${PLATFORM}" && + make + ) >Logs/build.log 2>&1 || error_log Logs/build.log +} + +#----------------------------------------------------------------------------- +install() +{ + [ -z "${DONE_install}" ] || return 0 ; DONE_install="yes" + config || return 1 + [ -f "cmake-${VERSION}-${PLATFORM}/Source/ccmake" ] || build || return 1 + echo "Running make install ..." && + ( + rm -rf Install && + cd "cmake-${VERSION}-${PLATFORM}" && + make install DESTDIR="${RELEASE_ROOT}/Install" + ) >Logs/install.log 2>&1 || error_log Logs/install.log +} + +#----------------------------------------------------------------------------- +strip() +{ + [ -z "${DONE_strip}" ] || return 0 ; DONE_strip="yes" + config || return 1 + [ -f "Install/usr/local/bin/ccmake" ] || install || return 1 + echo "Stripping executables ..." && + ( + strip Install${PREFIX}/bin/* + ) >Logs/strip.log 2>&1 || error_log Logs/strip.log +} + +#----------------------------------------------------------------------------- +manifest() +{ + [ -z "${DONE_manifest}" ] || return 0 ; DONE_manifest="yes" + config || return 1 + [ -f "Install/usr/local/bin/ccmake" ] || install || return 1 + echo "Writing MANIFEST ..." && + ( + mkdir -p Install${PREFIX}${DOC_DIR} && + rm -rf Install${PREFIX}${DOC_DIR}/MANIFEST && + touch Install${PREFIX}${DOC_DIR}/MANIFEST && + cd Install${PREFIX} && + FILES=`find ${INSTALL_SUBDIRS} -type f |sed 's/^\.\///'` && + cd ${RELEASE_ROOT} && + (cat >> Install${PREFIX}${DOC_DIR}/MANIFEST <<EOF +${FILES} +EOF + ) && + rm -rf Install/README && + (cat > Install/README <<EOF +CMake $VERSION binary for $PLATFORM + +Extract the file "cmake-${VERSION}-${PLATFORM}-files.tar" into your +destination directory (typically /usr/local). The following files will +be extracted: + +${FILES} + +EOF + ) + ) >Logs/manifest.log 2>&1 || error_log Logs/manifest.log +} + +#----------------------------------------------------------------------------- +package() +{ + [ -z "${DONE_package}" ] || return 0 ; DONE_package="yes" + config || return 1 + strip || return 1 + manifest || return 1 + echo "Creating binary tarballs ..." && + ( + mkdir -p Tarballs && + rm -rf Install/cmake-${VERSION}-${PLATFORM}-files.tar && + ( + cd Install${PREFIX} && + tar cvf ${RELEASE_ROOT}/Install/cmake-${VERSION}-${PLATFORM}-files.tar ${INSTALL_SUBDIRS} + ) && + rm -rf Tarballs/cmake-${VERSION}-${PLATFORM}.tar* && + ( + cd Install && + tar cvf ${RELEASE_ROOT}/Tarballs/cmake-${VERSION}-${PLATFORM}.tar cmake-${VERSION}-${PLATFORM}-files.tar README + ) && + ( + cd Tarballs && + gzip -c cmake-${VERSION}-${PLATFORM}.tar >cmake-${VERSION}-${PLATFORM}.tar.gz && + compress cmake-${VERSION}-${PLATFORM}.tar + ) + ) >Logs/package.log 2>&1 || error_log Logs/package.log +} + +if [ -z "$TASK" ]; then + TASK="$@" +fi + +if [ -z "$TASK" ]; then + TASK="usage" +fi + +eval $TASK diff --git a/Utilities/Release/config_Darwin b/Utilities/Release/config_Darwin new file mode 100644 index 0000000..03f3c26 --- /dev/null +++ b/Utilities/Release/config_Darwin @@ -0,0 +1,12 @@ +PLATFORM="darwin" +CC="cc" +CXX="c++" + +# Write entries into the cache file before building cmake. +write_cache() +{ +cat > CMakeCache.txt <<EOF +BUILD_TESTING:BOOL=OFF +CURSES_LIBRARY:FILEPATH=/usr/local/lib/libncurses.a +EOF +} diff --git a/Utilities/Release/config_HP-UX b/Utilities/Release/config_HP-UX new file mode 100644 index 0000000..29704eb --- /dev/null +++ b/Utilities/Release/config_HP-UX @@ -0,0 +1,20 @@ +PLATFORM="hpux-static" +CC="cc" +CXX="aCC" + +# Write entries into the cache file before building cmake. +write_cache() +{ +BINDIR=`pwd` + +cat > UserMakeRules.cmake <<EOF +SET(CMAKE_DL_LIBS "") +EOF + +cat > CMakeCache.txt <<EOF +BUILD_TESTING:BOOL=OFF +CMAKE_EXE_LINKER_FLAGS:STRING=-ldld -Wl,-a,archive +CMAKE_USER_MAKE_RULES_OVERRIDE:STRING=${BINDIR}/UserMakeRules.cmake +CMAKE_SKIP_RPATH:BOOL=1 +EOF +} diff --git a/Utilities/Release/config_IRIX64 b/Utilities/Release/config_IRIX64 new file mode 100644 index 0000000..9c5345f --- /dev/null +++ b/Utilities/Release/config_IRIX64 @@ -0,0 +1,3 @@ +PLATFORM="irix64" +CC="cc" +CXX="CC" diff --git a/Utilities/Release/config_Linux b/Utilities/Release/config_Linux new file mode 100644 index 0000000..f37c86d --- /dev/null +++ b/Utilities/Release/config_Linux @@ -0,0 +1,18 @@ +PLATFORM="x86-linux-static" +CREATE_SOURCE_TARBALL="yes" +CURSES_LIBRARY="/usr/lib/libcurses.a" +FORM_LIBRARY="/usr/lib/libform.a" +CC="gcc" +CXX="c++" + +# Write entries into the cache file before building cmake. +write_cache() +{ +cat > CMakeCache.txt <<EOF +BUILD_TESTING:BOOL=OFF +CMAKE_EXE_LINKER_FLAGS:STRING=-static +CMAKE_SKIP_RPATH:BOOL=1 +CURSES_LIBRARY:FILEPATH=${CURSES_LIBRARY} +FORM_LIBRARY:FILEPATH=${FORM_LIBRARY} +EOF +} diff --git a/Utilities/Release/config_SunOS b/Utilities/Release/config_SunOS new file mode 100644 index 0000000..1e34f5c --- /dev/null +++ b/Utilities/Release/config_SunOS @@ -0,0 +1,24 @@ +PLATFORM="sparc-sunos57-static" +CURSES_LIBRARY="/usr/lib/libcurses.a" +FORM_LIBRARY="/usr/lib/libform.a" +CC="gcc" +CXX="c++" + +# Write entries into the cache file before building cmake. +write_cache() +{ +BINDIR=`pwd` + +cat > UserMakeRules.cmake <<EOF +SET(CMAKE_DL_LIBS "") +EOF + +cat > CMakeCache.txt <<EOF +BUILD_TESTING:BOOL=OFF +CMAKE_EXE_LINKER_FLAGS:STRING=-Wl,-Bdynamic -ldl -Wl,-Bstatic +CMAKE_USER_MAKE_RULES_OVERRIDE:STRING=${BINDIR}/UserMakeRules.cmake +CMAKE_SKIP_RPATH:BOOL=1 +CURSES_LIBRARY:FILEPATH=${CURSES_LIBRARY} +FORM_LIBRARY:FILEPATH=${FORM_LIBRARY} +EOF +} diff --git a/Utilities/Release/config_aix b/Utilities/Release/config_aix new file mode 100644 index 0000000..3d11deb --- /dev/null +++ b/Utilities/Release/config_aix @@ -0,0 +1,14 @@ +PLATFORM="aix15" +CC="xlc" +CXX="xlC" + +# Write entries into the cache file before building cmake. +write_cache() +{ +cat > CMakeCache.txt <<EOF +BUILD_TESTING:BOOL=OFF +CMAKE_CXX_SHLIB_LINK_FLAGS:STRING=-bstatic +CMAKE_CXX_SHLIB_BUILD_FLAGS:STRING= +CMAKE_CXX_SHLIB_RUNTIME_FLAG:STRING= +EOF +} |