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