source: git/make_release @ 64a9dc6

RELEASE/1.2debug-cidebug-ci-sanitiserswalls-datawalls-data-hanging-as-warning
Last change on this file since 64a9dc6 was 148c993, checked in by Olly Betts <olly@…>, 5 years ago

Don't error out on new GCC9 warnings

The wx headers currently trigger two new GCC9 warnings. The wx
developers are aware of this, but it's not yet been addressed.

  • Property mode set to 100755
File size: 3.5 KB
RevLine 
[d7acd89]1#! /bin/sh
[ae1309f]2
[088d34f]3# This script automates most of the process on making a new release.
4
[098acb1]5set -e
6
[ae1309f]7rel=yes
[e66be9a]8if test x"$1" = x-t ; then
[ae1309f]9   rel=
[f30265a0]10   shift
[d7acd89]11fi
[dd7674d]12
[ae1309f]13if test x"$rel" = xyes ; then
[e6312c0]14  cd src
[c0556bf]15  perl -e 'while (<>) { if (m!(.*)//! && $1 !~ / \* /) {print "$ARGV:$.:// comment in C source\n"; exit 1}} continue { close ARGV if eof }' \
[e6312c0]16      *.c \
17      cavern.h commands.h cmdline.h date.h datain.h debug.h\
[8bef4c6]18      filelist.h filename.h getopt.h hash.h img.c img.h img_hosted.h\
[e6312c0]19      listpos.h matrix.h message.h namecmp.h netartic.h netbits.h\
20      netskel.h network.h osalloc.h osdepend.h ostypes.h out.h readval.h str.h\
21      useful.h validate.h whichos.h
22  cd ..
23
[9d5aa63]24  # Check there are no uncommitted changes.
25  if git commit -a --dry-run >/dev/null 2>/dev/null ; then
26    echo 'There are uncommitted changes - please rectify'
[d2980d2]27    echo 'If you just want to test, run with option -t'
28    exit 1
29  fi
[098acb1]30
[d2980d2]31  test ! -f Makefile || make distclean
32  cp -u /usr/share/misc/config.guess .
33  cp -u /usr/share/misc/config.sub .
[f5baa8c]34  mv INSTALL INSTALL.keep
[d2980d2]35  autoreconf --force -i
[f5baa8c]36  mv INSTALL.keep INSTALL
[d2980d2]37  ./configure CC=gcc CXX=g++
[148c993]38  # Don't error out on new GCC8 and GCC9 warnings for now.
39  make CFLAGS='-Werror' CXXFLAGS='-Werror -Wno-error=cast-function-type -Wno-error=deprecated-copy -Wno-error=ignored-qualifiers'
[8ea94ea]40  VALGRIND=valgrind make distcheck VERBOSE=1
[f78ad72]41else
[d2980d2]42  make dist
[e719df1]43fi
[098acb1]44
[d2980d2]45# Perform mingw build on a clean unpacked source tree from the release tarball
46# so that (a) we don't need to "make distclean" on the source tree and (b) we
47# ensure that any files required to build the mingw version and installer
48# package are actually shipped in the source tarball.
[a6bb1fa6]49tarball=`ls -1t survex-1*.tar.gz|head -n1`
[d2980d2]50tardir=`basename "$tarball" .tar.gz`
51rm -rf "$tardir"
52tar xf "$tarball"
53cd "$tardir"
[098acb1]54
[0fd6750]55test -n "$build_platform" || build_platform=`sh config.guess`
56SAVE_PATH=$PATH
[d380cd6]57for wxc in \
[bd285e5a]58  /usr/i686-w64-mingw32/lib/wx/config/i686-w64-mingw32-msw-unicode-static-3.0 \
[a989777]59  /usr/i586-mingw32msvc/lib/wx/config/i586-mingw32msvc-msw-unicode-static-3.0 \
[d380cd6]60  "" ; do
61  if test -z "$wxc" ; then
62    echo "wx-config for mingw not found" >&2
63    exit 1
64  fi
65  if test -x "$wxc" ; then
66    CC=`$wxc --cc`
67    CXX=`$wxc --cxx`
68    break
69  fi
70done
[bd285e5a]71host=mingw
[d380cd6]72case $CC in
[bd285e5a]73  *i686-w64-mingw32-gcc)
74    # debian mingw package
75    host=i686-w64-mingw32
76    ;;
[d380cd6]77  *i586-mingw32msvc-gcc)
78    # debian mingw32 package
[bd285e5a]79    host=i586-mingw32msvc
[d380cd6]80    ;;
81  *i386-mingw32msvc-gcc)
82    # debian mingw32 package
[bd285e5a]83    host=i386-mingw32msvc
[d380cd6]84    ;;
85esac
[bd285e5a]86PATH=/usr/$host/bin:$PATH
[d380cd6]87
[d2980d2]88# Passing -Werror to configure causes AC_CHECK_FUNCS to fail, so pass it to
89# make instead.
[2e24435]90cross_pkg_config_path=`echo "$wxc"|sed 's,/lib/.*,/lib/pkgconfig,'`
91PKG_CONFIG_PATH=$cross_pkg_config_path \
92PKG_CONFIG_LIBDIR=$cross_pkg_config_path \
93  ./configure --host="$host" --build="$build_platform" WX_CONFIG="$wxc" \
94      CC="$CC" CXX="$CXX" CXXFLAGS="-g -O2 -fno-strict-aliasing -Werror" \
95      LDFLAGS='-s -static'
[79b271b]96make CFLAGS='-g -O2 -Werror'
[0fd6750]97make mingw_iss
98PATH=$SAVE_PATH
99
[d2980d2]100mv survex-win32-*.exe ..
101cd ..
102
103if test x"$rel" = xyes ; then
104  rm -rf "$tardir"
[004b1c2]105else
106  exit 0
[d2980d2]107fi
[7b12c6d]108
[9c9fd6b]109VERSION=`sed 's/^VERSION *= *//p;d' Makefile`
[8430216]110FILES="survex-$VERSION.tar.gz survex-win32-$VERSION.exe"
[f4671eb]111echo "SHA256 checksums:"
112sha256sum $FILES
[8430216]113echo
114
[179a57b]115for f in $FILES ; do
[201310c]116    gpg --detach-sign --armour "$f"
[179a57b]117    FILES="$FILES $f.asc"
118done
119
[8430216]120echo "To tag this release and upload it to the webserver, run:"
[6fabfc0]121echo git tag -s -m"'Survex $VERSION'" "$VERSION"
[e11c235]122
[f4671eb]123HOST=thyestes.tartarus.org
[e11c235]124echo ssh "$HOST" mkdir /srv/www/survex.com/software/"$VERSION"
[8430216]125echo scp $FILES "$HOST":/srv/www/survex.com/software/"$VERSION"
Note: See TracBrowser for help on using the repository browser.