xref: /freebsd/contrib/libevent/test/rpcgen_wrapper.sh (revision 2da066ef6d85d3f7cd8aaec14369d66254836536)
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}
28srcdir=$1
29srcdir=${srcdir:-.}
30
31${srcdir}/../event_rpcgen.py --quiet ${srcdir}/regress.rpc \
32               test/regress.gen.h test/regress.gen.c
33
34case "$?" 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    ;;
43esac
44