diff options
Diffstat (limited to 'Lib/plat-linux/regen')
-rwxr-xr-x | Lib/plat-linux/regen | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/Lib/plat-linux/regen b/Lib/plat-linux/regen index c76950e2324..10633cbc9a9 100755 --- a/Lib/plat-linux/regen +++ b/Lib/plat-linux/regen @@ -1,8 +1,33 @@ #! /bin/sh case `uname` in -Linux*) ;; +Linux*|GNU*) ;; *) echo Probably not on a Linux system 1>&2 exit 1;; esac -set -v -h2py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/dlfcn.h +if [ -z "$CC" ]; then + echo >&2 "$(basename $0): CC is not set" + exit 1 +fi +headers="sys/types.h netinet/in.h dlfcn.h" +incdirs="$(echo $($CC -v -E - < /dev/null 2>&1|awk '/^#include/, /^End of search/' | grep '^ '))" +if [ -z "$incdirs" ]; then + incdirs="/usr/include" +fi +for h in $headers; do + absh= + for d in $incdirs; do + if [ -f "$d/$h" ]; then + absh="$d/$h" + break + fi + done + if [ -n "$absh" ]; then + absheaders="$absheaders $absh" + else + echo >&2 "$(basename $0): header $h not found" + exit 1 + fi +done + +set -x +${H2PY:-h2py} -i '(u_long)' $absheaders |