| #*************************************************************************** |
| # _ _ ____ _ |
| # Project ___| | | | _ \| | |
| # / __| | | | |_) | | |
| # | (__| |_| | _ <| |___ |
| # \___|\___/|_| \_\_____| |
| # |
| # Copyright (C) 1999 - 2020, Daniel Stenberg, <[email protected]>, et al. |
| # |
| # This software is licensed as described in the file COPYING, which |
| # you should have received as part of this distribution. The terms |
| # are also available at https://curl.se/docs/copyright.html. |
| # |
| # You may opt to use, copy, modify, merge, publish, distribute and/or sell |
| # copies of the Software, and permit persons to whom the Software is |
| # furnished to do so, under the terms of the COPYING file. |
| # |
| # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| # KIND, either express or implied. |
| # |
| #*************************************************************************** |
| |
| !IF "$(MODE)"=="static" |
| TARGET = $(LIB_NAME_STATIC) |
| AS_DLL = false |
| CFGSET=true |
| !ELSEIF "$(MODE)"=="dll" |
| TARGET = $(LIB_NAME_DLL) |
| AS_DLL = true |
| CFGSET=true |
| !ELSE |
| !MESSAGE Invalid mode: $(MODE) |
| |
| ####################### |
| # Usage |
| # |
| |
| !MESSAGE See winbuild/README.md for usage |
| !ERROR please choose a valid mode |
| |
| !ENDIF |
| |
| !INCLUDE "../lib/Makefile.inc" |
| LIBCURL_OBJS=$(CSOURCES:.c=.obj) |
| |
| !INCLUDE "../src/Makefile.inc" |
| |
| # tool_hugehelp has a special rule |
| CURL_OBJS=$(CURL_CFILES:tool_hugehelp.c=) |
| |
| CURL_OBJS=$(CURL_OBJS:.c=.obj) |
| |
| |
| # backwards compatible check for USE_SSPI |
| !IFDEF USE_SSPI |
| ENABLE_SSPI = $(USE_SSPI) |
| !ENDIF |
| |
| # default options |
| |
| !IFNDEF MACHINE |
| # Note: nmake magically changes the value of PROCESSOR_ARCHITECTURE from "AMD64" |
| # to "x86" when building in a 32 bit build environment on a 64 bit machine. |
| !IF "$(PROCESSOR_ARCHITECTURE)"=="AMD64" |
| MACHINE = x64 |
| !ELSE |
| MACHINE = x86 |
| !ENDIF |
| !ENDIF |
| |
| !IFNDEF ENABLE_IDN |
| USE_IDN = true |
| !ELSEIF "$(ENABLE_IDN)"=="yes" |
| USE_IDN = true |
| !ELSEIF "$(ENABLE_IDN)"=="no" |
| USE_IDN = false |
| !ENDIF |
| |
| !IFNDEF ENABLE_IPV6 |
| USE_IPV6 = true |
| !ELSEIF "$(ENABLE_IPV6)"=="yes" |
| USE_IPV6 = true |
| !ELSEIF "$(ENABLE_IPV6)"=="no" |
| USE_IPV6 = false |
| !ENDIF |
| |
| !IFNDEF ENABLE_SSPI |
| USE_SSPI = true |
| !ELSEIF "$(ENABLE_SSPI)"=="yes" |
| USE_SSPI = true |
| !ELSEIF "$(ENABLE_SSPI)"=="no" |
| USE_SSPI = false |
| !ENDIF |
| |
| !IFNDEF ENABLE_SCHANNEL |
| !IF DEFINED(WITH_SSL) || DEFINED(WITH_MBEDTLS) |
| USE_SCHANNEL = false |
| !ELSE |
| USE_SCHANNEL = $(USE_SSPI) |
| !ENDIF |
| !ELSEIF "$(ENABLE_SCHANNEL)"=="yes" |
| USE_SCHANNEL = true |
| !ELSEIF "$(ENABLE_SCHANNEL)"=="no" |
| USE_SCHANNEL = false |
| !ENDIF |
| |
| !IFNDEF ENABLE_OPENSSL_AUTO_LOAD_CONFIG |
| ENABLE_OPENSSL_AUTO_LOAD_CONFIG = true |
| !ELSEIF "$(ENABLE_OPENSSL_AUTO_LOAD_CONFIG)"=="yes" |
| !UNDEF ENABLE_OPENSSL_AUTO_LOAD_CONFIG |
| ENABLE_OPENSSL_AUTO_LOAD_CONFIG = true |
| !ELSEIF "$(ENABLE_OPENSSL_AUTO_LOAD_CONFIG)"=="no" |
| !UNDEF ENABLE_OPENSSL_AUTO_LOAD_CONFIG |
| ENABLE_OPENSSL_AUTO_LOAD_CONFIG = false |
| !ENDIF |
| |
| !IFNDEF ENABLE_UNICODE |
| USE_UNICODE = false |
| !ELSEIF "$(ENABLE_UNICODE)"=="yes" |
| USE_UNICODE = true |
| !ELSEIF "$(ENABLE_UNICODE)"=="no" |
| USE_UNICODE = false |
| !ENDIF |
| |
| CONFIG_NAME_LIB = libcurl |
| |
| !IF "$(WITH_SSL)"=="dll" |
| USE_SSL = true |
| SSL = dll |
| !ELSEIF "$(WITH_SSL)"=="static" |
| USE_SSL = true |
| SSL = static |
| !ENDIF |
| |
| !IF "$(ENABLE_NGHTTP2)"=="yes" |
| # compatibility bit, WITH_NGHTTP2 is the correct flag |
| WITH_NGHTTP2 = dll |
| USE_NGHTTP2 = true |
| NGHTTP2 = dll |
| !ELSEIF "$(WITH_NGHTTP2)"=="dll" |
| USE_NGHTTP2 = true |
| NGHTTP2 = dll |
| !ELSEIF "$(WITH_NGHTTP2)"=="static" |
| USE_NGHTTP2 = true |
| NGHTTP2 = static |
| !ENDIF |
| |
| !IFNDEF USE_NGHTTP2 |
| USE_NGHTTP2 = false |
| !ENDIF |
| |
| !IF "$(WITH_MBEDTLS)"=="dll" || "$(WITH_MBEDTLS)"=="static" |
| USE_MBEDTLS = true |
| MBEDTLS = $(WITH_MBEDTLS) |
| !ENDIF |
| |
| !IF "$(WITH_CARES)"=="dll" |
| USE_CARES = true |
| CARES = dll |
| !ELSEIF "$(WITH_CARES)"=="static" |
| USE_CARES = true |
| CARES = static |
| !ENDIF |
| |
| !IF "$(WITH_ZLIB)"=="dll" |
| USE_ZLIB = true |
| ZLIB = dll |
| !ELSEIF "$(WITH_ZLIB)"=="static" |
| USE_ZLIB = true |
| ZLIB = static |
| !ENDIF |
| |
| !IF "$(WITH_SSH2)"=="dll" |
| USE_SSH2 = true |
| SSH2 = dll |
| !ELSEIF "$(WITH_SSH2)"=="static" |
| USE_SSH2 = true |
| SSH2 = static |
| !ENDIF |
| |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-vc$(VC)-$(MACHINE) |
| |
| !IF "$(DEBUG)"=="yes" |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-debug |
| !ELSE |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-release |
| !ENDIF |
| |
| !IF "$(AS_DLL)"=="true" |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-dll |
| !ELSE |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-static |
| !ENDIF |
| |
| !IF "$(USE_SSL)"=="true" |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL) |
| !ENDIF |
| |
| !IF "$(USE_MBEDTLS)"=="true" |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-mbedtls-$(MBEDTLS) |
| !ENDIF |
| |
| !IF "$(USE_CARES)"=="true" |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-cares-$(CARES) |
| !ENDIF |
| |
| !IF "$(USE_ZLIB)"=="true" |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-zlib-$(ZLIB) |
| !ENDIF |
| |
| !IF "$(USE_SSH2)"=="true" |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssh2-$(SSH2) |
| !ENDIF |
| |
| !IF "$(USE_IPV6)"=="true" |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ipv6 |
| !ENDIF |
| |
| !IF "$(USE_SSPI)"=="true" |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-sspi |
| !ENDIF |
| |
| !IF "$(USE_SCHANNEL)"=="true" |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-schannel |
| !ENDIF |
| |
| !IF "$(USE_NGHTTP2)"=="true" |
| CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-nghttp2-$(NGHTTP2) |
| !ENDIF |
| |
| !MESSAGE configuration name: $(CONFIG_NAME_LIB) |
| |
| BUILD_DIR=../builds/$(CONFIG_NAME_LIB) |
| LIBCURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-lib |
| CURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-curl |
| DIRDIST = ..\builds\$(CONFIG_NAME_LIB)\ |
| |
| $(MODE): |
| @SET DIROBJ=$(LIBCURL_DIROBJ) |
| @SET MACRO_NAME=LIBCURL_OBJS |
| @SET OUTFILE=LIBCURL_OBJS.inc |
| @CALL gen_resp_file.bat $(LIBCURL_OBJS) |
| |
| @SET DIROBJ=$(CURL_DIROBJ) |
| @SET MACRO_NAME=CURL_OBJS |
| @SET OUTFILE=CURL_OBJS.inc |
| @CALL gen_resp_file.bat $(CURL_OBJS) |
| |
| @SET CONFIG_NAME_LIB=$(CONFIG_NAME_LIB) |
| @SET MACHINE=$(MACHINE) |
| @SET USE_NGHTTP2=$(USE_NGHTTP2) |
| @SET USE_IDN=$(USE_IDN) |
| @SET USE_IPV6=$(USE_IPV6) |
| @SET USE_SSPI=$(USE_SSPI) |
| @SET USE_SCHANNEL=$(USE_SCHANNEL) |
| @SET USE_UNICODE=$(USE_UNICODE) |
| # compatibility bit |
| @SET WITH_NGHTTP2=$(WITH_NGHTTP2) |
| |
| @$(MAKE) /NOLOGO /F MakefileBuild.vc |
| |
| copy_from_lib: |
| echo copying .c... |
| FOR %%i IN ($(CURLX_CFILES:/=\)) DO copy %%i ..\src\ |
| |
| clean: |
| $(MAKE) /NOLOGO /F MakefileBuild.vc $@ |