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>