summaryrefslogtreecommitdiffstats
path: root/libevent/test/rpcgen_wrapper.sh
diff options
context:
space:
mode:
Diffstat (limited to 'libevent/test/rpcgen_wrapper.sh')
-rwxr-xr-xlibevent/test/rpcgen_wrapper.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/libevent/test/rpcgen_wrapper.sh b/libevent/test/rpcgen_wrapper.sh
new file mode 100755
index 0000000..fe582d5
--- /dev/null
+++ b/libevent/test/rpcgen_wrapper.sh
@@ -0,0 +1,43 @@
+#!/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
+}
+srcdir=$1
+srcdir=${srcdir:-.}
+
+${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