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