Home | History | Annotate | Line # | Download | only in test
      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