ef1c2d5b26
README.Unix.txt and README.Windows.txt (MinGW, MSYS) instructed to execute `NOCONFIGURE=1 ./autogen.sh` which is no longer necessary (a simple `autoconf` does the job). Remove files misc/config.guess and misc/config.sub because they are no longer needed: these files are now in th FLTK root directory available. Remove all references to these files. Fix .gitattributes accordingly. Also exclude the .github folder from exports, for instance when creating distribution tarballs.
185 lines
5.0 KiB
Bash
Executable File
185 lines
5.0 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 fltk_version.dat)
|
|
|
|
fltk_version="`cat fltk_version.dat`"
|
|
VS="`echo $fltk_version | cut -f 1-2 -d '.'`"
|
|
|
|
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 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!"
|