
# Copyright (C) Igor Sysoev


# Borland C++ 5.5

# optimizations

# maximize speed
CFLAGS="$CFLAGS -O2"

case $CPU in
    pentium)
        # optimize for Pentium and Athlon
        CPU_OPT="-5"
    ;;

    pentiumpro)
        # optimize for Pentium Pro, Pentium II and Pentium III
        CPU_OPT="-6"
    ;;
esac

# __stdcall
#CPU_OPT="$CPU_OPT -ps"
# __fastcall
#CPU_OPT="$CPU_OPT -pr"

CFLAGS="$CFLAGS $CPU_OPT"

# multithreaded
CFLAGS="$CFLAGS -tWM"

# stop on warning
CFLAGS="$CFLAGS -w!"

# disable logo
CFLAGS="$CFLAGS -q"


# precompiled headers
CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.csm"
NGX_PCH="$NGX_OBJS/ngx_config.csm"
NGX_BUILD_PCH="-H=$NGX_OBJS/ngx_config.csm"
NGX_USE_PCH="-Hu -H=$NGX_OBJS/ngx_config.csm"


# Win32 GUI mode application
#LINK="\$(CC) -laa"


# the resource file
NGX_RES="$NGX_OBJS/nginx.res"
NGX_RCC="brcc32 -fo$NGX_OBJS/nginx.res \$(CORE_INCS) $NGX_WIN32_RC"
# the pragma allows to link the resource file using bcc32 and
# to avoid the direct ilink32 calling and the c0w32.obj's WinMain/main problem
NGX_PRAGMA="#pragma resource \"$NGX_OBJS/nginx.res\""


ngx_include_opt="-I"
ngx_objout="-o"
ngx_binout="-e"
ngx_objext="obj"
ngx_binext=".exe"

ngx_long_start='@&&|
	'
ngx_long_end='|'

ngx_regex_dirsep='\\'
ngx_dirsep="\\"
