Annotation of embedaddon/curl/winbuild/Makefile.vc, revision 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>