blob: e49d0ca6d4615f9a3a76cd0161249f2657307030 [file] [log] [blame]
##*****************************************************************************
# AUTHOR:
# Derived from x_ac_json.
#
# SYNOPSIS:
# X_AC_HTTP_PARSER()
#
# DESCRIPTION:
# Check for NodeJS HTTP Parser libraries.
# Right now, just check for httpparser header and library.
#
# WARNINGS:
# This macro must be placed after AC_PROG_CC and before AC_PROG_LIBTOOL.
##*****************************************************************************
AC_DEFUN([X_AC_HTTP_PARSER], [
_x_ac_http_parser_dirs="/usr /usr/local"
_x_ac_http_parser_libs="lib64 lib"
AC_ARG_WITH(
[http_parser],
AS_HELP_STRING(--with-http-parser=PATH,Specify path to HTTP Parser installation),
[AS_IF([test "x$with_http_parser" != xno && test "x$with_http_parser" != xyes],
[_x_ac_http_parser_dirs="$with_http_parser"])])
if [test "x$with_http_parser" = xno]; then
AC_MSG_NOTICE([support for HTTP parser disabled])
else
AC_CACHE_CHECK(
[for http-parser installation],
[x_ac_cv_http_parser_dir],
[
for d in $_x_ac_http_parser_dirs; do
test -d "$d" || continue
test -d "$d/include" || continue
test -f "$d/include/http_parser.h" || continue
for bit in $_x_ac_http_parser_libs; do
_x_ac_http_parser_libs_save="$LIBS"
LIBS="-L$d/$bit -lhttp_parser $LIBS"
AC_LINK_IFELSE(
[AC_LANG_CALL([], http_parser_init)],
AS_VAR_SET(x_ac_cv_http_parser_dir, $d))
LIBS="$_x_ac_http_parser_libs_save"
test -n "$x_ac_cv_http_parser_dir" && break
done
test -n "$x_ac_cv_http_parser_dir" && break
done
])
if test -z "$x_ac_cv_http_parser_dir"; then
if test -z "$with_http_parser"; then
AC_MSG_WARN([unable to locate HTTP Parser library])
else
AC_MSG_ERROR([unable to locate HTTP Parser library])
fi
else
AC_DEFINE([HAVE_HTTP_PARSER], [1], [Define if you are compiling with HTTP parser.])
HTTP_PARSER_CPPFLAGS="-I$x_ac_cv_http_parser_dir/include"
HTTP_PARSER_LDFLAGS="-L$x_ac_cv_http_parser_dir/$bit -lhttp_parser"
fi
AC_SUBST(HTTP_PARSER_CPPFLAGS)
AC_SUBST(HTTP_PARSER_LDFLAGS)
fi
AM_CONDITIONAL(WITH_HTTP_PARSER, test -n "$x_ac_cv_http_parser_dir")
])