bc4283266ef3e2d2cbfd4bf64dfcf02a0188d1c7
[platform/upstream/curl.git] / winbuild / Makefile.vc
1 !IF "$(MODE)"=="static"\r
2 TARGET = $(LIB_NAME_STATIC)\r
3 AS_DLL = false\r
4 CFGSET=true\r
5 !ELSEIF "$(MODE)"=="dll"\r
6 TARGET = $(LIB_NAME_DLL)\r
7 AS_DLL = true\r
8 CFGSET=true\r
9 !ELSE\r
10 !MESSAGE Invalid mode: $(MODE)\r
11 \r
12 #######################\r
13 # Usage\r
14 #\r
15 \r
16 !MESSAGE Usage: nmake /f Makefile.vc mode=<static or dll> <options>\r
17 !MESSAGE where <options> is one or many of:\r
18 !MESSAGE   VC=<6,7,8,9,10>              - VC versions\r
19 !MESSAGE   WITH_DEVEL=<path>            - Paths for the development files (SSL, zlib, etc.)\r
20 !MESSAGE                                  Defaults to sibbling directory deps: ../deps\r
21 !MESSAGE                                  Libraries can be fetched at http://pecl2.php.net/downloads/php-windows-builds/\r
22 !MESSAGE                                  Uncompress them into the deps folder.\r
23 !MESSAGE   WITH_SSL=<dll or static>     - Enable OpenSSL support, DLL or static\r
24 !MESSAGE   WITH_ZLIB=<dll or static>    - Enable zlib support, DLL or static\r
25 !MESSAGE   WITH_SSH2=<dll or static>    - Enable libSSH2 support, DLL or static\r
26 !MESSAGE   ENABLE_IDN=<yes or no>       - Enable use of Windows IDN APIs, defaults to yes\r
27 !MESSAGE                                  Requires Windows Vista or later, or installation from:\r
28 !MESSAGE                                  http://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815\r
29 !MESSAGE   ENABLE_IPV6=<yes or no>      - Enable IPv6, defaults to yes\r
30 !MESSAGE   ENABLE_SSPI=<yes or no>      - Enable SSPI support, defaults to yes\r
31 !MESSAGE   ENABLE_SPNEGO=<yes or no>    - Enable Simple and Protected GSSAPI Negotiation Mechanism, defaults to yes\r
32 !MESSAGE   ENABLE_WINSSL=<yes or no>    - Enable native Windows SSL support, defaults to yes\r
33 !MESSAGE   GEN_PDB=<yes or no>          - Generate Program Database (debug symbols for release build)\r
34 !MESSAGE   DEBUG=<yes or no>            - Debug builds\r
35 !MESSAGE   MACHINE=<x86 or x64>         - Target architecture (default x64 on AMD64, x86 on others)\r
36 !ERROR please choose a valid mode\r
37 \r
38 !ENDIF\r
39 \r
40 !INCLUDE "../lib/Makefile.inc"\r
41 LIBCURL_OBJS=$(CSOURCES:.c=.obj)\r
42 \r
43 !INCLUDE "../src/Makefile.inc"\r
44 \r
45 # tool_hugehelp has a special rule\r
46 CURL_OBJS=$(CURL_CFILES:tool_hugehelp.c=)\r
47 \r
48 CURL_OBJS=$(CURL_OBJS:.c=.obj)\r
49 \r
50 \r
51 # backwards compatible check for USE_SSPI\r
52 !IFDEF USE_SSPI\r
53 ENABLE_SSPI = $(USE_SSPI)\r
54 !ENDIF\r
55 \r
56 # default options\r
57 !IFNDEF MACHINE\r
58 !IF "$(PROCESSOR_ARCHITECTURE)"=="AMD64"\r
59 MACHINE = x64\r
60 !ELSE\r
61 MACHINE = x86\r
62 !ENDIF\r
63 !ENDIF\r
64 \r
65 !IFNDEF ENABLE_IDN\r
66 USE_IDN = true\r
67 !ELSEIF "$(ENABLE_IDN)"=="yes"\r
68 USE_IDN = true\r
69 !ELSEIF "$(ENABLE_IDN)"=="no"\r
70 USE_IDN = false\r
71 !ENDIF\r
72 \r
73 !IFNDEF ENABLE_IPV6\r
74 USE_IPV6 = true\r
75 !ELSEIF "$(ENABLE_IPV6)"=="yes"\r
76 USE_IPV6 = true\r
77 !ELSEIF "$(ENABLE_IPV6)"=="no"\r
78 USE_IPV6 = false\r
79 !ENDIF\r
80 \r
81 !IFNDEF ENABLE_SSPI\r
82 USE_SSPI = true\r
83 !ELSEIF "$(ENABLE_SSPI)"=="yes"\r
84 USE_SSPI = true\r
85 !ELSEIF "$(ENABLE_SSPI)"=="no"\r
86 USE_SSPI = false\r
87 !ENDIF\r
88 \r
89 !IFNDEF ENABLE_SPNEGO\r
90 USE_SPNEGO = true\r
91 !ELSEIF "$(ENABLE_SPNEGO)"=="yes"\r
92 USE_SPNEGO = true\r
93 !ELSEIF "$(ENABLE_SPNEGO)"=="no"\r
94 USE_SPNEGO = false\r
95 !ENDIF\r
96 \r
97 !IFNDEF ENABLE_WINSSL\r
98 USE_WINSSL = $(USE_SSPI)\r
99 !ELSEIF "$(ENABLE_WINSSL)"=="yes"\r
100 USE_WINSSL = true\r
101 !ELSEIF "$(ENABLE_WINSSL)"=="no"\r
102 USE_WINSSL = false\r
103 !ENDIF\r
104 \r
105 CONFIG_NAME_LIB = libcurl\r
106 \r
107 !IF "$(WITH_SSL)"=="dll"\r
108 USE_SSL = true\r
109 SSL     = dll\r
110 !ELSEIF "$(WITH_SSL)"=="static"\r
111 USE_SSL = true\r
112 SSL     = static\r
113 !ENDIF\r
114 \r
115 !IF "$(WITH_ZLIB)"=="dll"\r
116 USE_ZLIB = true\r
117 ZLIB     = dll\r
118 !ELSEIF "$(WITH_ZLIB)"=="static"\r
119 USE_ZLIB = true\r
120 ZLIB     = static\r
121 !ENDIF\r
122 \r
123 !IF "$(WITH_SSH2)"=="dll"\r
124 USE_SSH2 = true\r
125 SSH2     = dll\r
126 !ELSEIF "$(WITH_SSH2)"=="static"\r
127 USE_SSH2 = true\r
128 SSH2     = static\r
129 !ENDIF\r
130 \r
131 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-vc$(VC)-$(MACHINE)\r
132 \r
133 !IF "$(DEBUG)"=="yes"\r
134 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-debug\r
135 !ELSE\r
136 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-release\r
137 !ENDIF\r
138 \r
139 !IF "$(AS_DLL)"=="true"\r
140 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-dll\r
141 !ELSE\r
142 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-static\r
143 !ENDIF\r
144 \r
145 !IF "$(USE_SSL)"=="true"\r
146 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL)\r
147 !ENDIF\r
148 \r
149 !IF "$(USE_ZLIB)"=="true"\r
150 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-zlib-$(ZLIB)\r
151 !ENDIF\r
152 \r
153 !IF "$(USE_SSH2)"=="true"\r
154 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssh2-$(SSH2)\r
155 !ENDIF\r
156 \r
157 !IF "$(USE_IPV6)"=="true"\r
158 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ipv6\r
159 !ENDIF\r
160 \r
161 !IF "$(USE_SSPI)"=="true"\r
162 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-sspi\r
163 !ENDIF\r
164 \r
165 !IF "$(USE_SPNEGO)"=="true"\r
166 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-spnego\r
167 !ENDIF\r
168 \r
169 !IF "$(USE_WINSSL)"=="true"\r
170 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-winssl\r
171 !ENDIF\r
172 \r
173 !MESSAGE configuration name: $(CONFIG_NAME_LIB)\r
174 \r
175 BUILD_DIR=../builds/$(CONFIG_NAME_LIB)\r
176 LIBCURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-lib\r
177 CURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-curl\r
178 DIRDIST = ..\builds\$(CONFIG_NAME_LIB)\\r
179 \r
180 $(MODE):\r
181         @SET DIROBJ=$(LIBCURL_DIROBJ)\r
182         @SET MACRO_NAME=LIBCURL_OBJS\r
183         @SET OUTFILE=LIBCURL_OBJS.inc\r
184         @gen_resp_file.bat $(LIBCURL_OBJS)\r
185 \r
186         @SET DIROBJ=$(CURL_DIROBJ)\r
187         @SET MACRO_NAME=CURL_OBJS\r
188         @SET OUTFILE=CURL_OBJS.inc\r
189         @gen_resp_file.bat $(CURL_OBJS)\r
190 \r
191         @SET CONFIG_NAME_LIB=$(CONFIG_NAME_LIB)\r
192         @SET MACHINE=$(MACHINE)\r
193         @SET USE_IDN=$(USE_IDN)\r
194         @SET USE_IPV6=$(USE_IPV6)\r
195         @SET USE_SSPI=$(USE_SSPI)\r
196         @SET USE_SPNEGO=$(USE_SPNEGO)\r
197         @SET USE_WINSSL=$(USE_WINSSL)\r
198         @$(MAKE) /NOLOGO /F MakefileBuild.vc\r
199 \r
200 copy_from_lib:\r
201         echo copying .c...\r
202         FOR %%i IN ($(CURLX_ONES:/=\)) DO copy %%i ..\src\\r