mirror of
https://github.com/libevent/libevent.git
synced 2025-01-20 05:02:55 +08:00
243386ccc2
Currently an out-of-tree build will either write to the src dir or reuse the existing regress.gen.[c,h]. But if building from a read-only git tree (or if the git dir is cleaned), these files will not exist and the build fails. So write the files to the build dir. If the system does not have python, the regress.gen.[c,h] will be used from the src dir if they exist.
53 lines
1.5 KiB
Bash
Executable File
53 lines
1.5 KiB
Bash
Executable File
#!/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
|
|
}
|
|
|
|
if [ -x /usr/bin/python2 ] ; then
|
|
PYTHON2=/usr/bin/python2
|
|
elif [ "x`which python2`" != x ] ; then
|
|
PYTHON2=python2
|
|
else
|
|
PYTHON2=python
|
|
fi
|
|
|
|
srcdir=$1
|
|
srcdir=${srcdir:-.}
|
|
|
|
${PYTHON2} ${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
|