cmake_release_unix.sh 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. #!/bin/sh
  2. #
  3. # CMake UNIX Release Script.
  4. #
  5. # Run this in an empty directory. Your ~/.cvspass file should already
  6. # have an entry for the CVSROOT used below.
  7. #
  8. # Check the command line arguments.
  9. CONFIG_FILE=$1
  10. if test "x$1" = "x"; then
  11. echo "Usage:"
  12. echo " $0 <configuration-file>"
  13. echo ""
  14. echo "Sample configuration file:"
  15. echo " RELEASE_TAG=\"Release-1-4\""
  16. echo " VERSION=\"1.4\""
  17. echo " PLATFORM=\"x86-linux\""
  18. exit 1
  19. fi
  20. # Set some defaults here. They can be changed by the configuration
  21. # file.
  22. CVSROOT=":pserver:[email protected]:/cvsroot/CMake"
  23. RELEASE_ROOT=`pwd`
  24. CREATE_SOURCE_TARBALL="no"
  25. CMAKE="cmake"
  26. GZIP="gzip"
  27. COMPRESS="compress"
  28. TAR="tar"
  29. CAT="cat"
  30. MAKE="make"
  31. FIND="find"
  32. CVS="cvs"
  33. CC="gcc"
  34. CXX="c++"
  35. CFLAGS=""
  36. CXXFLAGS=""
  37. CMAKE_CACHE_ENTRIES=""
  38. #-----------------------------------------------------------------------------
  39. # Configuration options (could be in separate file)
  40. echo "Reading configuration from ${CONFIG_FILE}..."
  41. if . `pwd`/${CONFIG_FILE} ; then : ; else
  42. echo "Error reading configuration."
  43. exit 1
  44. fi
  45. #-----------------------------------------------------------------------------
  46. export CC CXX CFLAGS CXXFLAGS
  47. # Select directories.
  48. INSTALL_DIR="${RELEASE_ROOT}/Install"
  49. TARBALL_DIR="${RELEASE_ROOT}/Tarballs"
  50. BUILD_DIR="${RELEASE_ROOT}/CMake-$VERSION-$PLATFORM-build"
  51. LOG_DIR="${RELEASE_ROOT}/Logs"
  52. # Cleanup from possible previous run.
  53. rm -rf ${LOG_DIR} ${BUILD_DIR} ${INSTALL_DIR} ${TARBALL_DIR}
  54. mkdir -p ${LOG_DIR} ${BUILD_DIR} ${INSTALL_DIR} ${TARBALL_DIR}
  55. # Make sure the source is exported from CVS.
  56. SOURCE_DIR="${RELEASE_ROOT}/CMake-$VERSION"
  57. if test ! -d ${SOURCE_DIR} ; then
  58. cd ${RELEASE_ROOT}
  59. rm -rf CMake
  60. echo "Exporing CMake from CVS..."
  61. if ${CVS} -z3 -d ${CVSROOT} export -r ${RELEASE_TAG} \
  62. CMake > ${LOG_DIR}/cvs.log 2>&1 ; then : ; else
  63. echo "Error, see ${LOG_DIR}/cvs.log"
  64. exit 1
  65. fi
  66. mv CMake CMake-$VERSION
  67. fi
  68. # Make the source tarball if requested.
  69. if test "${CREATE_SOURCE_TARBALL}" = "yes" ; then
  70. TARBALL="${TARBALL_DIR}/CMake$VERSION-src-unix.tar"
  71. echo "Creating CMake$VERSION-src-unix.tar"
  72. if ${TAR} cvf $TARBALL CMake-$VERSION \
  73. > ${LOG_DIR}/CMake$VERSION-src-unix.log 2>&1 ; then : ; else
  74. "Error, see ${LOG_DIR}/CMake$VERSION-src-unix.log"
  75. exit 1
  76. fi
  77. if test "x${GZIP}" != "x" ; then
  78. echo "Creating $TARBALL.gz"
  79. ${GZIP} -c $TARBALL > $TARBALL.gz
  80. fi
  81. if test "x${COMPRESS}" != "x" ; then
  82. echo "Creating $TARBALL.Z"
  83. ${COMPRESS} $TARBALL
  84. fi
  85. fi
  86. # Build the release.
  87. cd ${BUILD_DIR}
  88. echo "Writing CMakeCache.txt..."
  89. ${CAT} > CMakeCache.txt <<EOF
  90. BUILD_TESTING:BOOL=OFF
  91. CMAKE_INSTALL_PREFIX:PATH=${INSTALL_DIR}
  92. ${CMAKE_CACHE_ENTRIES}
  93. EOF
  94. echo "Running CMake..."
  95. if ${CMAKE} ${SOURCE_DIR} > ${LOG_DIR}/cmake.log 2>&1 ; then : ; else
  96. echo "Error, see ${LOG_DIR}/cmake.log"
  97. exit 1
  98. fi
  99. echo "Running make..."
  100. if ${MAKE} > ${LOG_DIR}/make.log 2>&1 ; then : ; else
  101. echo "Error, see ${LOG_DIR}/make.log"
  102. exit 1
  103. fi
  104. echo "Running make install..."
  105. if ${MAKE} install > ${LOG_DIR}/make_install.log 2>&1 ; then : ; else
  106. echo "Error, see ${LOG_DIR}/make_install.log"
  107. exit 1
  108. fi
  109. # Create the release tarballs.
  110. cd ${INSTALL_DIR}
  111. echo "Creating cmake-$VERSION-$PLATFORM.tar"
  112. if ${TAR} cvf cmake-$VERSION-$PLATFORM.tar bin share \
  113. > ${LOG_DIR}/cmake-$VERSION-$PLATFORM.log 2>&1 ; then : ; else
  114. echo "Error, see ${LOG_DIR}/cmake-$VERSION-$PLATFORM.log"
  115. exit 1
  116. fi
  117. echo "Writing README"
  118. FILES=`${FIND} bin share -type f |sed 's/^\.\///'`
  119. ${CAT} >> README <<EOF
  120. CMake $VERSION binary for $PLATFORM
  121. Extract the file "cmake-$VERSION-$PLATFORM.tar" into your
  122. destination directory. The following files will be extracted:
  123. ${FILES}
  124. EOF
  125. TARBALL="${TARBALL_DIR}/CMake$VERSION-$PLATFORM.tar"
  126. echo "Creating CMake$VERSION-$PLATFORM.tar"
  127. if ${TAR} cvf $TARBALL README cmake-$VERSION-$PLATFORM.tar \
  128. > ${LOG_DIR}/CMake$VERSION-$PLATFORM.log 2>&1 ; then : ; else
  129. "Error, see ${LOG_DIR}/CMake$VERSION-$PLATFORM.log"
  130. exit 1
  131. fi
  132. if test "x${GZIP}" != "x" ; then
  133. echo "Creating $TARBALL.gz"
  134. ${GZIP} -c $TARBALL > $TARBALL.gz
  135. fi
  136. if test "x${COMPRESS}" != "x" ; then
  137. echo "Creating $TARBALL.Z"
  138. ${COMPRESS} $TARBALL
  139. fi