
# Copyright (C) Igor Sysoev


if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then
    EVENT_SELECT=YES
fi

if [ $EVENT_SELECT = YES ]; then
    have=NGX_HAVE_SELECT . auto/have
    CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
    EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
fi


if [ $EVENT_POLL = NO -a $EVENT_FOUND = NO ]; then
    EVENT_POLL=YES
fi

if [ $EVENT_POLL = YES ]; then
    have=NGX_HAVE_POLL . auto/have
    CORE_SRCS="$CORE_SRCS $POLL_SRCS"
    EVENT_MODULES="$EVENT_MODULES $POLL_MODULE"
fi


if [ $NGX_TEST_BUILD_DEVPOLL = YES ]; then
    have=NGX_HAVE_DEVPOLL . auto/have
    have=NGX_TEST_BUILD_DEVPOLL . auto/have
    EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
    CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
fi

if [ $NGX_TEST_BUILD_EPOLL = YES ]; then
    have=NGX_HAVE_EPOLL . auto/have
    have=NGX_TEST_BUILD_EPOLL . auto/have
    EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
    CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
fi

if [ $NGX_TEST_BUILD_RTSIG = YES ]; then
    have=NGX_HAVE_RTSIG . auto/have
    have=NGX_TEST_BUILD_RTSIG . auto/have
    EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE"
    CORE_SRCS="$CORE_SRCS $RTSIG_SRCS"
fi

if [ $NGX_TEST_BUILD_SOLARIS_SENDFILEV = YES ]; then
    have=NGX_TEST_BUILD_SOLARIS_SENDFILEV . auto/have
    CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
fi


if [ $HTTP != YES ]; then
    have=NGX_CRYPT . auto/nohave
    CRYPT_LIB=
fi


if [ $HTTP_SSI = YES ]; then
    HTTP_POSTPONE=YES
fi


if [ $HTTP_ADDITION = YES ]; then
    HTTP_POSTPONE=YES
fi


# the module order is important
#     ngx_http_autoindex_module
#     ngx_http_index_module
#
#     ngx_http_access_module
#     ngx_http_realip_module
#
#
# the filter order is important
#     ngx_http_write_filter
#     ngx_http_header_filter
#     ngx_http_chunked_filter
#     ngx_http_range_header_filter
#     ngx_http_gzip_filter
#     ngx_http_postpone_filter
#     ngx_http_charset_filter
#     ngx_http_ssi_filter
#         ngx_http_addition_filter
#         ngx_http_userid_filter
#         ngx_http_headers_filter
#     ngx_http_copy_filter
#     ngx_http_range_body_filter
#     ngx_http_not_modified_filter

HTTP_FILTER_MODULES="$HTTP_WRITE_FILTER_MODULE \
                     $HTTP_HEADER_FILTER_MODULE \
                     $HTTP_CHUNKED_FILTER_MODULE \
                     $HTTP_RANGE_HEADER_FILTER_MODULE"

if [ $HTTP_GZIP = YES ]; then
    have=NGX_HTTP_GZIP . auto/have
    USE_ZLIB=YES
    HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_GZIP_FILTER_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_SRCS"
fi

if [ $HTTP_POSTPONE = YES ]; then
    HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_POSTPONE_FILTER_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTPP_POSTPONE_FILTER_SRCS"
fi

if [ $HTTP_CHARSET = YES ]; then
    have=NGX_HTTP_CHARSET . auto/have
    HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_CHARSET_FILTER_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_CHARSET_SRCS"
fi

if [ $HTTP_SSI = YES ]; then
    have=NGX_HTTP_SSI . auto/have
    HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SSI_FILTER_MODULE"
    HTTP_DEPS="$HTTP_DEPS $HTTP_SSI_DEPS"
    HTTP_SRCS="$HTTP_SRCS $HTTP_SSI_SRCS"
fi

if [ $HTTP_ADDITION = YES ]; then
    HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_ADDITION_FILTER_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_ADDITION_SRCS"
fi

if [ $HTTP_USERID = YES ]; then
    HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_USERID_FILTER_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_USERID_SRCS"
fi

HTTP_MODULES="$HTTP_MODULES $HTTP_STATIC_MODULE"

if [ $HTTP_DAV = YES ]; then
    have=NGX_HTTP_DAV . auto/have
    HTTP_MODULES="$HTTP_MODULES $HTTP_DAV_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_DAV_SRCS"
fi

if [ $HTTP_AUTOINDEX = YES ]; then
    have=NGX_HTTP_AUTOINDEX . auto/have
    HTTP_MODULES="$HTTP_MODULES $HTTP_AUTOINDEX_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_AUTOINDEX_SRCS"
fi

HTTP_MODULES="$HTTP_MODULES $HTTP_INDEX_MODULE"

if [ $HTTP_AUTH_BASIC = YES ]; then
    have=NGX_HTTP_AUTH_BASIC . auto/have
    have=NGX_CRYPT . auto/have
    HTTP_MODULES="$HTTP_MODULES $HTTP_AUTH_BASIC_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_AUTH_BASIC_SRCS"
    CORE_LIBS="$CORE_LIBS $CRYPT_LIB"
fi

if [ $HTTP_ACCESS = YES ]; then
    have=NGX_HTTP_ACCESS . auto/have
    HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESS_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_ACCESS_SRCS"
fi

if [ $HTTP_REALIP = YES ]; then
    have=NGX_HTTP_REALIP . auto/have
    HTTP_MODULES="$HTTP_MODULES $HTTP_REALIP_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_REALIP_SRCS"
fi

if [ $HTTP_STATUS = YES ]; then
    have=NGX_HTTP_STATUS . auto/have
    HTTP_MODULES="$HTTP_MODULES $HTTP_STATUS_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_STATUS_SRCS"
fi

if [ $HTTP_GEO = YES ]; then
    have=NGX_HTTP_GEO . auto/have
    HTTP_MODULES="$HTTP_MODULES $HTTP_GEO_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_GEO_SRCS"
fi

if [ $HTTP_MAP = YES ]; then
    have=NGX_HTTP_MAP . auto/have
    HTTP_MODULES="$HTTP_MODULES $HTTP_MAP_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_MAP_SRCS"
fi

if [ $HTTP_REFERER = YES ]; then
    HTTP_MODULES="$HTTP_MODULES $HTTP_REFERER_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_REFERER_SRCS"
fi

if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
    have=NGX_HTTP_REWRITE . auto/have
    USE_PCRE=YES
    HTTP_MODULES="$HTTP_MODULES $HTTP_REWRITE_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_REWRITE_SRCS"
fi

if [ $HTTP_SSL = YES ]; then
    USE_OPENSSL=YES
    have=NGX_HTTP_SSL . auto/have
    HTTP_MODULES="$HTTP_MODULES $HTTP_SSL_MODULE"
    HTTP_DEPS="$HTTP_DEPS $HTTP_SSL_DEPS"
    HTTP_SRCS="$HTTP_SRCS $HTTP_SSL_SRCS"
fi

if [ $HTTP_PROXY = YES ]; then
    have=NGX_HTTP_PROXY . auto/have
    #USE_MD5=YES
    HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE"
    HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
    HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS"
fi

if [ $HTTP_FASTCGI = YES ]; then
    HTTP_MODULES="$HTTP_MODULES $HTTP_FASTCGI_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_FASTCGI_SRCS"
fi

if [ $HTTP_PERL = YES ]; then
    USE_PERL=YES
    have=NGX_HTTP_PERL . auto/have
    HTTP_MODULES="$HTTP_MODULES $HTTP_PERL_MODULE"
    HTTP_INCS="$HTTP_INCS $HTTP_PERL_INCS"
    HTTP_DEPS="$HTTP_DEPS $HTTP_PERL_DEPS"
    HTTP_SRCS="$HTTP_SRCS $HTTP_PERL_SRCS"
fi

if [ $HTTP_MEMCACHED = YES ]; then
    HTTP_MODULES="$HTTP_MODULES $HTTP_MEMCACHED_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_MEMCACHED_SRCS"
fi

if [ $HTTP_EMPTY_GIF = YES ]; then
    HTTP_MODULES="$HTTP_MODULES $HTTP_EMPTY_GIF_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_EMPTY_GIF_SRCS"
fi

if [ $HTTP_BROWSER = YES ]; then
    HTTP_MODULES="$HTTP_MODULES $HTTP_BROWSER_MODULE"
    HTTP_SRCS="$HTTP_SRCS $HTTP_BROWSER_SRCS"
fi

# STUB
#USE_MD5=YES
#HTTP_SRCS="$HTTP_SRCS $HTPP_CACHE_SRCS"
#HTTP_SRCS="$HTTP_SRCS $HTPP_FILE_CACHE_SRCS"

if [ $HTTP_STUB_STATUS = YES ]; then
    have=NGX_STAT_STUB . auto/have
    HTTP_MODULES="$HTTP_MODULES ngx_http_stub_status_module"
    HTTP_SRCS="$HTTP_SRCS src/http/modules/ngx_http_stub_status_module.c"
fi

#if [ -r $NGX_OBJS/auto ]; then
#    . $NGX_OBJS/auto
#fi


if test -n "$NGX_ADDONS"; then

    echo configuring additional modules

    for ngx_addon_dir in $NGX_ADDONS
    do
        echo "adding module in $ngx_addon_dir"

        if test -f $ngx_addon_dir/config; then
            . $ngx_addon_dir/config

            echo " + $ngx_addon_name was configured"

        else
            echo "$0: error: no $ngx_addon_dir/config was found"
            exit 1
        fi
    done
fi


if [ $IMAP_SSL = YES ]; then
    IMAP_DEPS="$IMAP_DEPS $IMAP_SSL_DEPS"
    IMAP_SRCS="$IMAP_SRCS $IMAP_SSL_SRCS"
    have=NGX_IMAP_SSL . auto/have
    USE_OPENSSL=YES
fi


modules="$CORE_MODULES $EVENT_MODULES"


if [ $USE_OPENSSL = YES ]; then
    modules="$modules $OPENSSL_MODULE"
    CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS"
    CORE_SRCS="$CORE_SRCS $OPENSSL_SRCS"
fi

if [ $HTTP = YES ]; then
    modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \
             $HTTP_HEADERS_FILTER_MODULE \
             $HTTP_AUX_FILTER_MODULES \
             $HTTP_COPY_FILTER_MODULE \
             $HTTP_RANGE_BODY_FILTER_MODULE \
             $HTTP_NOT_MODIFIED_FILTER_MODULE"

    NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)"
fi


if [ $IMAP = YES ]; then
    modules="$modules $IMAP_MODULES"

    if [ $IMAP_SSL = YES ]; then
        modules="$modules $IMAP_SSL_MODULE"
    fi

    modules="$modules $IMAP_AUTH_HTTP_MODULE"
    IMAP_SRCS="$IMAP_SRCS $IMAP_AUTH_HTTP_SRCS"

    modules="$modules $IMAP_PROXY_MODULE"
    IMAP_SRCS="$IMAP_SRCS $IMAP_PROXY_SRCS"
fi


cat << END                                    > $NGX_MODULES_C

#include <ngx_config.h>
#include <ngx_core.h>

$NGX_PRAGMA

END

for mod in $modules
do
    echo "extern ngx_module_t  $mod;"         >> $NGX_MODULES_C
done

echo                                          >> $NGX_MODULES_C
echo 'ngx_module_t *ngx_modules[] = {'        >> $NGX_MODULES_C

for mod in $modules
do
    echo "    &$mod,"                         >> $NGX_MODULES_C
done

cat << END                                    >> $NGX_MODULES_C
    NULL
};

END
