
# Copyright (C) Igor Sysoev


echo $ngx_n "checking for $ngx_include ...$ngx_c"

cat << END >> $NGX_AUTOCONF_ERR

----------------------------------------
checking for $ngx_include

END


ngx_found=no

cat << END > $NGX_AUTOTEST.c

#include <$ngx_include>

int main() {
    return 0;
}

END


ngx_test="$CC -o $NGX_AUTOTEST $NGX_AUTOTEST.c"

eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"

if [ -x $NGX_AUTOTEST ]; then

    ngx_found=yes

    echo " found"

    ngx_name=`echo $ngx_include | sed -e 's/\./_/' -e 's/\//_/' \
                  |  tr '[a-z]' '[A-Z]'`


    cat << END >> $NGX_AUTO_HEADERS_H

#ifndef NGX_HAVE_$ngx_name
#define NGX_HAVE_$ngx_name  1
#endif

END


    eval "NGX_INCLUDE_$ngx_name='#include <$ngx_include>'"

    #STUB 
    eval "NGX_$ngx_name='#include <$ngx_include>'"

else
    echo " not found"

    echo "----------"    >> $NGX_AUTOCONF_ERR
    cat $NGX_AUTOTEST.c  >> $NGX_AUTOCONF_ERR
    echo "----------"    >> $NGX_AUTOCONF_ERR
    echo $ngx_test       >> $NGX_AUTOCONF_ERR
    echo "----------"    >> $NGX_AUTOCONF_ERR
fi

rm $NGX_AUTOTEST*
