winbuild: Updated winbuild scripts to add schannel
[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>              - VC versions\r
19 !MESSAGE   WITH_DEVEL=<path>            - Paths for the development files (SSL, zlib, etc.)\r
20 !MESSAGE                                  Default 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_ZLIB=<dll or static>    - Enable ZLib support, DLL or static\r
25 !MESSAGE   WITH_SSH2=<dll or static>    - Enable LIbSSH2 support, DLL or static\r
26 !MESSAGE   USE_SSPI=<yes or no>         - Enable SSPI support, default to yes\r
27 !MESSAGE   ENABLE_IPV6=<yes or no>      - Enable IPV6, default to yes\r
28 !MESSAGE   ENABLE_IDN=<yes or no>       - Wheter or not to use IDN Windows APIs. Requires Windows Vista or later.\r
29 !MESSAGE                                  or to install http://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815\r
30 !MESSAGE   GEN_PDB=<yes or no>          - Generate Program Database (debug symbols release build)\r
31 !MESSAGE   DEBUG=<yes or no>            - Debug builds\r
32 !ERROR please choose a valid mode\r
33 \r
34 !ENDIF\r
35 \r
36 !INCLUDE "../lib/Makefile.inc"\r
37 LIBCURL_OBJS=$(CSOURCES:.c=.obj)\r
38 \r
39 top_srcdir=..\r
40 !INCLUDE "../src/Makefile.inc"\r
41 \r
42 # hugehelp has a special rule\r
43 CURL_OBJS=$(CURL_CFILES:hugehelp.c=)\r
44 \r
45 CURL_OBJS=$(CURL_OBJS:.c=.obj)\r
46 \r
47 # default options\r
48 !IFNDEF USE_SSPI\r
49 USE_SSPI = true\r
50 !ENDIF\r
51 \r
52 !IFNDEF ENABLE_IPV6\r
53 USE_IPV6 = true\r
54 !ELSEIF "$(ENABLE_IPV6)"=="yes"\r
55 USE_IPV6 = true\r
56 !ELSEIF "$(ENABLE_IPV6)"=="no"\r
57 USE_IPV6 = false\r
58 !ENDIF\r
59 \r
60 !IFNDEF ENABLE_IDN\r
61 USE_IDN = true\r
62 !ELSEIF "$(ENABLE_IDN)"=="yes"\r
63 USE_IDN = true\r
64 !ELSEIF "$(ENABLE_IDN)"=="no"\r
65 USE_IDN = false\r
66 !ENDIF\r
67 \r
68 CONFIG_NAME_LIB = libcurl\r
69 \r
70 !IF "$(WITH_SSL)"=="dll"\r
71 USE_SSL = true\r
72 SSL     = dll\r
73 !ELSEIF "$(WITH_SSL)"=="static"\r
74 USE_SSL = true\r
75 SSL     = static\r
76 !ELSEIF "$(WITH_SSL)"=="schannel"\r
77 USE_SSL      = true\r
78 USE_SSPI     = true\r
79 SSL          = schannel\r
80 !ENDIF\r
81 \r
82 !IF "$(WITH_ZLIB)"=="dll"\r
83 USE_ZLIB = true\r
84 ZLIB     = dll\r
85 !ELSEIF "$(WITH_ZLIB)"=="static"\r
86 USE_ZLIB = true\r
87 ZLIB     = static\r
88 !ENDIF\r
89 \r
90 !IF "$(WITH_SSH2)"=="dll"\r
91 USE_SSH2 = true\r
92 SSH2     = dll\r
93 !ELSEIF "$(WITH_SSH2)"=="static"\r
94 USE_SSH2 = true\r
95 SSH2     = static\r
96 !ENDIF\r
97 \r
98 !IF "$(DEBUG)"=="yes"\r
99 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-debug\r
100 !ELSE\r
101 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-release\r
102 !ENDIF\r
103 \r
104 !IF "$(AS_DLL)" == "true"\r
105 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-dll\r
106 !ELSE\r
107 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-static\r
108 !ENDIF\r
109 \r
110 !IF "$(USE_SSL)"=="true"\r
111 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL)\r
112 !ENDIF\r
113 \r
114 !IF "$(USE_ZLIB)"=="true"\r
115 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-zlib-$(ZLIB)\r
116 !ENDIF\r
117 \r
118 !IF "$(USE_SSH2)"=="true"\r
119 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssh2-$(SSH2)\r
120 !ENDIF\r
121 \r
122 !IF "$(USE_IPV6)"=="true"\r
123 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ipv6\r
124 !ENDIF\r
125 \r
126 !IF "$(USE_SSPI)"=="true"\r
127 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-sspi\r
128 !ENDIF\r
129 \r
130 !MESSAGE configuration name: $(CONFIG_NAME_LIB)\r
131 \r
132 BUILD_DIR=../builds/$(CONFIG_NAME_LIB)\r
133 LIBCURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-lib\r
134 CURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-curl\r
135 DIRDIST = ..\builds\$(CONFIG_NAME_LIB)\\r
136 \r
137 $(MODE):\r
138         @SET LIBCURL_DIROBJ=$(LIBCURL_DIROBJ)\r
139         @SET MACRO_NAME=LIBCURL_OBJS\r
140         @SET OUTFILE=LIBCURL_OBJS.inc\r
141         @gen_resp_file.bat $(LIBCURL_OBJS)\r
142         @SET LIBCURL_DIROBJ=$(CURL_DIROBJ)\r
143         @SET MACRO_NAME=CURL_OBJS\r
144         @SET OUTFILE=CURL_OBJS.inc\r
145         @gen_resp_file.bat $(CURL_OBJS)\r
146         @SET USE_IPV6=$(USE_IPV6)\r
147         @SET USE_IDN=$(USE_IDN)\r
148         @$(MAKE) /NOLOGO /F MakefileBuild.vc\r
149 \r
150 copy_from_lib:\r
151         echo copying .c...\r
152         FOR %%i IN ($(CURLX_ONES:/=\)) DO copy %%i ..\src\\r