
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

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           ;;
        --with-poll_module)              EVENT_POLL=YES             ;;
        --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"                ;;

        --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
