upstream nginx-0.7.43
[nginx.git] / nginx / auto / cc / msvc
1
2 # Copyright (C) Igor Sysoev
3
4
5 # MSVC 6.0 SP2, MSVC Toolkit 2003 (7.1), MSVC 2005 Express Edition SP1 (8.0)
6
7 # optimizations
8
9 # maximize speed, equivalent to -Og -Oi -Ot -Oy -Ob2 -Gs -GF -Gy
10 CFLAGS="$CFLAGS -O2"
11
12 # enable global optimization
13 #CFLAGS="$CFLAGS -Og"
14 # enable intrinsic functions
15 #CFLAGS="$CFLAGS -Oi"
16
17 # disable inline expansion
18 #CFLAGS="$CFLAGS -Ob0"
19 # explicit inline expansion
20 #CFLAGS="$CFLAGS -Ob1"
21 # explicit and implicit inline expansion
22 #CFLAGS="$CFLAGS -Ob2"
23
24 # enable frame pointer omission
25 #CFLAGS="$CFLAGS -Oy"
26 # disable stack checking calls
27 #CFLAGS="$CFLAGS -Gs"
28
29 # pools strings as read/write
30 #CFLAGS="$CFLAGS -Gf"
31 # pools strings as read-only
32 #CFLAGS="$CFLAGS -GF"
33
34
35 case $CPU in
36     pentium)
37         # optimize for Pentium and Athlon
38         CPU_OPT="-G5"
39     ;;
40
41     pentiumpro)
42         # optimize for Pentium Pro, Pentium II and Pentium III
43         CPU_OPT="-G6"
44     ;;
45
46     pentium4)
47         # optimize for Pentium 4, MSVC 7
48         CPU_OPT="-G7"
49     ;;
50 esac
51
52 # __cdecl, use with OpenSSL, md5 asm, and sha1 asm
53 #CPU_OPT="$CPU_OPT -Gd"
54 # __stdcall
55 #CPU_OPT="$CPU_OPT -Gz"
56 # __fastcall
57 CPU_OPT="$CPU_OPT -Gr"
58
59
60 CFLAGS="$CFLAGS $CPU_OPT"
61
62
63 # warnings
64
65 CFLAGS="$CFLAGS -W4"
66
67 # stop on warning
68 CFLAGS="$CFLAGS -WX"
69
70 # disable logo
71 CFLAGS="$CFLAGS -nologo"
72
73
74 LINK="\$(CC)"
75
76 # the link flags
77 CORE_LINK="$CORE_LINK -link -verbose:lib"
78
79 if [ $NGX_CC_NAME = msvc7 ]; then
80     # link with libcmt.lib, multithreaded
81     LIBC="-MT"
82 else
83     # link with msvcrt.dll
84     LIBC="-MD"
85 fi
86
87 CFLAGS="$CFLAGS $LIBC"
88
89 # Win32 GUI mode application
90 CORE_LIBS="$CORE_LIBS kernel32.lib user32.lib"
91 CORE_LINK="$CORE_LINK -subsystem:windows -entry:mainCRTStartup"
92
93 # debug
94 if [ $NGX_CC_NAME != msvc8 ]; then
95    CFLAGS="$CFLAGS -Zi"
96    CORE_LINK="$CORE_LINK -debug"
97 fi
98
99
100 # precompiled headers
101 CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch"
102 NGX_PCH="$NGX_OBJS/ngx_config.pch"
103 NGX_BUILD_PCH="-Ycngx_config.h -Fp$NGX_OBJS/ngx_config.pch"
104 NGX_USE_PCH="-Yungx_config.h -Fp$NGX_OBJS/ngx_config.pch"
105
106
107 # the resource file
108 NGX_RES="$NGX_OBJS/nginx.res"
109 NGX_RCC="rc -fo$NGX_RES \$(CORE_INCS) $NGX_WIN32_RC"
110 CORE_LINK="$NGX_RES $CORE_LINK"
111
112
113 ngx_objout="-Fo"
114 ngx_binout="-Fe"
115 ngx_objext="obj"
116 ngx_binext=".exe"
117
118 if [ "$BMAKE" = nmake ]; then
119     # MS nmake
120
121     ngx_long_start='@<<
122         '
123     ngx_long_end='<<'
124     ngx_long_regex_cont=' \
125         '
126     ngx_long_cont='
127         '
128
129 else
130     # Borland make
131
132     ngx_long_start='@&&|
133         '
134     ngx_long_end='|'
135 fi
136
137 # MSVC understand / in path
138 #ngx_regex_dirsep='\\'
139 #ngx_dirsep="\\"