Annotation of embedaddon/curl/winbuild/Makefile.vc, revision 1.1.1.1
1.1 misho 1: #***************************************************************************
2: # _ _ ____ _
3: # Project ___| | | | _ \| |
4: # / __| | | | |_) | |
5: # | (__| |_| | _ <| |___
6: # \___|\___/|_| \_\_____|
7: #
8: # Copyright (C) 1999 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
9: #
10: # This software is licensed as described in the file COPYING, which
11: # you should have received as part of this distribution. The terms
12: # are also available at https://curl.haxx.se/docs/copyright.html.
13: #
14: # You may opt to use, copy, modify, merge, publish, distribute and/or sell
15: # copies of the Software, and permit persons to whom the Software is
16: # furnished to do so, under the terms of the COPYING file.
17: #
18: # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19: # KIND, either express or implied.
20: #
21: #***************************************************************************
22:
23: !IF "$(MODE)"=="static"
24: TARGET = $(LIB_NAME_STATIC)
25: AS_DLL = false
26: CFGSET=true
27: !ELSEIF "$(MODE)"=="dll"
28: TARGET = $(LIB_NAME_DLL)
29: AS_DLL = true
30: CFGSET=true
31: !ELSE
32: !MESSAGE Invalid mode: $(MODE)
33:
34: #######################
35: # Usage
36: #
37:
38: !MESSAGE Usage: nmake /f Makefile.vc mode=<static or dll> <options>
39: !MESSAGE where <options> is one or many of:
40: !MESSAGE VC=<6,7,8,9,10,11,12,14,15> - VC versions
41: !MESSAGE WITH_DEVEL=<path> - Paths for the development files (SSL, zlib, etc.)
42: !MESSAGE Defaults to curl's sibling directory deps: ../deps
43: !MESSAGE Libraries can be fetched at https://windows.php.net/downloads/php-sdk/deps/
44: !MESSAGE Uncompress them into the deps folder.
45: !MESSAGE WITH_PREFIX=<path> - Installation directory path
46: !MESSAGE Defaults to a configuration dependent (SSL, zlib, etc.)
47: !MESSAGE directory inside curl's subdirectory builds: ./builds
48: !MESSAGE Use backslashes as path separator
49: !MESSAGE WITH_SSL=<dll or static> - Enable OpenSSL support, DLL or static
50: !MESSAGE WITH_NGHTTP2=<dll or static> - Enable HTTP/2 support, DLL or static
51: !MESSAGE WITH_CARES=<dll or static> - Enable c-ares support, DLL or static
52: !MESSAGE WITH_ZLIB=<dll or static> - Enable zlib support, DLL or static
53: !MESSAGE WITH_SSH2=<dll or static> - Enable libSSH2 support, DLL or static
54: !MESSAGE WITH_MBEDTLS=<dll or static> - Enable mbedTLS support, DLL or static
55: !MESSAGE ENABLE_IDN=<yes or no> - Enable use of Windows IDN APIs, defaults to yes
56: !MESSAGE Requires Windows Vista or later
57: !MESSAGE ENABLE_IPV6=<yes or no> - Enable IPv6, defaults to yes
58: !MESSAGE ENABLE_SSPI=<yes or no> - Enable SSPI support, defaults to yes
59: !MESSAGE ENABLE_WINSSL=<yes or no> - Enable native Windows SSL support, defaults to yes
60: !MESSAGE ENABLE_OPENSSL_AUTO_LOAD_CONFIG=<yes or no>
61: !MESSAGE - Whether the OpenSSL configuration will be loaded automatically, defaults to yes
62: !MESSAGE ENABLE_UNICODE=<yes or no> - Enable UNICODE support, defaults to no
63: !MESSAGE GEN_PDB=<yes or no> - Generate Program Database (debug symbols for release build)
64: !MESSAGE DEBUG=<yes or no> - Debug builds
65: !MESSAGE MACHINE=<x86 or x64> - Target architecture (default x64 on AMD64, x86 on others)
66: !MESSAGE CARES_PATH=<path to cares> - Custom path for c-ares
67: !MESSAGE MBEDTLS_PATH=<path to mbedTLS> - Custom path for mbedTLS
68: !MESSAGE NGHTTP2_PATH=<path to HTTP/2> - Custom path for nghttp2
69: !MESSAGE SSH2_PATH=<path to libSSH2> - Custom path for libSSH2
70: !MESSAGE SSL_PATH=<path to OpenSSL> - Custom path for OpenSSL
71: !MESSAGE ZLIB_PATH=<path to zlib> - Custom path for zlib
72: !ERROR please choose a valid mode
73:
74: !ENDIF
75:
76: !INCLUDE "../lib/Makefile.inc"
77: LIBCURL_OBJS=$(CSOURCES:.c=.obj)
78:
79: !INCLUDE "../src/Makefile.inc"
80:
81: # tool_hugehelp has a special rule
82: CURL_OBJS=$(CURL_CFILES:tool_hugehelp.c=)
83:
84: CURL_OBJS=$(CURL_OBJS:.c=.obj)
85:
86:
87: # backwards compatible check for USE_SSPI
88: !IFDEF USE_SSPI
89: ENABLE_SSPI = $(USE_SSPI)
90: !ENDIF
91:
92: # default options
93:
94: !IFNDEF MACHINE
95: # Note: nmake magically changes the value of PROCESSOR_ARCHITECTURE from "AMD64"
96: # to "x86" when building in a 32 bit build environment on a 64 bit machine.
97: !IF "$(PROCESSOR_ARCHITECTURE)"=="AMD64"
98: MACHINE = x64
99: !ELSE
100: MACHINE = x86
101: !ENDIF
102: !ENDIF
103:
104: !IFNDEF ENABLE_IDN
105: USE_IDN = true
106: !ELSEIF "$(ENABLE_IDN)"=="yes"
107: USE_IDN = true
108: !ELSEIF "$(ENABLE_IDN)"=="no"
109: USE_IDN = false
110: !ENDIF
111:
112: !IFNDEF ENABLE_IPV6
113: USE_IPV6 = true
114: !ELSEIF "$(ENABLE_IPV6)"=="yes"
115: USE_IPV6 = true
116: !ELSEIF "$(ENABLE_IPV6)"=="no"
117: USE_IPV6 = false
118: !ENDIF
119:
120: !IFNDEF ENABLE_SSPI
121: USE_SSPI = true
122: !ELSEIF "$(ENABLE_SSPI)"=="yes"
123: USE_SSPI = true
124: !ELSEIF "$(ENABLE_SSPI)"=="no"
125: USE_SSPI = false
126: !ENDIF
127:
128: !IFNDEF ENABLE_WINSSL
129: !IF DEFINED(WITH_SSL) || DEFINED(WITH_MBEDTLS)
130: USE_WINSSL = false
131: !ELSE
132: USE_WINSSL = $(USE_SSPI)
133: !ENDIF
134: !ELSEIF "$(ENABLE_WINSSL)"=="yes"
135: USE_WINSSL = true
136: !ELSEIF "$(ENABLE_WINSSL)"=="no"
137: USE_WINSSL = false
138: !ENDIF
139:
140: !IFNDEF ENABLE_OPENSSL_AUTO_LOAD_CONFIG
141: ENABLE_OPENSSL_AUTO_LOAD_CONFIG = true
142: !ELSEIF "$(ENABLE_OPENSSL_AUTO_LOAD_CONFIG)"=="yes"
143: !UNDEF ENABLE_OPENSSL_AUTO_LOAD_CONFIG
144: ENABLE_OPENSSL_AUTO_LOAD_CONFIG = true
145: !ELSEIF "$(ENABLE_OPENSSL_AUTO_LOAD_CONFIG)"=="no"
146: !UNDEF ENABLE_OPENSSL_AUTO_LOAD_CONFIG
147: ENABLE_OPENSSL_AUTO_LOAD_CONFIG = false
148: !ENDIF
149:
150: !IFNDEF ENABLE_UNICODE
151: USE_UNICODE = false
152: !ELSEIF "$(ENABLE_UNICODE)"=="yes"
153: USE_UNICODE = true
154: !ELSEIF "$(ENABLE_UNICODE)"=="no"
155: USE_UNICODE = false
156: !ENDIF
157:
158: CONFIG_NAME_LIB = libcurl
159:
160: !IF "$(WITH_SSL)"=="dll"
161: USE_SSL = true
162: SSL = dll
163: !ELSEIF "$(WITH_SSL)"=="static"
164: USE_SSL = true
165: SSL = static
166: !ENDIF
167:
168: !IF "$(ENABLE_NGHTTP2)"=="yes"
169: # compatibility bit, WITH_NGHTTP2 is the correct flag
170: WITH_NGHTTP2 = dll
171: USE_NGHTTP2 = true
172: NGHTTP2 = dll
173: !ELSEIF "$(WITH_NGHTTP2)"=="dll"
174: USE_NGHTTP2 = true
175: NGHTTP2 = dll
176: !ELSEIF "$(WITH_NGHTTP2)"=="static"
177: USE_NGHTTP2 = true
178: NGHTTP2 = static
179: !ENDIF
180:
181: !IFNDEF USE_NGHTTP2
182: USE_NGHTTP2 = false
183: !ENDIF
184:
185: !IF "$(WITH_MBEDTLS)"=="dll" || "$(WITH_MBEDTLS)"=="static"
186: USE_MBEDTLS = true
187: MBEDTLS = $(WITH_MBEDTLS)
188: !ENDIF
189:
190: !IF "$(WITH_CARES)"=="dll"
191: USE_CARES = true
192: CARES = dll
193: !ELSEIF "$(WITH_CARES)"=="static"
194: USE_CARES = true
195: CARES = static
196: !ENDIF
197:
198: !IF "$(WITH_ZLIB)"=="dll"
199: USE_ZLIB = true
200: ZLIB = dll
201: !ELSEIF "$(WITH_ZLIB)"=="static"
202: USE_ZLIB = true
203: ZLIB = static
204: !ENDIF
205:
206: !IF "$(WITH_SSH2)"=="dll"
207: USE_SSH2 = true
208: SSH2 = dll
209: !ELSEIF "$(WITH_SSH2)"=="static"
210: USE_SSH2 = true
211: SSH2 = static
212: !ENDIF
213:
214: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-vc$(VC)-$(MACHINE)
215:
216: !IF "$(DEBUG)"=="yes"
217: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-debug
218: !ELSE
219: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-release
220: !ENDIF
221:
222: !IF "$(AS_DLL)"=="true"
223: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-dll
224: !ELSE
225: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-static
226: !ENDIF
227:
228: !IF "$(USE_SSL)"=="true"
229: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL)
230: !ENDIF
231:
232: !IF "$(USE_MBEDTLS)"=="true"
233: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-mbedtls-$(MBEDTLS)
234: !ENDIF
235:
236: !IF "$(USE_CARES)"=="true"
237: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-cares-$(CARES)
238: !ENDIF
239:
240: !IF "$(USE_ZLIB)"=="true"
241: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-zlib-$(ZLIB)
242: !ENDIF
243:
244: !IF "$(USE_SSH2)"=="true"
245: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssh2-$(SSH2)
246: !ENDIF
247:
248: !IF "$(USE_IPV6)"=="true"
249: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ipv6
250: !ENDIF
251:
252: !IF "$(USE_SSPI)"=="true"
253: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-sspi
254: !ENDIF
255:
256: !IF "$(USE_WINSSL)"=="true"
257: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-winssl
258: !ENDIF
259:
260: !IF "$(USE_NGHTTP2)"=="true"
261: CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-nghttp2-$(NGHTTP2)
262: !ENDIF
263:
264: !MESSAGE configuration name: $(CONFIG_NAME_LIB)
265:
266: BUILD_DIR=../builds/$(CONFIG_NAME_LIB)
267: LIBCURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-lib
268: CURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-curl
269: DIRDIST = ..\builds\$(CONFIG_NAME_LIB)\
270:
271: $(MODE):
272: @SET DIROBJ=$(LIBCURL_DIROBJ)
273: @SET MACRO_NAME=LIBCURL_OBJS
274: @SET OUTFILE=LIBCURL_OBJS.inc
275: @CALL gen_resp_file.bat $(LIBCURL_OBJS)
276:
277: @SET DIROBJ=$(CURL_DIROBJ)
278: @SET MACRO_NAME=CURL_OBJS
279: @SET OUTFILE=CURL_OBJS.inc
280: @CALL gen_resp_file.bat $(CURL_OBJS)
281:
282: @SET CONFIG_NAME_LIB=$(CONFIG_NAME_LIB)
283: @SET MACHINE=$(MACHINE)
284: @SET USE_NGHTTP2=$(USE_NGHTTP2)
285: @SET USE_IDN=$(USE_IDN)
286: @SET USE_IPV6=$(USE_IPV6)
287: @SET USE_SSPI=$(USE_SSPI)
288: @SET USE_WINSSL=$(USE_WINSSL)
289: @SET USE_UNICODE=$(USE_UNICODE)
290: # compatibility bit
291: @SET WITH_NGHTTP2=$(WITH_NGHTTP2)
292:
293: @$(MAKE) /NOLOGO /F MakefileBuild.vc
294:
295: copy_from_lib:
296: echo copying .c...
297: FOR %%i IN ($(CURLX_CFILES:/=\)) DO copy %%i ..\src\
298:
299: clean:
300: $(MAKE) /NOLOGO /F MakefileBuild.vc $@
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>