Revert "Update to 7.44.0"
[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,11,12>        - 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_CARES=<dll or static>   - Enable c-ares support, DLL or static\r
25 !MESSAGE   WITH_ZLIB=<dll or static>    - Enable zlib support, DLL or static\r
26 !MESSAGE   WITH_SSH2=<dll or static>    - Enable libSSH2 support, DLL or static\r
27 !MESSAGE   ENABLE_IDN=<yes or no>       - Enable use of Windows IDN APIs, defaults to yes\r
28 !MESSAGE                                  Requires Windows Vista or later, or installation from:\r
29 !MESSAGE                                  http://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815\r
30 !MESSAGE   ENABLE_IPV6=<yes or no>      - Enable IPv6, defaults to yes\r
31 !MESSAGE   ENABLE_SSPI=<yes or no>      - Enable SSPI support, 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_WINSSL\r
90 !IFDEF WITH_SSL\r
91 USE_WINSSL = false\r
92 !ELSE\r
93 USE_WINSSL = $(USE_SSPI)\r
94 !ENDIF\r
95 !ELSEIF "$(ENABLE_WINSSL)"=="yes"\r
96 USE_WINSSL = true\r
97 !ELSEIF "$(ENABLE_WINSSL)"=="no"\r
98 USE_WINSSL = false\r
99 !ENDIF\r
100 \r
101 CONFIG_NAME_LIB = libcurl\r
102 \r
103 !IF "$(WITH_SSL)"=="dll"\r
104 USE_SSL = true\r
105 SSL     = dll\r
106 !ELSEIF "$(WITH_SSL)"=="static"\r
107 USE_SSL = true\r
108 SSL     = static\r
109 !ENDIF\r
110 \r
111 !IF "$(WITH_CARES)"=="dll"\r
112 USE_CARES = true\r
113 CARES     = dll\r
114 !ELSEIF "$(WITH_CARES)"=="static"\r
115 USE_CARES = true\r
116 CARES     = static\r
117 !ENDIF\r
118 \r
119 !IF "$(WITH_ZLIB)"=="dll"\r
120 USE_ZLIB = true\r
121 ZLIB     = dll\r
122 !ELSEIF "$(WITH_ZLIB)"=="static"\r
123 USE_ZLIB = true\r
124 ZLIB     = static\r
125 !ENDIF\r
126 \r
127 !IF "$(WITH_SSH2)"=="dll"\r
128 USE_SSH2 = true\r
129 SSH2     = dll\r
130 !ELSEIF "$(WITH_SSH2)"=="static"\r
131 USE_SSH2 = true\r
132 SSH2     = static\r
133 !ENDIF\r
134 \r
135 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-vc$(VC)-$(MACHINE)\r
136 \r
137 !IF "$(DEBUG)"=="yes"\r
138 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-debug\r
139 !ELSE\r
140 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-release\r
141 !ENDIF\r
142 \r
143 !IF "$(AS_DLL)"=="true"\r
144 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-dll\r
145 !ELSE\r
146 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-static\r
147 !ENDIF\r
148 \r
149 !IF "$(USE_SSL)"=="true"\r
150 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL)\r
151 !ENDIF\r
152 \r
153 !IF "$(USE_CARES)"=="true"\r
154 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-cares-$(CARES)\r
155 !ENDIF\r
156 \r
157 !IF "$(USE_ZLIB)"=="true"\r
158 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-zlib-$(ZLIB)\r
159 !ENDIF\r
160 \r
161 !IF "$(USE_SSH2)"=="true"\r
162 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssh2-$(SSH2)\r
163 !ENDIF\r
164 \r
165 !IF "$(USE_IPV6)"=="true"\r
166 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ipv6\r
167 !ENDIF\r
168 \r
169 !IF "$(USE_SSPI)"=="true"\r
170 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-sspi\r
171 !ENDIF\r
172 \r
173 !IF "$(USE_WINSSL)"=="true"\r
174 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-winssl\r
175 !ENDIF\r
176 \r
177 !MESSAGE configuration name: $(CONFIG_NAME_LIB)\r
178 \r
179 BUILD_DIR=../builds/$(CONFIG_NAME_LIB)\r
180 LIBCURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-lib\r
181 CURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-curl\r
182 DIRDIST = ..\builds\$(CONFIG_NAME_LIB)\\r
183 \r
184 $(MODE):\r
185         @SET DIROBJ=$(LIBCURL_DIROBJ)\r
186         @SET MACRO_NAME=LIBCURL_OBJS\r
187         @SET OUTFILE=LIBCURL_OBJS.inc\r
188         @gen_resp_file.bat $(LIBCURL_OBJS)\r
189 \r
190         @SET DIROBJ=$(CURL_DIROBJ)\r
191         @SET MACRO_NAME=CURL_OBJS\r
192         @SET OUTFILE=CURL_OBJS.inc\r
193         @gen_resp_file.bat $(CURL_OBJS)\r
194 \r
195         @SET CONFIG_NAME_LIB=$(CONFIG_NAME_LIB)\r
196         @SET MACHINE=$(MACHINE)\r
197         @SET USE_IDN=$(USE_IDN)\r
198         @SET USE_IPV6=$(USE_IPV6)\r
199         @SET USE_SSPI=$(USE_SSPI)\r
200         @SET USE_WINSSL=$(USE_WINSSL)\r
201         @$(MAKE) /NOLOGO /F MakefileBuild.vc\r
202 \r
203 copy_from_lib:\r
204         echo copying .c...\r
205         FOR %%i IN ($(CURLX_CFILES:/=\)) DO copy %%i ..\src\\r