| #! /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 -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 | |
| 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 |