Narayan Kamath | fc74cb4 | 2017-09-13 12:53:52 +0100 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # libevent rpcgen_wrapper.sh |
| 3 | # Transforms event_rpcgen.py failure into success for make, only if |
| 4 | # regress.gen.c and regress.gen.h already exist in $srcdir. This |
| 5 | # is needed for "make distcheck" to pass the read-only $srcdir build, |
| 6 | # as with read-only sources fresh from tarball, regress.gen.[ch] will |
| 7 | # be correct in $srcdir but unwritable. This previously triggered |
| 8 | # Makefile.am to create stub regress.gen.c and regress.gen.h in the |
| 9 | # distcheck _build directory, which were then detected as leftover |
| 10 | # files in the build tree after distclean, breaking distcheck. |
| 11 | # Note that regress.gen.[ch] are not in fresh git clones, making |
| 12 | # working Python a requirement for make distcheck of a git tree. |
| 13 | |
| 14 | exit_updated() { |
| 15 | # echo "Updated ${srcdir}/regress.gen.c and ${srcdir}/regress.gen.h" |
| 16 | exit 0 |
| 17 | } |
| 18 | |
| 19 | exit_reuse() { |
| 20 | echo "event_rpcgen.py failed, ${srcdir}/regress.gen.\[ch\] will be reused." >&2 |
| 21 | exit 0 |
| 22 | } |
| 23 | |
| 24 | exit_failed() { |
| 25 | echo "Could not generate regress.gen.\[ch\] using event_rpcgen.sh" >&2 |
| 26 | exit 1 |
| 27 | } |
| 28 | |
| 29 | if [ -x /usr/bin/python2 ] ; then |
| 30 | PYTHON2=/usr/bin/python2 |
| 31 | elif [ "x`which python2`" != x ] ; then |
| 32 | PYTHON2=python2 |
| 33 | else |
| 34 | PYTHON2=python |
| 35 | fi |
| 36 | |
| 37 | srcdir=$1 |
| 38 | srcdir=${srcdir:-.} |
| 39 | |
| 40 | ${PYTHON2} ${srcdir}/../event_rpcgen.py --quiet ${srcdir}/regress.rpc \ |
| 41 | test/regress.gen.h test/regress.gen.c |
| 42 | |
| 43 | case "$?" in |
| 44 | 0) |
| 45 | exit_updated |
| 46 | ;; |
| 47 | *) |
| 48 | test -r ${srcdir}/regress.gen.c -a -r ${srcdir}/regress.gen.h && \ |
| 49 | exit_reuse |
| 50 | exit_failed |
| 51 | ;; |
| 52 | esac |