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 srcdir=$1 29 srcdir=${srcdir:-.} 30 31 ${srcdir}/../event_rpcgen.py --quiet ${srcdir}/regress.rpc \ 32 test/regress.gen.h test/regress.gen.c 33 34 case "$?" in 35 0) 36 exit_updated 37 ;; 38 *) 39 test -r ${srcdir}/regress.gen.c -a -r ${srcdir}/regress.gen.h && \ 40 exit_reuse 41 exit_failed 42 ;; 43 esac 44