
# 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="\\"
