diff options
author | lrknox <lrknox> | 2017-06-05 22:10:39 (GMT) |
---|---|---|
committer | lrknox <lrknox> | 2017-06-08 15:17:26 (GMT) |
commit | 34c1ca89db3557a7c9f4ed7a63df547cd722be10 (patch) | |
tree | 46273d6d7b6768d4bd2943531afee274def991fb /bin/release | |
parent | d6c48e58c31a523f4931a60a8ac44bec4d2b201b (diff) | |
download | hdf5-34c1ca89db3557a7c9f4ed7a63df547cd722be10.zip hdf5-34c1ca89db3557a7c9f4ed7a63df547cd722be10.tar.gz hdf5-34c1ca89db3557a7c9f4ed7a63df547cd722be10.tar.bz2 |
Update h5vers and release scripts for 1.8.19 branch, set version to
1.8.19-pre1.
Note: changes to these scripts were brought from develop/hdf5_1_10
and modified for 1.8 version differences.
Update HDF5 version to 1.8.20-snap0.
Update HL .so number for added API function.
Diffstat (limited to 'bin/release')
-rwxr-xr-x | bin/release | 224 |
1 files changed, 213 insertions, 11 deletions
diff --git a/bin/release b/bin/release index 0ac9986..cb7a2fe 100755 --- a/bin/release +++ b/bin/release @@ -55,8 +55,13 @@ for compressing the resulting tar archive (if none are given then tar -- use tar and don't do any compressing. gzip -- use gzip with "-9" and append ".gz" to the output name. + cmake-tgz -- create a tar file using the gzip default level with a build-unix.sh + command file and all other CMake files needed to build HDF5 source + using CMake on unix machines. bzip2 -- use bzip2 with "-9" and append ".bz2" to the output name. zip -- convert all text files to DOS style and form a zip file for Windows use. + cmake-zip -- convert all text files to DOS style and create a zip file inluding cmake + scripts and .bat files to build HDF5 source using CMake on Windows. doc -- produce the latest doc tree in addition to the archive. An md5 checksum is produced for each archive created and stored in the md5 file. @@ -93,9 +98,9 @@ EOF # Modifications # # Steps: -# 1. untar the tarball in a temporay directory; +# 1. untar the tarball in a temporary directory; # Note: do this in a temporary directory to avoid changing -# the original source directory which maybe around. +# the original source directory which may be around. # 2. convert all its text files to DOS (LF-CR) style; # 3. form a zip file which is usable by Windows users. # @@ -112,7 +117,7 @@ tar2zip() echo "usage: tar2zip <tarfilename> <zipfilename>" return 1 fi - ztmpdir=/tmp/tmpdir$$ + ztmpdir=/tmp/ztmpdir$$ mkdir -p $ztmpdir version=$1 tarfile=$2 @@ -151,9 +156,180 @@ tar2zip() rm -rf $ztmpdir } +# Function name: tar2cmakezip +# Convert the release tarball to a Windows zipball with files to run CMake build. +# +# Programmer: Larry Knox +# Creation date: 2017-02-20 +# +# Modifications +# +# Steps: +# 1. untar the tarball in a temporary directory; +# Note: do this in a temporary directory to avoid changing +# the original source directory which may be around. +# 2. add build-unix.sh script. +# 3. add SZIP.tar.gz, ZLib.tar.gz and cmake files to top level directory. +# 4. create gzipped tar file with these contents: +# build-unix.sh script +# hdf5-<version> source code directory extracted from tar file +# CTestScript.cmake cmake file copied from <hdf5 source code>/config/cmake/scripts +# HDF5config.cmake cmake file copied from <hdf5 source code>/config/cmake/scripts +# HDF5options.cmake cmake file copied from <hdf5 source code>/config/cmake/scripts +# SZip.tar.gz copied from /mnt/scr1/pre-release/hdf5/CMake +# ZLib.tar.gz copied from /mnt/scr1/pre-release/hdf5/CMake + + +# Parameters: +# $1 version +# $2 release tarball +# $3 output zipball file name +# +# Returns 0 if successful; 1 otherwise +# + # need function to create another temporary directory, extract the + + # CTestScript.cmake, HDF5config.cmake, SZIP.tar.gz and ZLib.tar.gz, + # and then tar.gz it. +tar2cmakezip() +{ + if [ $# -ne 3 ]; then + echo "usage: tar2cmakezip <tarfilename> <zipfilename>" + return 1 + fi + cmziptmpdir=/tmp/cmziptmpdir + cmziptmpsubdir=$cmziptmpdir/CMake-$HDF5_VERS + mkdir -p $cmziptmpsubdir + version=$1 + tarfile=$2 + zipfile=$3 + + # step 1: untar tarball in cmgztmpdir + (cd $cmziptmpsubdir; tar xf -) < $tarfile + # sanity check + if [ ! -d $cmziptmpsubdir/$version ]; then + echo "untar did not create $cmziptmpsubdir/$version source dir" + # cleanup + rm -rf $cmziptmpdir + return 1 + fi + + # step 2: add batch file for building CMake on window + (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2012 -C Release -V -O hdf5.log" > build-VS2012-32.bat; chmod 755 build-VS2012-32.bat) + (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201264 -C Release -V -O hdf5.log" > build-VS2012-64.bat; chmod 755 build-VS2012-64.bat) + (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2013 -C Release -V -O hdf5.log" > build-VS2013-32.bat; chmod 755 build-VS2013-32.bat) + (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201364 -C Release -V -O hdf5.log" > build-VS2013-64.bat; chmod 755 build-VS2013-64.bat) + (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2015 -C Release -V -O hdf5.log" > build-VS2015-32.bat; chmod 755 build-VS2015-32.bat) + (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201564 -C Release -V -O hdf5.log" > build-VS2015-64.bat; chmod 755 build-VS2015-32.bat) + + # step 3: add SZIP.tar.gz, ZLib.tar.gz and cmake files + cp /mnt/scr1/pre-release/hdf5/CMake/SZip.tar.gz $cmziptmpsubdir + cp /mnt/scr1/pre-release/hdf5/CMake/ZLib.tar.gz $cmziptmpsubdir + cp $cmziptmpsubdir/$version/config/cmake/scripts/CTestScript.cmake $cmziptmpsubdir + cp $cmziptmpsubdir/$version/config/cmake/scripts/HDF5config.cmake $cmziptmpsubdir + cp $cmziptmpsubdir/$version/config/cmake/scripts/HDF5options.cmake $cmziptmpsubdir + + # step 4: convert text files + # There maybe a simpler way to do this. + # options used in unix2dos: + # -k Keep the date stamp + # -q quiet mode + # grep redirect output to /dev/null because -q or -s are not portable. + find $cmziptmpsubdir/$version | \ + while read inf; do \ + if file $inf | grep "$inf\: .*text" > /dev/null 2>&1 ; then \ + unix2dos -q -k $inf; \ + fi\ + done + # step 3: make zipball + # -9 maximum compression + # -y Store symbolic links as such in the zip archive + # -r recursive + # -q quiet + (cd $cmziptmpdir; zip -9 -y -r -q CMake-$version.zip *) + mv $cmziptmpdir/CMake-$version.zip $zipfile + + # cleanup + rm -rf $cmziptmpdir +} + +# Function name: tar2cmaketgz +# Convert the release tarball to a Windows zipball with files to run CMake build. +# +# Programmer: Larry Knox +# Creation date: 2017-02-20 +# +# Modifications +# +# Steps: +# 1. untar the tarball in a temporary directory; +# Note: do this in a temporary directory to avoid changing +# the original source directory which may be around. +# 2. add build-unix.sh script. +# 3. add SZIP.tar.gz, ZLib.tar.gz and cmake files to top level directory. +# 4. create gzipped tar file with these contents: +# build-unix.sh script +# hdf5-<version> source code directory extracted from tar file +# CTestScript.cmake cmake file copied from <hdf5 source code>/config/cmake/scripts +# HDF5config.cmake cmake file copied from <hdf5 source code>/config/cmake/scripts +# HDF5options.cmake cmake file copied from <hdf5 source code>/config/cmake/scripts +# SZip.tar.gz copied from /mnt/scr1/pre-release/hdf5/CMake +# ZLib.tar.gz copied from /mnt/scr1/pre-release/hdf5/CMake + + +# Parameters: +# $1 version +# $2 release tarball +# $3 output zipball file name +# +# Returns 0 if successful; 1 otherwise +# + # need function to create another temporary directory, extract the + # $tmpdir/$HDF5_VERS.tar into it, add (create) build-unix.sh, + # CTestScript.cmake, HDF5config.cmake, SZIP.tar.gz and ZLib.tar.gz, + # and then tar.gz it. +tar2cmaketgz() +{ + if [ $# -ne 3 ]; then + echo "usage: tar2cmaketgz <tarfilename> <tgzfilename>" + return 1 + fi + cmgztmpdir=/tmp/cmgztmpdir$$ + cmgztmpsubdir=$cmgztmpdir/CMake-$HDF5_VERS + mkdir -p $cmgztmpsubdir + version=$1 + tarfile=$2 + tgzfile=$3 + + # step 1: untar tarball in cmgztmpdir + (cd $cmgztmpsubdir; tar xf -) < $tarfile + # sanity check + if [ ! -d $cmgztmpsubdir/$version ]; then + echo "untar did not create $cmgztmpdir/$version source dir" + # cleanup + rm -rf $cmgztmpdir + return 1 + fi + + + # step 2: add build-unix.sh script + (cd $cmgztmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=Unix -C Release -V -O hdf5.log" > build-unix.sh; chmod 755 build-unix.sh) + + # step 3: add SZIP.tar.gz, ZLib.tar.gz and cmake files + cp /mnt/scr1/pre-release/hdf5/CMake/SZip.tar.gz $cmgztmpsubdir + cp /mnt/scr1/pre-release/hdf5/CMake/ZLib.tar.gz $cmgztmpsubdir + cp $cmgztmpsubdir/$version/config/cmake/scripts/CTestScript.cmake $cmgztmpsubdir + cp $cmgztmpsubdir/$version/config/cmake/scripts/HDF5config.cmake $cmgztmpsubdir + cp $cmgztmpsubdir/$version/config/cmake/scripts/HDF5options.cmake $cmgztmpsubdir + tar czf $DEST/CMake-$HDF5_VERS.tar.gz -C $cmgztmpdir . || exit 1 + + # cleanup + rm -rf $cmgztmpdir +} + # This command must be run at the top level of the hdf5 source directory. # Verify this requirement. -if [ ! \( -f configure -a -f bin/release \) ]; then +if [ ! \( -f configure.ac -a -f bin/release \) ]; then echo "$0 must be run at the top level of the hdf5 source directory" exit 1 fi @@ -171,6 +347,15 @@ pmode='no' tmpdir="../#release_tmp.$$" # tmp work directory DOC_URL=https://git@bitbucket.hdfgroup.org/scm/hdffv/hdf5doc.git CPPLUS_RM_NAME=cpplus_RM +MAINT_MODE_ENABLED="" + +# If maintainer mode is enabled in configure, it should be disabled for release, +# and enabled again after release files have been created. If already disabled +# there's no need to do either. +MAINT_MODE_ENABLED=`grep ^AM_MAINTAINER_MODE ./configure.ac | grep enable` +if [ "${MAINT_MODE_ENABLED}" != "" ]; then + bin/switch_maint_mode -disable ./configure.ac +fi # Restore previous Version information RESTORE_VERSION() @@ -245,6 +430,7 @@ if [ X$pmode = Xyes ]; then # (h5vers does not correctly handle just m.n.r-$today.) VERS=`echo $VERS | sed -e s/-.*//`-of$today echo Private release of $VERS +else bin/h5vers -s $VERS fi @@ -314,6 +500,11 @@ for comp in $methods; do gzip -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.gz (cd $DEST; md5sum $HDF5_VERS.tar.gz >> $MD5file) ;; + cmake-tgz) + test "$verbose" && echo " Creating CMake tar.gz file..." 1>&2 + tar2cmaketgz $HDF5_VERS $tmpdir/$HDF5_VERS.tar $DEST/CMake-$HDF5_VERS.tar.gz 1>&2 + (cd $DEST; md5sum CMake-$HDF5_VERS.tar.gz >> $MD5file) + ;; bzip2) test "$verbose" && echo " Running bzip2..." 1>&2 bzip2 -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.bz2 @@ -324,22 +515,27 @@ for comp in $methods; do tar2zip $HDF5_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2 (cd $DEST; md5sum $HDF5_VERS.zip >> $MD5file) ;; + cmake-zip) + test "$verbose" && echo " Creating CMake-zip ball..." 1>&2 + tar2cmakezip $HDF5_VERS $tmpdir/$HDF5_VERS.tar $DEST/CMake-$HDF5_VERS.zip 1>&2 + (cd $DEST; md5sum CMake-$HDF5_VERS.zip >> $MD5file) + ;; doc) if [ "${DOCVERSION}" = "" ]; then DOCVERSION=master fi test "$verbose" && echo " Creating docs..." 1>&2 # Check out docs from git repo - (cd $tmpdir; git clone -q $DOC_URL ${DOCVERSION} ) || exit 1 - # Create doxygen C++ RM + (cd $tmpdir; git clone -q $DOC_URL ${DOCVERSION} > /dev/null) || exit 1 + # Create doxygen C++ RM (cd c++/src && doxygen cpp_doc_config > /dev/null ) || exit 1 # Replace version of C++ RM with just-created version - rm -rf $tmpdir/${DOCVERSION}/html/$CPPLUS_RM_NAME - mv c++/src/$CPPLUS_RM_NAME $tmpdir/${DOCVERSION}/html/$CPPLUS_RM_NAME + rm -rf $tmpdir/${DOCVERSION}/html/$CPPLUS_RM_NAME || exit 1 + mv c++/src/$CPPLUS_RM_NAME $tmpdir/${DOCVERSION}/html/$CPPLUS_RM_NAME || exit 1 # Compress the docs and move them to the release area - mv $tmpdir/$DOCVERSION $tmpdir/${HDF5_VERS}_docs - (cd $tmpdir && tar cf ${HDF5_VERS}_docs.tar ${HDF5_VERS}_docs) - mv $tmpdir/${HDF5_VERS}_docs.tar $DEST + mv $tmpdir/${DOCVERSION} $tmpdir/${HDF5_VERS}_docs || exit 1 + (cd $tmpdir && tar cf ${HDF5_VERS}_docs.tar ${HDF5_VERS}_docs) || exit 1 + mv $tmpdir/${HDF5_VERS}_docs.tar $DEST || exit 1 ;; *) echo "***Error*** Unknown method $comp" @@ -348,6 +544,12 @@ for comp in $methods; do esac done +# If AM_MAINTAINER_MODE was enabled before running this script +# restore it to "enabled". +if [ "${MAINT_MODE_ENABLED}" != "" ]; then + bin/switch_maint_mode -enable ./configure.ac +fi + # Copy the RELEASE.txt to the release area. cp release_docs/RELEASE.txt $DEST/$HDF5_VERS-RELEASE.txt |