Fixed curl.exe static linking.
[platform/upstream/curl.git] / src / Makefile.Watcom
1 #
2 #  Watcom / OpenWatcom / Win32 makefile for cURL.
3 #  G. Vanem <gvanem@broadpark.no>
4 #
5
6 !ifndef %watcom
7 !error WATCOM environment variable not set!
8 !else
9 SYS_INCL = -I$(%watcom)\h\nt -I$(%watcom)\h
10 SYS_LIBS = $(%watcom)\lib386\nt;$(%watcom)\lib386
11 !endif
12
13 TARGETS = libcurl_wc.dll libcurl_wc_imp.lib libcurl_wc.lib
14
15 CC = wcc386
16 LD = wlink
17 RC = wrc
18 AR = wlib
19
20 !ifdef __LOADDLL__
21 !  loaddll wcc386  wccd386
22 !  loaddll wpp386  wppd386
23 !  loaddll wlink   wlinkd
24 !  loaddll wlib    wlibd
25 !endif
26
27 MD = mkdir
28 RM = del /q /f >NUL 2>&1
29 RD = rmdir /q /s >NUL 2>&1
30 CP = copy
31
32 CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -s -fr=con -w2 -fpi -oilrtfm &
33          -wcd=201 -bt=nt -bc -d+ -dWIN32 -dHAVE_STRTOLL             &
34          -I..\include -I..\lib $(SYS_INCL)
35
36 !ifdef %debug
37 DEBUG  = -dDEBUG=1 -dDEBUGBUILD
38 CFLAGS += -d3 $(DEBUG)
39 !else
40 CFLAGS += -d0
41 !endif
42
43 !ifdef %use_ipv6
44 CFLAGS += -d_WIN32_WINNT=0x0501 -dENABLE_IPV6
45 !endif
46
47 OBJ_DIR  = WC_Win32.obj
48 LINK_ARG = $(OBJ_DIR)\wlink.arg
49
50 # In order to process Makefile.inc wmake must be called with -u switch!
51 !ifneq __MAKEOPTS__ -u
52 !error You MUST call wmake with the -u switch!
53 !else
54 !include Makefile.inc
55 !endif
56 # Unfortunately, we can't include Makefile.inc here because wmake doesn't
57 # use backslash as the line continuation character by default
58 CURL_SOURCES = main.c hugehelp.c urlglob.c writeout.c writeenv.c &
59         getpass.c homedir.c curlutil.c os-specific.c
60
61 CURLX_SOURCES = rawstr.c nonblock.c
62
63 OBJS = $(CURL_SOURCES:.c=.obj)
64 !ifdef %curl_static
65 CFLAGS += -DCURL_STATICLIB
66 !else
67 OBJS += $(CURLX_SOURCES:.c=.obj)
68 !endif
69 OBJS = $OBJ_DIR\$(OBJS: = $OBJ_DIR\)
70
71 RESOURCE = $(OBJ_DIR)\curl.res
72
73 all: hugehelp.c $(OBJ_DIR) curl.exe .SYMBOLIC
74         @echo Welcome to cURL
75
76 hugehelp.c: hugehelp.c.cvs
77         $(CP) $[@ $^@
78
79 hugehelp.c.cvs: .EXISTSONLY
80         $(CP) hugehelp.c $^@
81
82 $(OBJ_DIR):
83         -$(MD) $^@
84
85 curl.exe: $(OBJS) $(RESOURCE) $(LINK_ARG)
86         $(LD) name $^@ @$(LINK_ARG)
87
88 $(LINK_ARG): $(__MAKEFILES__)
89         %create $^@
90         @%append $^@ system nt
91         @%append $^@ file { $(OBJS) }
92         @%append $^@ option quiet, map, caseexact, eliminate,
93         @%append $^@ res=$(RESOURCE) libpath $(SYS_LIBS)
94 #       @%append $^@ library clib3r.lib
95 !ifdef %curl_static
96         @%append $^@ library wldap32.lib
97         @%append $^@ library ..\lib\libcurl_wc.lib
98 !else
99         @%append $^@ library ..\lib\libcurl_wc_imp.lib
100 !endif
101 !ifeq USE_WATT32 1
102         @%append $^@ library $(%watt_root)\lib\wattcpw_imp.lib
103 !else
104         @%append $^@ library ws2_32.lib
105 !endif
106
107 clean: .SYMBOLIC
108         -$(RM) $(OBJS)
109         -$(RM) $(RESOURCE) $(LINK_ARG)
110
111 vclean realclean: clean .SYMBOLIC
112         -$(RD) $(OBJ_DIR)
113         -$(RM) curl.exe curl.map hugehelp.c
114
115 $(RESOURCE): curl.rc
116         $(RC) $(DEBUG) -q -r -zm -I..\include $(SYS_INCL) $[@ -fo=$^@
117
118 .ERASE
119 .c{$(OBJ_DIR)}.obj:
120         $(CC) $(CFLAGS) $[@ -fo=$^@
121
122 .ERASE
123 $(OBJ_DIR)\rawstr.obj: ..\lib\rawstr.c
124         $(CC) $(CFLAGS) $[@ -fo=$^@
125
126 .ERASE
127 $(OBJ_DIR)\nonblock.obj: ..\lib\nonblock.c
128         $(CC) $(CFLAGS) $[@ -fo=$^@
129
130 #
131 # Dependencies based on "gcc -MM .."
132 #
133 $(OBJ_DIR)\getpass.obj: getpass.c setup.h config-win32.h ..\lib\setup_once.h getpass.h &
134   ..\lib\memdebug.h ..\lib\setup.h ..\lib\config-win32.h &
135   ..\include\curl\curlbuild.h ..\include\curl\curlrules.h &
136   ..\include\curl\curl.h ..\include\curl\curlver.h &
137   ..\include\curl\curlrules.h ..\include\curl\easy.h &
138   ..\include\curl\multi.h ..\include\curl\curl.h
139
140 $(OBJ_DIR)\homedir.obj: homedir.c setup.h config-win32.h ..\lib\setup_once.h homedir.h &
141   ..\lib\memdebug.h ..\lib\setup.h ..\lib\config-win32.h &
142   ..\include\curl\curlbuild.h ..\include\curl\curlrules.h &
143   ..\include\curl\curl.h ..\include\curl\curlver.h &
144   ..\include\curl\curlrules.h ..\include\curl\easy.h &
145   ..\include\curl\multi.h ..\include\curl\curl.h
146
147 $(OBJ_DIR)\hugehelp.obj: hugehelp.c
148
149 $(OBJ_DIR)\main.obj: main.c setup.h config-win32.h ..\lib\setup_once.h &
150   ..\include\curl\curl.h ..\include\curl\curlver.h &
151   ..\include\curl\curlbuild.h ..\include\curl\curlrules.h &
152   ..\include\curl\easy.h ..\include\curl\multi.h ..\include\curl\curl.h &
153   urlglob.h writeout.h getpass.h homedir.h curlutil.h hugehelp.h &
154   version.h ..\include\curl\curlver.h ..\lib\curlx.h &
155   ..\include\curl\mprintf.h ..\lib\strequal.h ..\lib\strtoofft.h &
156   ..\lib\setup.h ..\lib\config-win32.h ..\include\curl\curlbuild.h &
157   ..\include\curl\curlrules.h ..\lib\timeval.h ..\lib\memdebug.h &
158   os-specific.h
159
160 $(OBJ_DIR)\urlglob.obj: urlglob.c setup.h config-win32.h ..\lib\setup_once.h &
161   ..\include\curl\curl.h ..\include\curl\curlver.h &
162   ..\include\curl\curlbuild.h ..\include\curl\curlrules.h &
163   ..\include\curl\easy.h ..\include\curl\multi.h ..\include\curl\curl.h &
164   ..\include\curl\mprintf.h urlglob.h ..\lib\memdebug.h ..\lib\setup.h &
165   ..\lib\config-win32.h ..\include\curl\curlbuild.h &
166   ..\include\curl\curlrules.h os-specific.h
167
168 $(OBJ_DIR)\writeenv.obj: writeenv.c setup.h config-win32.h ..\lib\setup_once.h
169
170 $(OBJ_DIR)\writeout.obj: writeout.c setup.h config-win32.h ..\lib\setup_once.h &
171   ..\include\curl\curl.h ..\include\curl\curlver.h &
172   ..\include\curl\curlbuild.h ..\include\curl\curlrules.h &
173   ..\include\curl\easy.h ..\include\curl\multi.h ..\include\curl\curl.h &
174   ..\include\curl\mprintf.h writeout.h
175
176 $(OBJ_DIR)\curlutil.obj: curlutil.c setup.h config-win32.h ..\lib\setup_once.h &
177   curlutil.h
178
179 $(OBJ_DIR)\os-specific.obj: os-specific.c os-specific.h setup.h config-win32.h &
180   ..\lib\setup_once.h
181
182 $(OBJ_DIR)\rawstr.obj: ..\lib\rawstr.c ..\lib\setup.h ..\lib\config-win32.h &
183   ..\include\curl\curlbuild.h ..\include\curl\curlrules.h ..\lib\setup_once.h &
184   ..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\curlrules.h &
185   ..\include\curl\easy.h ..\include\curl\multi.h ..\include\curl\curl.h &
186   ..\lib\strerror.h ..\lib\urldata.h ..\lib\cookie.h ..\lib\formdata.h &
187   ..\lib\timeval.h ..\lib\http_chunks.h ..\lib\hostip.h ..\lib\hash.h &
188   ..\lib\llist.h ..\lib\splay.h ..\include\curl\mprintf.h
189
190 $(OBJ_DIR)\nonblock.obj: ..\lib\nonblock.c ..\lib\setup.h ..\lib\config-win32.h &
191   ..\include\curl\curlbuild.h ..\include\curl\curlrules.h ..\lib\setup_once.h &
192   ..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\curlrules.h &
193   ..\include\curl\easy.h ..\include\curl\multi.h ..\include\curl\curl.h &
194   ..\lib\strerror.h ..\lib\urldata.h ..\lib\cookie.h ..\lib\formdata.h &
195   ..\lib\timeval.h ..\lib\http_chunks.h ..\lib\hostip.h ..\lib\hash.h &
196   ..\lib\llist.h ..\lib\splay.h ..\include\curl\mprintf.h ..\lib\nonblock.h
197