#! /bin/sh | |
# Script to build release-archives with | |
# | |
version=$1 | |
if [ -z "$version" ]; then | |
echo "Specify a version number!" | |
exit | |
fi | |
if [ "xonly" = "x$2" ]; then | |
echo "Setup version number only!" | |
only=1 | |
fi | |
libversion="$version" | |
major=`echo $libversion |cut -d. -f1 | sed -e "s/[^0-9]//g"` | |
minor=`echo $libversion |cut -d. -f2 | sed -e "s/[^0-9]//g"` | |
patch=`echo $libversion |cut -d. -f3 | cut -d- -f1 | sed -e "s/[^0-9]//g"` | |
numeric=`perl -e 'printf("%02x%02x%02x\n", '"$major, $minor, $patch);"` | |
HEADER=include/libssh2.h | |
if test -z "$only"; then | |
ext=".dist" | |
# when not setting up version numbers locally | |
for a in $HEADER; do | |
cp $a "$a$ext" | |
done | |
HEADER="$HEADER$ext" | |
fi | |
# requires a date command that knows -u for UTC time zone | |
datestamp=`LC_TIME=C date -u` | |
# Replace in-place version number in header file: | |
sed -i.bak -e 's/^#define LIBSSH2_VERSION .*/#define LIBSSH2_VERSION "'$libversion'"/g' \ | |
-e 's/^#define LIBSSH2_VERSION_NUM .*/#define LIBSSH2_VERSION_NUM 0x'$numeric'/g' \ | |
-e 's/^#define LIBSSH2_VERSION_MAJOR .*/#define LIBSSH2_VERSION_MAJOR '$major'/g' \ | |
-e 's/^#define LIBSSH2_VERSION_MINOR .*/#define LIBSSH2_VERSION_MINOR '$minor'/g' \ | |
-e 's/^#define LIBSSH2_VERSION_PATCH .*/#define LIBSSH2_VERSION_PATCH '$patch'/g' \ | |
-e "s/^#define LIBSSH2_TIMESTAMP .*/#define LIBSSH2_TIMESTAMP \"$datestamp\"/g" \ | |
$HEADER | |
rm -f "$HEADER.bak" | |
echo "libssh2 version $libversion" | |
echo "libssh2 numerical $numeric" | |
echo "datestamp $datestamp" | |
if test -n "$only"; then | |
# done! | |
exit; | |
fi | |
findprog() | |
{ | |
file="$1" | |
for part in `echo $PATH| tr ':' ' '`; do | |
path="$part/$file" | |
if [ -x "$path" ]; then | |
# there it is! | |
return 1 | |
fi | |
done | |
# no such executable | |
return 0 | |
} | |
############################################################################ | |
# | |
# automake is needed to run to make a non-GNU Makefile.in if Makefile.am has | |
# been modified. | |
# | |
if { findprog automake >/dev/null 2>/dev/null; } then | |
echo "- Could not find or run automake, I hope you know what you're doing!" | |
else | |
echo "Runs automake --include-deps" | |
automake --include-deps Makefile >/dev/null | |
fi | |
####################################################################### | |
# | |
# Generate the changelog | |
# | |
echo "generate NEWS" | |
git log --pretty=fuller --no-color --date=short --decorate=full -1000 | ./git2news.pl > NEWS.dist | |
############################################################################ | |
# | |
# Now run make dist to generate a tar.gz archive | |
# | |
echo "make dist" | |
targz="libssh2-$version.tar.gz" | |
make -s dist VERSION=$version |