Git init
[external/curl.git] / lib / Makefile.Watcom
1 #
2 #  Watcom / OpenWatcom / Win32 makefile for libcurl.
3 #  G. Vanem <gvanem@broadpark.no>
4 #
5
6 !ifndef %watcom
7 !error WATCOM environment variable not set!
8 !endif
9
10 !ifdef %libname
11 LIBNAME = $(%libname)
12 !else
13 LIBNAME = libcurl
14 !endif
15 TARGETS = $(LIBNAME).dll $(LIBNAME)_imp.lib $(LIBNAME).lib
16
17 CC = wcc386
18 LD = wlink
19 AR = wlib
20 RC = wrc
21
22 !ifdef __LOADDLL__
23 !  loaddll wcc386  wccd386
24 !  loaddll wpp386  wppd386
25 !  loaddll wlib    wlibd
26 !  if $(__VERSION__) > 1270
27 !    loaddll wlink   wlinkd
28 !  else
29 !    loaddll wlink   wlink
30 !  endif
31 !endif
32
33 !ifdef __LINUX__
34 DS = /
35 CP = cp
36 MD = mkdir -p
37 RD = rmdir -p
38 RM = rm -f
39 !else
40 DS = $(X)\$(X)
41 CP = copy 2>NUL
42 MD = mkdir
43 RD = rmdir /q /s 2>NUL
44 !if $(__VERSION__) < 1250
45 RM = del /q /f 2>NUL
46 !else
47 RM = rm -f
48 !endif
49 !endif
50
51 SYS_INCL = -I$(%watcom)$(DS)h$(DS)nt -I$(%watcom)$(DS)h
52 SYS_LIBS = $(%watcom)$(DS)lib386$(DS)nt;$(%watcom)$(DS)lib386
53
54 CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -zc -s -fr=con -w2 -fpi -oilrtfm &
55          -wcd=201 -bt=nt -d+ -dWIN32 -dCURL_WANTS_CA_BUNDLE_ENV         &
56          -dBUILDING_LIBCURL -dHAVE_SPNEGO=1 -I. -I..$(DS)include $(SYS_INCL)
57
58 !ifdef %debug
59 DEBUG  = -dDEBUG=1 -dDEBUGBUILD
60 CFLAGS += -d3 $(DEBUG)
61 !else
62 CFLAGS += -d0
63 !endif
64
65 !ifdef %use_ipv6
66 CFLAGS += -d_WIN32_WINNT=0x0501 -dENABLE_IPV6
67 !endif
68
69 !ifdef %use_sspi
70 CFLAGS += -dUSE_WINDOWS_SSPI
71 !endif
72
73 #
74 # Change to suite.
75 #
76 !ifdef %zlib_root
77 ZLIB_ROOT = $(%zlib_root)
78 !else
79 ZLIB_ROOT = ..$(DS)..$(DS)zlib-1.2.5
80 !endif
81
82 !ifdef %libssh2_root
83 LIBSSH2_ROOT = $(%libssh2_root)
84 !else
85 LIBSSH2_ROOT = ..$(DS)..$(DS)libssh2-1.2.7
86 !endif
87
88 !ifdef %librtmp_root
89 LIBRTMP_ROOT = $(%librtmp_root)
90 !else
91 LIBRTMP_ROOT = ..$(DS)..$(DS)rtmpdump-2.3
92 !endif
93
94 !ifdef %openssl_root
95 OPENSSL_ROOT = $(%openssl_root)
96 !else
97 OPENSSL_ROOT = ..$(DS)..$(DS)openssl-0.9.8q
98 !endif
99
100 !ifdef %ares_root
101 ARES_ROOT = $(%ares_root)
102 !else
103 ARES_ROOT = ..$(DS)ares
104 !endif
105
106 !ifdef %use_zlib
107 CFLAGS += -dHAVE_ZLIB_H -dHAVE_LIBZ -I$(ZLIB_ROOT)
108 !endif
109
110 !ifdef %use_rtmp
111 CFLAGS += -dUSE_LIBRTMP -I$(LIBRTMP_ROOT)
112 !endif
113
114 !ifdef %use_ssh2
115 CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H -I$(LIBSSH2_ROOT)$(DS)include -I$(LIBSSH2_ROOT)$(DS)win32
116 !endif
117
118 !ifdef %use_ssl
119 CFLAGS += -wcd=138 -dUSE_OPENSSL -dUSE_SSLEAY -I$(OPENSSL_ROOT)$(DS)inc32
120 !endif
121
122 !ifdef %use_ares
123 CFLAGS += -dUSE_ARES -I$(ARES_ROOT)
124 !endif
125
126 !ifdef %use_watt32
127 CFLAGS += -dUSE_WATT32 -I$(%watt_root)$(DS)inc
128 !endif
129
130 OBJ_BASE = WC_Win32.obj
131 LINK_ARG = $(OBJ_BASE)$(DS)dyn$(DS)wlink.arg
132 LIB_ARG  = $(OBJ_BASE)$(DS)stat$(DS)wlib.arg
133
134 # In order to process Makefile.inc wmake must be called with -u switch!
135 !ifndef %MAKEFLAGS
136 !error You MUST call wmake with the -u switch!
137 !else
138 !include Makefile.inc
139 !endif
140
141 OBJS = $(CSOURCES:.c=.obj)
142 !ifdef __LINUX__
143 OBJS = $OBJ_DIR/$(OBJS: = $OBJ_DIR/)
144
145 !else
146 OBJS = $OBJ_DIR\$(OBJS: = $OBJ_DIR\)
147 !endif
148
149 #
150 # Use $(OBJS) as a template to generate $(OBJS_STAT) and $(OBJS_DYN).
151 #
152 OBJ_DIR    = $(OBJ_BASE)$(DS)stat
153 OBJS_STAT  = $+ $(OBJS) $-
154
155 OBJ_DIR    = $(OBJ_BASE)$(DS)dyn
156 OBJS_DYN   = $+ $(OBJS) $-
157
158 CURLBUILDH = ..$(DS)include$(DS)curl$(DS)curlbuild.h
159 RESOURCE   = $(OBJ_BASE)$(DS)dyn$(DS)libcurl.res
160
161 all: $(CURLBUILDH) $(OBJ_BASE) $(TARGETS) .SYMBOLIC
162         @echo Welcome to libcurl
163
164 clean: .SYMBOLIC
165         -$(RM) $(OBJS_STAT)
166         -$(RM) $(OBJS_DYN)
167         -$(RM) $(RESOURCE) $(LINK_ARG) $(LIB_ARG)
168
169 vclean distclean: clean .SYMBOLIC
170         -$(RM) $(TARGETS) $(LIBNAME).map $(LIBNAME).sym
171         -$(RD) $(OBJ_BASE)$(DS)stat
172         -$(RD) $(OBJ_BASE)$(DS)dyn
173         -$(RD) $(OBJ_BASE)
174
175 $(OBJ_BASE):
176         -$(MD) $^@
177         -$(MD) $^@$(DS)stat
178         -$(MD) $^@$(DS)dyn
179
180 $(CURLBUILDH): .EXISTSONLY
181         $(CP) $^@.dist $^@
182
183 $(LIBNAME).dll: $(OBJS_DYN) $(RESOURCE) $(LINK_ARG)
184         $(LD) name $^@ @$]@
185
186 $(LIBNAME).lib: $(OBJS_STAT) $(LIB_ARG)
187         $(AR) -q -b -c $^@ @$]@
188
189 .ERASE
190 $(RESOURCE): libcurl.rc
191         $(RC) $(DEBUG) -q -r -zm -bt=nt -I..$(DS)include $(SYS_INCL) $[@ -fo=$^@
192
193 .ERASE
194 .c{$(OBJ_BASE)$(DS)dyn}.obj:
195         $(CC) $(CFLAGS) -bd -br $[@ -fo=$^@
196
197 .ERASE
198 .c{$(OBJ_BASE)$(DS)stat}.obj:
199         $(CC) $(CFLAGS) -DCURL_STATICLIB $[@ -fo=$^@
200
201 $(LINK_ARG): $(__MAKEFILES__)
202         %create $^@
203         @%append $^@ system nt dll
204         @%append $^@ file { $(OBJS_DYN) }
205 !ifdef %debug
206         @%append $^@ debug all
207         @%append $^@ option symfile
208 !endif
209         @%append $^@ option quiet, map, caseexact, eliminate, implib=$(LIBNAME)_imp.lib,
210         @%append $^@ res=$(RESOURCE) libpath $(SYS_LIBS)
211         @%append $^@ library wldap32.lib
212 !ifdef %use_watt32
213         @%append $^@ library $(%watt_root)$(DS)lib$(DS)wattcpw_imp.lib
214 !else
215         @%append $^@ library ws2_32.lib
216 !endif
217 !ifdef %use_zlib
218         @%append $^@ library $(ZLIB_ROOT)$(DS)zlib.lib
219 !endif
220 !ifdef %use_rtmp
221         @%append $^@ library $(LIBRTMP_ROOT)$(DS)librtmp$(DS)librtmp.lib
222 !endif
223 !ifdef %use_ssh2
224         @%append $^@ library $(LIBSSH2_ROOT)$(DS)win32$(DS)libssh2.lib
225 !endif
226 !ifdef %use_ssl
227         @%append $^@ library $(OPENSSL_ROOT)$(DS)out32$(DS)libeay32.lib, $(OPENSSL_ROOT)$(DS)out32$(DS)ssleay32.lib
228 !endif
229 !ifdef %use_ares
230         @%append $^@ library $(ARES_ROOT)$(DS)cares.lib
231 !endif
232
233 $(LIB_ARG): $(__MAKEFILES__)
234         %create $^@
235         @for %f in ($(OBJS_STAT)) do @%append $^@ +- %f
236