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