bd16bad416
This is a working version of makesrcdist and "commandline compatible" with the previous svn version. Todo: There will likely be more or other commandline arguments to be more flexible when building source tarballs or snapshots. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@13069 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
166 lines
4.5 KiB
Bash
Executable File
166 lines
4.5 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='http://fltk.org/pub/fltk'
|
|
SNAPSHOT='http://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
|
|
|
|
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}-git"
|
|
fileversion="${VS}.x-${DATE}-$rev"
|
|
fileurl="$SNAPSHOT/fltk-$fileversion.tar.gz"
|
|
echo "fileversion = $fileversion"
|
|
echo "fileurl = $fileurl"
|
|
url="."
|
|
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
|
|
url="."
|
|
else
|
|
echo "Creating Git tag 'release-$version' ..."
|
|
git tag -a -m "Tag $version" release-$version || exit 1
|
|
fi
|
|
fi
|
|
|
|
echo Exporting $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
|
|
|
|
fileurl=`echo $fileurl | sed -e '1,$s/\\//\\\\\\//g'`
|
|
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
|
|
|
|
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 distribution..."
|
|
$TAR czf fltk-$fileversion-source.tar.gz fltk-$version
|
|
|
|
#echo "Making BZ2 distribution..."
|
|
#$TAR cjf fltk-$fileversion-source.tar.bz2 fltk-$version
|
|
|
|
#echo "Making Windows distribution..."
|
|
#rm -f fltk-$fileversion-source.zip
|
|
#zip -r9 fltk-$fileversion-source.zip fltk-$version
|
|
|
|
echo "Removing distribution directory..."
|
|
|
|
rm -rf fltk-$version
|
|
|
|
if test "x$2" = "xtag"; then
|
|
echo ""
|
|
echo "Don't forget to push the Git tag"
|
|
echo "(assuming 'origin' as your remote Git repository):"
|
|
echo ""
|
|
echo "\$ git push origin release-$version"
|
|
echo ""
|
|
fi
|
|
|
|
echo "Done!"
|