aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGuenter Knauf <lists@gknw.net>2010-07-29 03:18:40 +0200
committerGuenter Knauf <lists@gknw.net>2010-07-29 03:18:40 +0200
commitcfbb351e22a9f3d3a99317895975d368a1eedf31 (patch)
treed0ebc6d5b2d6789124ac58c1db9966d411d2efee /lib
parent11f53b9a18bc721ac966b8a6794d9b891bcde589 (diff)
Watcom makefiles overhaul.
- make both libcurl and curl makefiles use register calling convention (previously libcurl had stack calling convention). - added include paths to the Watcom headers so its no longer required to set the environment vars for this. - added -wcd=201 to supress compiler warning about unreachable code. - use macros for all tools, and removed dependency on GNU tools like rm. - make ipv6 and debug builds controlable via env vars and so make them optional instead of default. - commented WINLDAPAPI and WINBERAPI since they broke with OW 1.8, and it seems they're not needed (anymore?). - added rule for hugehelp.c.cvs so that it will be created when not already exist - this is required for building from a release tarball since there we have no hugehelp.c.cvs, thus compilation broke. - removed C_ARG creation from lib/Makefile.Watcom and use CFLAGS directly as done too in src/Makefile.Watcom - this has the benefit that we will see all active cflags and defines during compile. - added LINK-ARG to src/Makefile.Watcom in order to better control linker input. - a couple of other minor makefile tweaks here and there ... - added largefile support for Watcom builds to config-win32.h. Not yet tested if it really works, but should since Win32 supports it. - added loaddll stuff to speed up builds if supported.
Diffstat (limited to 'lib')
-rw-r--r--lib/Makefile.Watcom118
-rw-r--r--lib/config-win32.h4
2 files changed, 82 insertions, 40 deletions
diff --git a/lib/Makefile.Watcom b/lib/Makefile.Watcom
index cf7cdabbb..becdc5741 100644
--- a/lib/Makefile.Watcom
+++ b/lib/Makefile.Watcom
@@ -3,38 +3,76 @@
# G. Vanem <gvanem@broadpark.no>
#
+!ifndef %watcom
+!error WATCOM environment variable not set!
+!else
+SYS_INCL = -I$(%watcom)\h\nt -I$(%watcom)\h
+SYS_LIBS = $(%watcom)\lib386\nt;$(%watcom)\lib386
+!endif
+
TARGETS = libcurl_wc.dll libcurl_wc_imp.lib libcurl_wc.lib
CC = wcc386
+LD = wlink
+RC = wrc
+AR = wlib
+
+!ifdef __LOADDLL__
+! loaddll wcc386 wccd386
+! loaddll wpp386 wppd386
+! loaddll wlink wlinkd
+! loaddll wlib wlibd
+!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
+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
+
+!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
-!ifeq USE_ZLIB 1
+!ifdef %ares_root
+ARES_ROOT = $(%ares_root)
+!else
+ARES_ROOT = ..\ares
+!endif
+
+!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 +88,7 @@ CSOURCES = file.c timeval.c base64.c hostip.c progress.c formdata.c &
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 +107,66 @@ OBJS_DYN = $+ $(OBJS) $-
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)
+ -$(RM) $(OBJS_DYN)
+ -$(RM) $(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 +601,4 @@ $(OBJ_DIR)\pingpong.obj: pingpong.c setup.h config-win32.h &
..\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
+
diff --git a/lib/config-win32.h b/lib/config-win32.h
index 8c6f91a9f..7d0f8c60b 100644
--- a/lib/config-win32.h
+++ b/lib/config-win32.h
@@ -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