
help=no

CC=gcc
OBJS=objs

TEST_BUILD_DEVPOLL=NO
TEST_BUILD_EPOLL=NO
TEST_BUILD_SIGIO=NO

EVENT_FOUND=NO

EVENT_SELECT=NO
EVENT_POLL=NO
EVENT_AIO=NO

HTTP_REWRITE=YES
HTTP_GZIP=YES
HTTP_SSI=YES
HTTP_PROXY=YES

USE_PCRE=NO
PCRE=NO

USE_MD5=NO
MD5=NONE

USE_ZLIB=NO
ZLIB=NONE


for option
do
    case "$option" in
        -*=*) value=`echo "$option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
           *) value="" ;;
    esac

    case "$option" in
        --help)                          help=yes                   ;;

        --crossbuild=*)                  PLATFORM="$value"          ;;

        --builddir=*)                    OBJS="$value"              ;;

        --with-select_module)            EVENT_SELECT=YES           ;;
        --without-select_module)         EVENT_SELECT=NONE          ;;
        --with-poll_module)              EVENT_POLL=YES             ;;
        --without-poll_module)           EVENT_POLL=NONE            ;;
        --with-aio_module)               EVENT_AIO=YES              ;;

        --without-http_rewrite_module)   HTTP_REWRITE=NO            ;;
        --without-http_ssi_module)       HTTP_SSI=NO                ;;
        --without-http_gzip_module)      HTTP_GZIP=NO               ;;
        --without-http_proxy_module)     HTTP_PROXY=NO              ;;

        --with-cc=*)                     CC="$value"                ;;

        --without-pcre)                  PCRE=NONE                  ;;
        --with-pcre=*)                   PCRE="$value"              ;;
        --with-md5=*)                    MD5="$value"               ;;
        --with-zlib=*)                   ZLIB="$value"              ;;

        --test-build-devpoll)            TEST_BUILD_DEVPOLL=YES     ;;
        --test-build-epoll)              TEST_BUILD_EPOLL=YES       ;;
        --test-build-sigio)              TEST_BUILD_SIGIO=YES       ;;

        *)
            echo "$0: error: invalid option \"$option\""
            exit 1
        ;;
    esac
done


if [ $help = yes ]; then
    echo
    echo "  --help                         this message"
    echo

    echo "  --without-select_module        disable select_module"
    echo "  --without-poll_module          disable poll_module"

    echo "  --without-http_rewrite_module  disable http_rewrite_module"
    echo "  --without-http_gzip_module     disable http_gzip_module"
    echo "  --without-http_proxy_module    disable http_proxy_module"

    echo "  --with-cc=NAME                 name of or path to C compiler"
    echo

    echo "  --with-pcre=DIR                path to PCRE library"
    echo "  --with-md5=DIR                 path to md5 library"
    echo "  --with-zlib=DIR                path to zlib library"
    echo

    exit 1
fi
