f1ddc29faec03f6db920424aeae2f29d87bd4bba
[platform/upstream/curl.git] / src / Makefile.Watcom
1 #***************************************************************************
2 #                                  _   _ ____  _
3 #  Project                     ___| | | |  _ \| |
4 #                             / __| | | | |_) | |
5 #                            | (__| |_| |  _ <| |___
6 #                             \___|\___/|_| \_\_____|
7 #
8 # Copyright (C) 2005 - 2008, Gisle Vanem <gvanem@yahoo.no>.
9 # Copyright (C) 2005 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
10 #
11 # This software is licensed as described in the file COPYING, which
12 # you should have received as part of this distribution. The terms
13 # are also available at https://curl.haxx.se/docs/copyright.html.
14 #
15 # You may opt to use, copy, modify, merge, publish, distribute and/or sell
16 # copies of the Software, and permit persons to whom the Software is
17 # furnished to do so, under the terms of the COPYING file.
18 #
19 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
20 # KIND, either express or implied.
21 #
22 #***************************************************************************
23
24 #
25 #  Watcom / OpenWatcom / Win32 makefile for cURL.
26 #
27
28 .ERASE
29
30 !if $(__VERSION__) < 1280
31 !message !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
32 !message ! This Open Watcom version is too old and is no longer supported !
33 !message !     Please download latest version from www.openwatcom.org     !
34 !message !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
35 !error Unsupported version of Open Watcom
36 !endif
37
38 !ifndef %watcom
39 !error WATCOM environment variable not set!
40 !endif
41
42 # In order to process Makefile.inc wmake must be called with -u switch!
43 !ifndef %MAKEFLAGS
44 !error You MUST call wmake with the -u switch!
45 !endif
46
47 !ifdef %libname
48 LIBNAME = $(%libname)
49 !else
50 LIBNAME = libcurl
51 !endif
52
53 TARGETS = curl.exe
54
55 CC = wcc386
56 LD = wlink
57 AR = wlib
58 RC = wrc
59
60 !ifdef __LOADDLL__
61 !  loaddll wcc386  wccd386
62 !  loaddll wpp386  wppd386
63 !  loaddll wlib    wlibd
64 !  loaddll wlink   wlinkd
65 !endif
66
67 !ifdef __UNIX__
68 CP = cp
69 MD = mkdir -p
70 !else
71 CP = copy 2>NUL
72 MD = mkdir
73 !endif
74 !if $(__VERSION__) > 1290
75 RD = rm -rf
76 !else ifdef __UNIX__
77 RD = rm -rf
78 !else
79 RD = rmdir /q /s 2>NUL
80 !endif
81
82 SYS_INCL = -I"$(%watcom)/h/nt" -I"$(%watcom)/h"
83
84 CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -s -fr=con -w2 -fpi -oilrtfm &
85          -wcd=201 -bt=nt -bc -d+ -dWIN32 -dHAVE_STRTOLL             &
86          -I"../include" -I"../lib" $(SYS_INCL)
87
88 !ifdef %debug
89 DEBUG  = -dDEBUG=1 -dDEBUGBUILD
90 CFLAGS += -d3 $(DEBUG)
91 !else
92 CFLAGS += -d0
93 !endif
94
95 !ifdef %use_ipv6
96 CFLAGS += -d_WIN32_WINNT=0x0501 -dENABLE_IPV6
97 !endif
98
99 !ifdef %use_ssl
100 CFLAGS += -wcd=138 -dUSE_OPENSSL -dUSE_OPENSSL -I"$(OPENSSL_ROOT)/inc32"
101 !endif
102
103 !ifdef %curl_static
104 CFLAGS += -DCURL_STATICLIB
105 !else
106 CFLAGS += -br
107 !endif
108
109 #
110 # Change to suite.
111 #
112 !ifdef %zlib_root
113 ZLIB_ROOT = $(%zlib_root)
114 !else
115 ZLIB_ROOT = ../../zlib-1.2.8
116 !endif
117
118 !ifdef %libssh2_root
119 LIBSSH2_ROOT = $(%libssh2_root)
120 !else
121 LIBSSH2_ROOT = ../../libssh2-1.5.0
122 !endif
123
124 !ifdef %librtmp_root
125 LIBRTMP_ROOT = $(%librtmp_root)
126 !else
127 LIBRTMP_ROOT = ../../rtmpdump-2.3
128 !endif
129
130 !ifdef %openssl_root
131 OPENSSL_ROOT = $(%openssl_root)
132 !else
133 OPENSSL_ROOT = ../../openssl-1.0.2a
134 !endif
135
136 !ifdef %ares_root
137 ARES_ROOT = $(%ares_root)
138 !else
139 ARES_ROOT = ../ares
140 !endif
141
142 OBJ_DIR  = WC_Win32.obj
143 LINK_ARG = $(OBJ_DIR)/wlink.arg
144
145 !include Makefile.inc
146
147 OBJS1 = $(OBJ_DIR)/$(CURL_CFILES)
148 !ifndef %curl_static
149 OBJS1 += $(CURLX_CFILES:../lib/=)
150 !endif
151 OBJS2 = $(OBJS1: = $(OBJ_DIR)/)
152 OBJS = $(OBJS2:.c=.obj)
153
154 RESOURCE = $(OBJ_DIR)/curl.res
155
156 DIRS = $(OBJ_DIR)
157
158 all: tool_hugehelp.c $(DIRS) $(TARGETS) .SYMBOLIC
159         @echo Welcome to cURL
160
161 clean: .SYMBOLIC
162         -rm -f $(OBJS)
163         -rm -f $(RESOURCE) $(LINK_ARG)
164
165 vclean distclean: clean .SYMBOLIC
166         -$(RD) $(OBJ_DIR)
167         -rm -f curl.exe curl.sym tool_hugehelp.c
168
169 tool_hugehelp.c: tool_hugehelp.c.cvs
170         $(CP) $[@ $^@
171
172 tool_hugehelp.c.cvs: .EXISTSONLY
173         $(CP) tool_hugehelp.c $^@
174
175 $(DIRS):
176         -$(MD) $^@
177
178 curl.exe: $(OBJS) $(RESOURCE)
179         %create $(LINK_ARG)
180         @%append $(LINK_ARG) system nt
181 !ifdef %debug
182         @%append $(LINK_ARG) debug all
183         @%append $(LINK_ARG) option symfile
184 !endif
185         @%append $(LINK_ARG) option quiet, caseexact, eliminate
186         @%append $(LINK_ARG) option map=$(OBJ_DIR)/$^&.map
187         @%append $(LINK_ARG) option res=$(RESOURCE)
188         @%append $(LINK_ARG) file { $(OBJS) }
189 !ifndef %curl_static
190         @%append $(LINK_ARG) library ../lib/$(LIBNAME)_imp.lib
191 !else
192         @%append $(LINK_ARG) library ../lib/$(LIBNAME).lib
193         @%append $(LINK_ARG) library wldap32.lib
194 ! ifdef %use_zlib
195         @%append $(LINK_ARG) library '$(ZLIB_ROOT)/zlib.lib'
196 ! endif
197 ! ifdef %use_rtmp
198         @%append $(LINK_ARG) library '$(LIBRTMP_ROOT)/librtmp/librtmp.lib'
199         @%append $(LINK_ARG) library winmm.lib
200 ! endif
201 ! ifdef %use_ssh2
202         @%append $(LINK_ARG) library '$(LIBSSH2_ROOT)/win32/libssh2.lib'
203 ! endif
204 ! ifdef %use_ssl
205         @%append $(LINK_ARG) library '$(OPENSSL_ROOT)/out32/libeay32.lib'
206         @%append $(LINK_ARG) library '$(OPENSSL_ROOT)/out32/ssleay32.lib'
207 ! endif
208 ! ifdef %use_ares
209         @%append $(LINK_ARG) library '$(ARES_ROOT)/cares.lib'
210 ! endif
211 ! ifdef %use_winidn
212 !  if $(__VERSION__) > 1290
213         @%append $(LINK_ARG) library normaliz.lib
214 !  else
215         @%append $(LINK_ARG) import '_IdnToAscii@20' 'NORMALIZ.DLL'.'IdnToAscii'
216         @%append $(LINK_ARG) import '_IdnToUnicode@20' 'NORMALIZ.DLL'.'IdnToUnicode'
217 !  endif
218 ! endif
219 !endif
220 !ifeq USE_WATT32 1
221         @%append $(LINK_ARG) library '$(%watt_root)/lib/wattcpw_imp.lib'
222 !else
223         @%append $(LINK_ARG) library ws2_32.lib
224 !endif
225         $(LD) name $^@ @$(LINK_ARG)
226
227 $(RESOURCE): curl.rc
228         $(RC) $(DEBUG) -q -r -zm -bt=nt -I"../include" $(SYS_INCL) $[@ -fo=$^@
229
230 # suffix search path - vpath-like hack
231 .c: ../lib
232
233 .c{$(OBJ_DIR)}.obj:
234         $(CC) $(CFLAGS) $[@ -fo=$^@