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 14exit_updated() { 15 echo "Updated ${srcdir}\regress.gen.c and ${srcdir}\regress.gen.h" 16 exit 0 17} 18 19exit_reuse() { 20 echo "event_rpcgen.py failed, ${srcdir}\regress.gen.\[ch\] will be reused." >&2 21 exit 0 22} 23 24exit_failed() { 25 echo "Could not generate regress.gen.\[ch\] using event_rpcgen.sh" >&2 26 exit 1 27} 28 29srcdir=$1 30srcdir=${srcdir:-.} 31${srcdir}/../event_rpcgen.py ${srcdir}/regress.rpc 32case "$?" in 33 0) 34 exit_updated 35 ;; 36 *) 37 test -r ${srcdir}/regress.gen.c -a -r ${srcdir}/regress.gen.h && \ 38 exit_reuse 39 exit_failed 40 ;; 41esac 42