e64268b00a
This commit adds the creation of MD5 sums for all generated distribution tarballs for easier installation.
188 lines
5.1 KiB
Bash
Executable File
188 lines
5.1 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# makesrcdist - make a distribution of FLTK.
|
|
#
|
|
# There are 3 different modes of operation, dependent on commandline arguments:
|
|
#
|
|
# (1) Create snapshot:
|
|
#
|
|
# makesrcdist [snapshot]
|
|
#
|
|
# Use no arguments or "snapshot" (verbatim).
|
|
#
|
|
# (2) Create distribution tarballs for test and verification:
|
|
#
|
|
# makesrcdist <version>
|
|
#
|
|
# Use a version number as argument, e.g. "1.3.3" or "1.3.4rc2".
|
|
# This can be used for local testing.
|
|
#
|
|
# Note: the release tarballs will be created from the current
|
|
# 'HEAD' revision of your local Git repository.
|
|
#
|
|
# (3) Create distribution tarballs (final):
|
|
#
|
|
# makesrcdist <version> tag
|
|
#
|
|
# Same as (2), but create Git tag with version number.
|
|
# Enter "tag" (verbatim) as 2nd argument.
|
|
# This will create the Git tag "release-<version>" for the
|
|
# current revision in the (local) FLTK Git repository and export the
|
|
# FLTK sources from this tag for creation of distribution files.
|
|
#
|
|
# Note: You need to 'git push' the Git tag manually when you
|
|
# are satisfied with the result. You may use:
|
|
# $ git push origin release-<version>
|
|
# where '<version>' is the version number (argument #1)
|
|
#
|
|
# Note: define FLTK_TAR if you want to use a different compatible tar
|
|
# command than "tar", e.g. to use "gtar" (bash syntax):
|
|
# $ export FLTK_TAR="gtar"
|
|
#
|
|
|
|
TAR="tar"
|
|
if test "x$FLTK_TAR" != "x"; then
|
|
TAR="$FLTK_TAR"
|
|
fi
|
|
|
|
# These are the release and snapshot download URL's currently in use:
|
|
|
|
DOWNLOAD='https://www.fltk.org/pub/fltk'
|
|
SNAPSHOT='https://www.fltk.org/pub/fltk/snapshots'
|
|
|
|
DATE="`date +'%Y%m%d'`"
|
|
|
|
# VS = short version number ('major.minor'), for instance '1.4'.
|
|
# Note: VS is used only for snapshot generation
|
|
# fltk_version = full version number w/o 'rcN' (from file VERSION)
|
|
|
|
fltk_version="`cat VERSION`"
|
|
VS="`cat VERSION | sed -e's/\([0-9]*\.[0-9]*\).*/\1/'`"
|
|
|
|
echo "Getting distribution..."
|
|
|
|
if test $# = 0 -o "x$1" = "xsnapshot"; then
|
|
echo Getting snapshot revision...
|
|
rev="`git rev-parse --short=8 HEAD`"
|
|
version="${VS}-${rev}"
|
|
fileversion="${VS}.x-${DATE}-$rev"
|
|
fileurl="$SNAPSHOT/fltk-$fileversion.tar.gz"
|
|
else
|
|
if test ! -e "documentation/html/"; then
|
|
echo "ERROR: Please generate the HTML documentation before distributing:"
|
|
echo " autoconf"
|
|
echo " ./configure"
|
|
echo " cd documentation; make dist"
|
|
exit
|
|
fi
|
|
if test ! -e "documentation/fltk.pdf"; then
|
|
echo "ERROR: Please generate the PDF documentation before distributing:"
|
|
echo " autoconf"
|
|
echo " ./configure"
|
|
echo " cd documentation; make dist"
|
|
exit
|
|
fi
|
|
rev="1"
|
|
version=$1
|
|
fileversion=$1
|
|
fileurl="$DOWNLOAD/$version/fltk-$fileversion-source.tar.gz"
|
|
|
|
if test "x$2" = "xtag"; then
|
|
echo "Creating Git tag 'release-$version' ..."
|
|
git tag -a -m "Release $version" release-$version || exit 1
|
|
fi
|
|
fi
|
|
|
|
# Debug:
|
|
# echo "fltk_version = $fltk_version"
|
|
# echo "version = $version"
|
|
# echo "fileversion = $fileversion"
|
|
# echo "fileurl = $fileurl"
|
|
|
|
echo Exporting $fltk_version to /tmp/fltk-$version/...
|
|
rm -rf /tmp/fltk-$version
|
|
mkdir /tmp/fltk-$version
|
|
git archive --format=tar HEAD | $TAR -C /tmp/fltk-$version -x --
|
|
|
|
if test $# != 0 -a "x$1" != "xsnapshot"; then
|
|
echo "Copying HTML and PDF documentation..."
|
|
cp -r documentation/html /tmp/fltk-$version/documentation/
|
|
cp documentation/fltk.pdf /tmp/fltk-$version/documentation/
|
|
fi
|
|
|
|
echo Applying version number...
|
|
cd /tmp/fltk-$version
|
|
|
|
sed -e '1,$s/@VERSION@/'$version'/' \
|
|
-e '1,$s/@RELEASE@/'$rev'/' \
|
|
-e '1,$s#^Source:.*#Source: '$fileurl'#' \
|
|
<fltk.spec.in >fltk.spec
|
|
|
|
echo Creating configure script...
|
|
autoconf -f
|
|
|
|
echo Creating config.guess and config.sub \(ignore any other errors\)...
|
|
automake --add-missing --copy 2>/dev/null
|
|
|
|
echo Cleaning developer files...
|
|
rm -rf OpenGL autom4te* bc5 config forms glut images packages themes
|
|
|
|
cd ..
|
|
|
|
if test $# != 0 -a "x$1" != "xsnapshot"; then
|
|
echo "Making HTML docs distribution..."
|
|
$TAR czf fltk-$fileversion-docs-html.tar.gz fltk-$version/documentation/html/
|
|
|
|
echo "Making PDF docs distribution..."
|
|
$TAR czf fltk-$fileversion-docs-pdf.tar.gz fltk-$version/documentation/fltk.pdf
|
|
fi
|
|
|
|
echo "Removing documentation..."
|
|
rm -rf fltk-$version/documentation/html/
|
|
rm -f fltk-$version/documentation/fltk.pdf
|
|
|
|
echo "Making UNIX (.tar.gz) distribution..."
|
|
$TAR czf fltk-$fileversion-source.tar.gz fltk-$version
|
|
|
|
echo "Making UNIX (.tar.bz2) distribution..."
|
|
$TAR cjf fltk-$fileversion-source.tar.bz2 fltk-$version
|
|
|
|
# echo "Making Windows (.zip) distribution..."
|
|
# rm -f fltk-$fileversion-source.zip
|
|
# zip -r9 fltk-$fileversion-source.zip fltk-$version
|
|
|
|
echo "Removing distribution directory..."
|
|
|
|
rm -rf fltk-$version
|
|
|
|
# Create MD5 sums
|
|
|
|
out="`pwd`/fltk-$fileversion-md5sums.txt"
|
|
echo "Creating MD5 sums in $out"
|
|
rm -f $out
|
|
touch $out
|
|
|
|
# make sure the order is source - html - pdf
|
|
|
|
for f in source docs-html docs-pdf; do
|
|
if [ -f fltk-$fileversion-$f.tar.bz2 ] ; then
|
|
md5sum fltk-$fileversion-$f.tar.bz2 >> $out
|
|
fi
|
|
if [ -f fltk-$fileversion-$f.tar.gz ] ; then
|
|
md5sum fltk-$fileversion-$f.tar.gz >> $out
|
|
fi
|
|
done
|
|
|
|
sed -e"s# # $fltk_version fltk/$fltk_version/#" -i $out
|
|
|
|
if test "x$2" = "xtag"; then
|
|
echo ""
|
|
echo "Don't forget to push the Git tag"
|
|
echo "(assuming your remote Git repository is 'origin'):"
|
|
echo ""
|
|
echo "Use: \$ git push origin release-$version"
|
|
echo ""
|
|
fi
|
|
|
|
echo "Done!"
|