#!/bin/sh
# libevent rpcgen_wrapper.sh
# Transforms event_rpcgen.py failure into success for make, only if
# regress.gen.c and regress.gen.h already exist in $srcdir. This
# is needed for "make distcheck" to pass the read-only $srcdir build,
# as with read-only sources fresh from tarball, regress.gen.[ch] will
# be correct in $srcdir but unwritable. This previously triggered
# Makefile.am to create stub regress.gen.c and regress.gen.h in the
# distcheck _build directory, which were then detected as leftover
# files in the build tree after distclean, breaking distcheck.
# Note that regress.gen.[ch] are not in fresh git clones, making
# working Python a requirement for make distcheck of a git tree.
exit_updated() {
# echo "Updated ${srcdir}/regress.gen.c and ${srcdir}/regress.gen.h"
exit 0
}
exit_reuse() {
echo "event_rpcgen.py failed, ${srcdir}/regress.gen.\[ch\] will be reused." >&2
exit 0
}
exit_failed() {
echo "Could not generate regress.gen.\[ch\] using event_rpcgen.sh" >&2
exit 1
}
if [ -x /usr/bin/python2 ] ; then
PYTHON2=/usr/bin/python2
elif [ "x`which python2`" != x ] ; then
PYTHON2=python2
else
PYTHON2=python
fi
srcdir=$1
srcdir=${srcdir:-.}
${PYTHON2} ${srcdir}/../event_rpcgen.py --quiet ${srcdir}/regress.rpc \
test/regress.gen.h test/regress.gen.c
case "$?" in
0)
exit_updated
;;
*)
test -r ${srcdir}/regress.gen.c -a -r ${srcdir}/regress.gen.h && \
exit_reuse
exit_failed
;;
esac