mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-14 05:45:59 +03:00
Adds python build script.
Not the final version just to test
This commit is contained in:
parent
79639b5e47
commit
c17bf6ad42
149
build/find_python.m4
Normal file
149
build/find_python.m4
Normal file
@ -0,0 +1,149 @@
|
||||
dnl Check for PYTHON Libraries
|
||||
dnl Sets:
|
||||
|
||||
|
||||
AC_DEFUN([CHECK_PYTHON],
|
||||
[dnl
|
||||
|
||||
AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
|
||||
PYTHON_CONFIG=""
|
||||
PYTHON_VERSION=""
|
||||
PYTHON_CFLAGS=""
|
||||
PYTHON_CPPFLAGS=""
|
||||
PYTHON_LDADD=""
|
||||
PYTHON_LDFLAGS=""
|
||||
PYTHON_CONFIG=${PKG_CONFIG}
|
||||
PYTHON_PKGNAMES="python3"
|
||||
PYTHON_SONAMES="so la sl dll dylib"
|
||||
|
||||
AC_ARG_WITH(
|
||||
python,
|
||||
[AC_HELP_STRING([--with-python=PATH],[Path to Python prefix or config script])]
|
||||
,, with_python=yes)
|
||||
|
||||
AS_CASE(["${with_pythonl}"],
|
||||
[no], [test_paths=],
|
||||
[yes], [test_paths="/usr/local/libpython /usr/local/python /usr/local /opt/libpython /opt/python /opt /usr"],
|
||||
[test_paths="${with_python}"])
|
||||
|
||||
AS_IF([test "x${test_paths}" != "x"], [
|
||||
AC_MSG_CHECKING([for Python config script])
|
||||
for x in ${test_paths}; do
|
||||
dnl # Determine if the script was specified and use it directly
|
||||
if test ! -d "$x" -a -e "$x"; then
|
||||
PYTHON_CONFIG=$x
|
||||
break
|
||||
fi
|
||||
|
||||
dnl # Try known config script names/locations
|
||||
for y in $PYTHON_CONFIG; do
|
||||
if test -e "${x}/bin/${y}"; then
|
||||
PYTHON_CONFIG="${x}/bin/${y}"
|
||||
python_config="${PYTHON_CONFIG}"
|
||||
break
|
||||
elif test -e "${x}/${y}"; then
|
||||
PYTHON_CONFIG="${x}/${y}"
|
||||
python_config="${PYTHON_CONFIG}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -n "${python_config}"; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
dnl # Try known package names
|
||||
if test -n "${PYTHON_CONFIG}"; then
|
||||
PYTHON_PKGNAME=""
|
||||
for x in ${PYTHON_PKGNAMES}; do
|
||||
if ${PYTHON_CONFIG} --exists ${x}; then
|
||||
PYTHON_PKGNAME="$x"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if test -n "${PYTHON_PKGNAME}"; then
|
||||
AC_MSG_RESULT([${PYTHON_CONFIG}])
|
||||
PYTHON_VERSION="`${PYTHON_CONFIG} ${PYTHON_PKGNAME} --modversion`"
|
||||
if test "$verbose_output" -eq 1; then AC_MSG_NOTICE(python VERSION: $PYTHON_VERSION); fi
|
||||
PYTHON_CFLAGS="`${PYTHON_CONFIG} ${PYTHON_PKGNAME} --cflags`"
|
||||
if test "$verbose_output" -eq 1; then AC_MSG_NOTICE(python CFLAGS: $PYTHON_CFLAGS); fi
|
||||
PYTHON_LDADD="`${PYTHON_CONFIG} ${PYTHON_PKGNAME} --libs-only-l`"
|
||||
if test "$verbose_output" -eq 1; then AC_MSG_NOTICE(python LDADD: $PYTHON_LDADD); fi
|
||||
PYTHON_LDFLAGS="`${PYTHON_CONFIG} ${PYTHON_PKGNAME} --libs-only-L --libs-only-other`"
|
||||
if test "$verbose_output" -eq 1; then AC_MSG_NOTICE(python LDFLAGS: $PYTHON_LDFLAGS); fi
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
|
||||
dnl Hack to just try to find the lib and include
|
||||
AC_MSG_CHECKING([for python install])
|
||||
for x in ${test_paths}; do
|
||||
for y in ${PYTHON_SONAMES}; do
|
||||
if test -e "${x}/libpython.${y}"; then
|
||||
python_lib_path="${x}/"
|
||||
python_lib_name="python"
|
||||
break
|
||||
else
|
||||
python_lib_path=""
|
||||
python_lib_name=""
|
||||
fi
|
||||
done
|
||||
if test -n "$python_lib_path"; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
for x in ${test_paths}; do
|
||||
if test -e "${x}/include/Python.h"; then
|
||||
python_inc_path="${x}/include"
|
||||
break
|
||||
elif test -e "${x}/Python.h"; then
|
||||
python_inc_path="${x}"
|
||||
break
|
||||
fi
|
||||
|
||||
dnl # Check some sub-paths as well
|
||||
for python_pkg_name in ${python_lib_name} ${PYTHON_PKGNAMES}; do
|
||||
if test -e "${x}/include/${python_pkg_name}/Python.h"; then
|
||||
python_inc_path="${x}/include"
|
||||
break
|
||||
elif test -e "${x}/${python_pkg_name}/Python.h"; then
|
||||
python_inc_path="${x}"
|
||||
break
|
||||
else
|
||||
python_inc_path=""
|
||||
fi
|
||||
done
|
||||
if test -n "$python_inc_path"; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -n "${python_lib_path}" -a -n "${python_inc_path}"; then
|
||||
PYTHON_CONFIG=""
|
||||
AC_MSG_RESULT([${python_lib_path} ${python_inc_path}])
|
||||
PYTHON_VERSION="2"
|
||||
PYTHON_CFLAGS="-I${python_inc_path}"
|
||||
PYTHON_LDADD="-l${python_lib_name}"
|
||||
PYTHON_LDFLAGS="-L${python_lib_path}"
|
||||
else
|
||||
PYTHON_VERSION=""
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
|
||||
])
|
||||
|
||||
PYTHON_LIBS=${PYTHON_LDADD}
|
||||
AC_SUBST(PYTHON_CFLAGS)
|
||||
AC_SUBST(PYTHON_LDADD)
|
||||
AC_SUBST(PYTHON_LIBS)
|
||||
AC_SUBST(PYTHON_LDFLAGS)
|
||||
if test -z "${PYTHON_VERSION}"; then
|
||||
ifelse([$2], , AC_MSG_NOTICE([optional python library not found]), $2)
|
||||
else
|
||||
AC_MSG_NOTICE([using python v${PYTHON_VERSION}])
|
||||
PYTHON_CFLAGS="-DWITH_PYTHON ${PYTHON_CFLAGS}"
|
||||
ifelse([$1], , , $1)
|
||||
fi
|
||||
])
|
@ -701,6 +701,7 @@ fi
|
||||
# Check for YAJL libs (for JSON body processor)
|
||||
CHECK_YAJL()
|
||||
#AC_SEARCH_LIBS([yajl_alloc], [yajl])
|
||||
CHECK_PYTHON()
|
||||
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_CONFIG_FILES([tools/Makefile])
|
||||
|
Loading…
x
Reference in New Issue
Block a user