
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.


    ngx_feature="GeoIP library"
    ngx_feature_name=
    ngx_feature_run=no
    ngx_feature_incs=
    ngx_feature_path=
    ngx_feature_libs="-lGeoIP"
    ngx_feature_test="GeoIP_open(NULL, 0)"
    . auto/feature


if [ $ngx_found = no ]; then

    # FreeBSD port

    ngx_feature="GeoIP library in /usr/local/"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lGeoIP"
    else
        ngx_feature_libs="-L/usr/local/lib -lGeoIP"
    fi

    . auto/feature
fi


if [ $ngx_found = no ]; then

    # NetBSD port

    ngx_feature="GeoIP library in /usr/pkg/"
    ngx_feature_path="/usr/pkg/include/"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lGeoIP"
    else
        ngx_feature_libs="-L/usr/pkg/lib -lGeoIP"
    fi

    . auto/feature
fi


if [ $ngx_found = no ]; then

    # MacPorts

    ngx_feature="GeoIP library in /opt/local/"
    ngx_feature_path="/opt/local/include"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lGeoIP"
    else
        ngx_feature_libs="-L/opt/local/lib -lGeoIP"
    fi

    . auto/feature
fi


if [ $ngx_found = yes ]; then
    CORE_LIBS="$CORE_LIBS $ngx_feature_libs"

else

cat << END

$0: error: the GeoIP module requires the GeoIP library.
You can either do not enable the module or install the library.

END

    exit 1
fi
