--- lib/config-win32.h.orig	Sat Jun 05 00:30:04 2010
+++ lib/config-win32.h	Wed Jul 28 00:21:34 2010
@@ -504,6 +504,10 @@
 #  define USE_WIN32_LARGE_FILES
 #endif
 
+#if defined(__WATCOMC__) && !defined(USE_WIN32_LARGE_FILES)
+#  define USE_WIN32_LARGE_FILES
+#endif
+
 #if defined(__POCC__)
 #  undef USE_WIN32_LARGE_FILES
 #endif
##############################################################################
--- lib/Makefile.Watcom.orig	Wed Jun 02 16:51:10 2010
+++ lib/Makefile.Watcom	Wed Jul 28 04:55:46 2010
@@ -3,38 +3,69 @@
 #  G. Vanem <gvanem@broadpark.no>
 #
 
+!ifndef %watcom
+!error WATCOM environment variable not set!
+!else
+SYS_INCL = -I$(%watcom)\h -I$(%watcom)\h\nt
+SYS_LIBS = $(%watcom)\lib386;$(%watcom)\lib386\nt
+!endif
+
 TARGETS = libcurl_wc.dll libcurl_wc_imp.lib libcurl_wc.lib
 
 CC = wcc386
+LD = wlink
+RC = wrc
+AR = wlib
+
+MD = mkdir
+RM = del /q /f >NUL 2>&1
+RD = rmdir /q /s >NUL 2>&1 
+CP = copy
+
+CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -zc -s -fr=con -w2 -fpi -oilrtfm &
+         -wcd=201 -bt=nt -bd -d+ -dWIN32 -dCURL_WANTS_CA_BUNDLE_ENV     &
+         -dBUILDING_LIBCURL -dHAVE_SPNEGO=1 -I. -I..\include $(SYS_INCL)
+#CFLAGS += -dWINBERAPI=__declspec(cdecl) -dWINLDAPAPI=__declspec(cdecl)
+
+!ifdef %debug
+DEBUG  = -dDEBUG=1 -dDEBUGBUILD
+CFLAGS += -d3 $(DEBUG)
+!else
+CFLAGS += -d0
+!endif
 
-CFLAGS = -3s -mf -d3 -hc -zff -zgf -zq -zm -zc -s -fr=con -w2 -fpi -oilrtfm -bt=nt &
-         -bd -d+ -dWIN32 -dCURL_CA_BUNDLE=getenv("CURL_CA_BUNDLE")                 &
-         -dBUILDING_LIBCURL -dHAVE_SPNEGO=1 -dENABLE_IPV6                          &
-         -dDEBUG=1 -dDEBUGBUILD -d_WIN32_WINNT=0x0501 -dWINBERAPI=__declspec(cdecl) &
-         -dWINLDAPAPI=__declspec(cdecl) -I. -I..\include
+!ifdef %use_ipv6
+CFLAGS += -d_WIN32_WINNT=0x0501 -dENABLE_IPV6
+!endif
 
 #
 # Change to suite.
 #
-ZLIB_ROOT  = ..\..\..\zlib-1.2.3
-USE_ZLIB   = 0
-USE_ARES   = 0
-USE_WATT32 = 0
+!ifdef %zlib_root
+ZLIB_ROOT  = $(%zlib_root)
+!else
+ZLIB_ROOT  = ..\..\zlib-1.2.5
+!endif
+
+!ifdef %ares_root
+ARES_ROOT  = $(%ares_root)
+!else
+ARES_ROOT  = ..\ares
+!endif
 
-!ifeq USE_ZLIB 1
+!ifdef %use_zlib
 CFLAGS += -dHAVE_ZLIB_H -dHAVE_LIBZ -I$(ZLIB_ROOT)
 !endif
 
-!ifeq USE_ARES 1
-CFLAGS += -dUSE_ARES -I..\ares
+!ifdef %use_ares
+CFLAGS += -dUSE_ARES -I$(ARES_ROOT)
 !endif
 
-!ifeq USE_WATT32 1
+!ifdef %use_watt32
 CFLAGS += -dUSE_WATT32 -I$(%watt_root)\inc
 !endif
 
 OBJ_BASE = WC_Win32.obj
-C_ARG    = $(OBJ_BASE)\wcc386.arg
 LINK_ARG = $(OBJ_BASE)\dyn\wlink.arg
 LIB_ARG  = $(OBJ_BASE)\stat\wlib.arg
 
@@ -50,7 +81,7 @@
   http_negotiate.c http_ntlm.c inet_pton.c strtoofft.c strerror.c	&
   hostares.c hostasyn.c hostip4.c hostip6.c hostsyn.c hostthre.c	&
   inet_ntop.c parsedate.c select.c gtls.c sslgen.c tftp.c splay.c	&
-  strdup.c socks.c ssh.c nss.c qssl.c rawstr.c curl_addrinfo.c          &
+  strdup.c socks.c ssh.c nss.c qssl.c rawstr.c curl_addrinfo.c		&
   socks_gssapi.c socks_sspi.c curl_sspi.c slist.c nonblock.c		&
   curl_memrchr.c imap.c pop3.c smtp.c pingpong.c rtsp.c curl_threads.c	&
   warnless.c hmac.c polarssl.c curl_rtmp.c openldap.c
@@ -69,67 +100,64 @@
 
 RESOURCE = $(OBJ_BASE)\dyn\libcurl.res
 
-all: $(OBJ_BASE) $(C_ARG) $(TARGETS) .SYMBOLIC
+all: $(OBJ_BASE) $(TARGETS) .SYMBOLIC
 	@echo Welcome to libcurl
 
 $(OBJ_BASE):
-	- mkdir $(OBJ_BASE)
-	- mkdir $(OBJ_BASE)\stat
-	- mkdir $(OBJ_BASE)\dyn
+	-$(MD) $@
+	-$(MD) $@\stat
+	-$(MD) $@\dyn
 
 libcurl_wc.dll libcurl_wc_imp.lib: $(OBJS_DYN) $(RESOURCE) $(LINK_ARG)
-	wlink name libcurl_wc.dll @$(LINK_ARG)
+	$(LD) name libcurl_wc.dll @$(LINK_ARG)
 
 libcurl_wc.lib: $(OBJS_STAT) $(LIB_ARG)
-	wlib -q -b- c $@ @$(LIB_ARG)
+	$(AR) -q -b- c $@ @$(LIB_ARG)
 
 clean: .SYMBOLIC
-	- rm -f $(OBJS_STAT) $(OBJS_DYN) $(RESOURCE) $(C_ARG) $(LINK_ARG) $(LIB_ARG)
+	-$(RM) $(OBJS_STAT) $(OBJS_DYN) $(RESOURCE) $(LINK_ARG) $(LIB_ARG)
 
 vclean realclean: clean .SYMBOLIC
-	- rm -f $(TARGETS) libcurl_wc.map
-	- rmdir $(OBJ_BASE)\stat
-	- rmdir $(OBJ_BASE)\dyn
-	- rmdir $(OBJ_BASE)
+	-$(RM) $(TARGETS) libcurl_wc.map
+	-$(RD) $(OBJ_BASE)\stat
+	-$(RD) $(OBJ_BASE)\dyn
+	-$(RD) $(OBJ_BASE)
 
 .ERASE
 $(RESOURCE): libcurl.rc
-        wrc -dDEBUGBUILD=1 -q -r -zm -I..\include -fo=$@ libcurl.rc
+	$(RC) $(DEBUG) -q -r -zm -I..\include $(SYS_INCL) $[@ -fo=$@
 
 .ERASE
 .c{$(OBJ_BASE)\dyn}.obj:
-	$(CC) $[@ @$(C_ARG) -fo=$@
+	$(CC) $(CFLAGS) $[@ -fo=$@
 
 .ERASE
 .c{$(OBJ_BASE)\stat}.obj:
-	$(CC) $[@ @$(C_ARG) -DCURL_STATICLIB -fo=$@
-
-$(C_ARG): $(__MAKEFILES__)
-	%create $^@
-	%append $^@ $(CFLAGS)
+	$(CC) $(CFLAGS) $[@ -DCURL_STATICLIB -fo=$@
 
 $(LINK_ARG): $(__MAKEFILES__)
 	%create $^@
 	@%append $^@ system nt dll
 	@%append $^@ file { $(OBJS_DYN) }
 	@%append $^@ option quiet, map, caseexact, eliminate, implib=libcurl_wc_imp.lib,
-	@%append $^@ res=$(RESOURCE) libpath $(%watcom)\lib386;$(%watcom)\lib386\nt
-	@%append $^@ library clib3s.lib, wldap32.lib
-!ifeq USE_WATT32 1
+	@%append $^@ res=$(RESOURCE) libpath $(SYS_LIBS)
+#	@%append $^@ library clib3r.lib
+	@%append $^@ library wldap32.lib
+!ifdef %use_watt32
 	@%append $^@ library $(%watt_root)\lib\wattcpw_imp.lib
 !else
 	@%append $^@ library ws2_32.lib
 !endif
-!ifeq USE_ZLIB 1
+!ifdef %use_zlib
 	@%append $^@ library $(ZLIB_ROOT)\zlib.lib
 !endif
-!ifeq USE_ARES 1
-	@%append $^@ library ..\ares\cares.lib
+!ifdef %use_ares
+	@%append $^@ library $(ARES_ROOT)\cares.lib
 !endif
 
 $(LIB_ARG): $(__MAKEFILES__)
 	%create $^@
-	for %f in ($(OBJS_STAT)) do @%append $^@ +- %f
+	@for %f in ($(OBJS_STAT)) do @%append $^@ +- %f
 
 #
 # Dependencies based on "gcc -MM .."
@@ -564,3 +592,4 @@
   ..\include\curl\curlrules.h ..\include\curl\easy.h &
   ..\include\curl\multi.h ..\include\curl\curl.h pingpong.h &
   ..\include\curl\mprintf.h curl_memory.h memdebug.h
+
##############################################################################
--- src/Makefile.Watcom.orig	Wed Mar 24 13:41:08 2010
+++ src/Makefile.Watcom	Wed Jul 28 04:55:28 2010
@@ -3,22 +3,55 @@
 #  G. Vanem <gvanem@broadpark.no>
 #
 
-CC = wcc386
+!ifndef %watcom
+!error WATCOM environment variable not set!
+!else
+SYS_INCL = -I$(%watcom)\h -I$(%watcom)\h\nt
+SYS_LIBS = $(%watcom)\lib386;$(%watcom)\lib386\nt
+!endif
+
+TARGETS = libcurl_wc.dll libcurl_wc_imp.lib libcurl_wc.lib
 
-CFLAGS = -3r -mf -d3 -hc -zff -zgf -zq -zm -s -fr=con -w2 -fpi -oilrtfm &
-         -bt=nt -d+ -dWIN32 -dHAVE_STRTOLL -dDEBUGBUILD -dENABLE_IPV6    &
-         -dHAVE_WINSOCK2_H -I..\include -I..\lib
+CC = wcc386
+LD = wlink
+RC = wrc
+AR = wlib
+
+MD = mkdir
+RM = del /q /f >NUL 2>&1
+RD = rmdir /q /s >NUL 2>&1
+CP = copy
+
+CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -s -fr=con -w2 -fpi -oilrtfm   &
+         -wcd=201 -bt=nt -d+ -dWIN32 -dHAVE_STRTOLL -dHAVE_WINSOCK2_H &
+         -I..\include -I..\lib $(SYS_INCL)
+
+!ifdef %debug
+DEBUG  = -dDEBUG=1 -dDEBUGBUILD
+CFLAGS += -d3 $(DEBUG)
+!else
+CFLAGS += -d0
+!endif
+
+!ifdef %use_ipv6
+CFLAGS += -d_WIN32_WINNT=0x0501 -dENABLE_IPV6
+!endif
 
-OBJ_DIR = WC_Win32.obj
+OBJ_DIR  = WC_Win32.obj
+LINK_ARG = $(OBJ_DIR)\wlink.arg
 
 # Unfortunately, we can't include Makefile.inc here because wmake doesn't
 # use backslash as the line continuation character by default
 CURL_SOURCES = main.c hugehelp.c urlglob.c writeout.c writeenv.c &
 	getpass.c homedir.c curlutil.c os-specific.c
 
-CURLX_SOURCES = rawstr.c
+CURLX_SOURCES = rawstr.c nonblock.c
 
-OBJS = $(CURL_SOURCES:.c=.obj) $(CURLX_SOURCES:.c=.obj)
+OBJS = $(CURL_SOURCES:.c=.obj)
+!ifndef %curl_static
+CFLAGS += -DCURL_STATICLIB
+OBJS += $(CURLX_SOURCES:.c=.obj)
+!endif
 OBJS = $OBJ_DIR\$(OBJS: = $OBJ_DIR\)
 
 RESOURCE = $(OBJ_DIR)\curl.res
@@ -27,38 +60,57 @@
 	@echo Welcome to cURL
 
 hugehelp.c: hugehelp.c.cvs
-	copy hugehelp.c.cvs hugehelp.c
+	$(CP) $[@ $@
+
+hugehelp.c.cvs: .EXISTSONLY 
+	$(CP) hugehelp.c $@
 
 $(OBJ_DIR):
-	mkdir $(OBJ_DIR)
+	-$(MD) $@
+
+curl.exe: $(OBJS) $(RESOURCE) $(LINK_ARG)
+	$(LD) name $@ @$(LINK_ARG)
 
-curl.exe: $(OBJS) $(RESOURCE)
-	wlink name $@ system nt file { $(OBJS) }                   &
-	  option quiet, map, caseexact, eliminate, res=$(RESOURCE) &
-	  libpath $(%watcom)\lib386;$(%watcom)\lib386\nt           &
-	  library ..\lib\libcurl_wc_imp.lib, clib3r.lib, ws2_32.lib
+$(LINK_ARG): $(__MAKEFILES__)
+	%create $^@
+	@%append $^@ system nt
+	@%append $^@ file { $(OBJS) }
+	@%append $^@ option quiet, map, caseexact, eliminate,
+	@%append $^@ res=$(RESOURCE) libpath $(SYS_LIBS)
+#	@%append $^@ library clib3r.lib
+!ifdef %curl_static
+	@%append $^@ library ..\lib\libcurl_wc.lib
+!else
+	@%append $^@ library ..\lib\libcurl_wc_imp.lib
+!endif
+!ifeq USE_WATT32 1
+	@%append $^@ library $(%watt_root)\lib\wattcpw_imp.lib
+!else
+	@%append $^@ library ws2_32.lib
+!endif
 
 clean: .SYMBOLIC
-	- rm -f $(OBJS) $(RESOURCE)
+	-$(RM) $(OBJS) $(RESOURCE)
 
 vclean realclean: clean .SYMBOLIC
- 	- rm -f curl.exe curl.map hugehelp.c
-	- rmdir $(OBJ_DIR)
+	-$(RD) $(OBJ_DIR)
+	-$(RM) curl.exe curl.map
+	-$(RM) hugehelp.c
 
 $(RESOURCE): curl.rc
-	wrc -dDEBUGBUILD=1 -q -r -zm -I..\include -fo=$@ curl.rc
+	$(RC) $(DEBUG) -q -r -zm -I..\include $(SYS_INCL) $[@ -fo=$@
 
 .ERASE
 .c{$(OBJ_DIR)}.obj:
-	$(CC) $[@ $(CFLAGS) -fo=$@
+	$(CC) $(CFLAGS) $[@ -fo=$@
 
 .ERASE
 $(OBJ_DIR)\rawstr.obj: ..\lib\rawstr.c
-	$(CC) $[@ $(CFLAGS) -fo=$@
+	$(CC) $(CFLAGS) $[@ -fo=$@
 
 .ERASE
 $(OBJ_DIR)\nonblock.obj: ..\lib\nonblock.c
-	$(CC) $[@ $(CFLAGS) -fo=$@
+	$(CC) $(CFLAGS) $[@ -fo=$@
 
 #
 # Dependencies based on "gcc -MM .."
@@ -127,3 +179,4 @@
   ..\lib\strerror.h ..\lib\urldata.h ..\lib\cookie.h ..\lib\formdata.h &
   ..\lib\timeval.h ..\lib\http_chunks.h ..\lib\hostip.h ..\lib\hash.h &
   ..\lib\llist.h ..\lib\splay.h ..\include\curl\mprintf.h ..\lib\nonblock.h
+

