Makefile.Watcom (5897B)
1 # Copyright (C) The c-ares project and its contributors 2 # SPDX-License-Identifier: MIT 3 # 4 # Watcom / OpenWatcom / Win32 makefile for cares. 5 # Quick hack by Guenter; comments to: /dev/nul 6 # Updated by Douglas R. Reno, comments to: renodr2002@gmail.com. 2023 7 # 8 9 !ifndef %watcom 10 !error WATCOM environment variable not set! 11 !else 12 SYS_INCL = -I$(%watcom)\h\nt -I$(%watcom)\h 13 SYS_LIBS = $(%watcom)\lib386\nt;$(%watcom)\lib386 14 !endif 15 16 !ifdef %libname 17 LIBNAME = $(%libname) 18 !else 19 LIBNAME = cares 20 !endif 21 TARGETS = $(LIBNAME).dll $(LIBNAME)_imp.lib $(LIBNAME).lib 22 DEMOS = adig.exe ahost.exe 23 24 CC = wcc386 25 LD = wlink 26 AR = wlib 27 RC = wrc 28 29 !ifdef __LOADDLL__ 30 ! loaddll wcc386 wccd386 31 ! loaddll wpp386 wppd386 32 ! loaddll wlib wlibd 33 !endif 34 35 !if $(__VERSION__) < 1250 36 RM = del /q /f 2>NUL 37 !else 38 RM = rm -f 39 !endif 40 MD = mkdir 41 RD = rmdir /q /s 2>NUL 42 CP = copy 43 44 CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -zc -s -fr=con -w2 -fpi -oilrtfm -aa & 45 -wcd=201 -bt=nt -d+ -dCARES_BUILDING_LIBRARY & 46 -dNTDDI_VERSION=0x06020000 -I. -I.\include -I.\src\lib -I.\src\lib\include & 47 $(SYS_INCL) 48 49 LFLAGS = option quiet, map, caseexact, eliminate 50 51 !ifdef %debug 52 DEBUG = -dDEBUG=1 -dDEBUGBUILD 53 CFLAGS += -d3 $(DEBUG) 54 LFLAGS += debug all 55 !else 56 CFLAGS += -d0 57 !endif 58 59 CFLAGS += -d_WIN32_WINNT=0x0602 60 61 # 62 # Change to suite. 63 # 64 !ifdef %use_watt32 65 CFLAGS += -dWATT32 -I$(%watt_root)\inc 66 !endif 67 68 OBJ_BASE = WC_Win32.obj 69 LINK_ARG = $(OBJ_BASE)\dyn\wlink.arg 70 LIB_ARG = $(OBJ_BASE)\stat\wlib.arg 71 72 # In order to process Makefile.inc wmake must be called with -u switch! 73 !ifneq __MAKEOPTS__ -u 74 !error You MUST call wmake with the -u switch! 75 !else 76 !include src\lib\Makefile.inc 77 !endif 78 79 OBJS = $(CSOURCES:.c=.obj) 80 OBJS = $OBJ_DIR\$(OBJS: = $OBJ_DIR\) 81 82 # 83 # Use $(OBJS) as a template to generate $(OBJS_STAT) and $(OBJS_DYN). 84 # 85 OBJ_DIR = $(OBJ_BASE)\stat 86 OBJS_STAT = $+ $(OBJS) $- 87 88 OBJ_DIR = $(OBJ_BASE)\dyn 89 OBJS_DYN += $(OBJS) $- 90 91 ARESBUILDH = ares_build.h 92 RESOURCE = $(OBJ_BASE)\dyn\cares.res 93 ARESBUILDH = include\ares_build.h 94 95 all: $(ARESBUILDH) $(OBJ_BASE) $(TARGETS) $(DEMOS) .SYMBOLIC 96 @echo Welcome to cares 97 98 $(OBJ_BASE): 99 -$(MD) $^@ 100 -$(MD) $^@\stat 101 -$(MD) $^@\stat\dsa 102 -$(MD) $^@\stat\event 103 -$(MD) $^@\stat\legacy 104 -$(MD) $^@\stat\record 105 -$(MD) $^@\stat\str 106 -$(MD) $^@\stat\util 107 -$(MD) $^@\dyn 108 -$(MD) $^@\dyn\dsa 109 -$(MD) $^@\dyn\event 110 -$(MD) $^@\dyn\legacy 111 -$(MD) $^@\dyn\record 112 -$(MD) $^@\dyn\str 113 -$(MD) $^@\dyn\util 114 -$(MD) $^@\tools 115 116 $(ARESBUILDH): .EXISTSONLY 117 @echo Make sure to run buildconf.bat! 118 119 $(LIBNAME).dll: $(OBJS_DYN) $(RESOURCE) $(LINK_ARG) 120 $(LD) name $^@ @$]@ 121 122 $(LIBNAME).lib: $(OBJS_STAT) $(LIB_ARG) 123 $(AR) -q -b -c $^@ @$]@ 124 125 $(OBJ_BASE)\tools\ares_getopt.obj: 126 $(CC) $(CFLAGS) -DCARES_STATICLIB .\src\tools\ares_getopt.c -fo=$^@ 127 128 adig.exe: $(LIBNAME).lib 129 $(CC) $(CFLAGS) src\tools\adig.c -fo=$(OBJ_BASE)\tools\adig.obj 130 $(LD) name $^@ system nt $(LFLAGS) file { $(OBJ_BASE)\tools\adig.obj $[@ } library $]@, ws2_32.lib, iphlpapi.lib 131 132 ahost.exe: $(OBJ_BASE)\tools\ares_getopt.obj $(LIBNAME).lib 133 $(CC) $(CFLAGS) src\tools\ahost.c -fo=$(OBJ_BASE)\tools\ahost.obj 134 $(LD) name $^@ system nt $(LFLAGS) file { $(OBJ_BASE)\tools\ahost.obj $[@ } library $]@, ws2_32.lib, iphlpapi.lib 135 136 clean: .SYMBOLIC 137 -$(RM) $(OBJS_STAT) 138 -$(RM) $(OBJS_DYN) 139 -$(RM) $(RESOURCE) $(LINK_ARG) $(LIB_ARG) 140 141 vclean realclean: clean .SYMBOLIC 142 -$(RM) $(TARGETS) $(LIBNAME).map 143 -$(RM) $(DEMOS) $(DEMOS:.exe=.map) 144 -$(RD) $(OBJ_BASE)\stat 145 -$(RD) $(OBJ_BASE)\stat\dsa 146 -$(RD) $(OBJ_BASE)\stat\event 147 -$(RD) $(OBJ_BASE)\stat\legacy 148 -$(RD) $(OBJ_BASE)\stat\record 149 -$(RD) $(OBJ_BASE)\stat\str 150 -$(RD) $(OBJ_BASE)\stat\util 151 -$(RD) $(OBJ_BASE)\dyn 152 -$(RD) $(OBJ_BASE)\dyn\dsa 153 -$(RD) $(OBJ_BASE)\dyn\event 154 -$(RD) $(OBJ_BASE)\dyn\legacy 155 -$(RD) $(OBJ_BASE)\dyn\record 156 -$(RD) $(OBJ_BASE)\dyn\str 157 -$(RD) $(OBJ_BASE)\dyn\util 158 -$(RD) $(OBJ_BASE)\tools 159 -$(RD) $(OBJ_BASE) 160 161 .ERASE 162 .c: .\src\lib 163 164 .ERASE 165 $(RESOURCE): src\lib\cares.rc .AUTODEPEND 166 $(RC) $(DEBUG) -q -r -zm -I..\include $(SYS_INCL) $[@ -fo=$^@ 167 168 .ERASE 169 .c{$(OBJ_BASE)\dyn}.obj: 170 $(CC) $(CFLAGS) -bd .\src\lib\$^& -fo=$^@ 171 172 .ERASE 173 {dsa}.c{$(OBJ_BASE)\dyn\dsa}.obj: 174 $(CC) $(CFLAGS) -bd .\src\lib\dsa\$^& -fo=$^@ 175 176 .ERASE 177 {event}.c{$(OBJ_BASE)\dyn\event}.obj: 178 $(CC) $(CFLAGS) -bd .\src\lib\event\$^& -fo=$^@ 179 180 .ERASE 181 {legacy}.c{$(OBJ_BASE)\dyn\legacy}.obj: 182 $(CC) $(CFLAGS) -bd .\src\lib\legacy\$^& -fo=$^@ 183 184 .ERASE 185 {record}.c{$(OBJ_BASE)\dyn\record}.obj: 186 $(CC) $(CFLAGS) -bd .\src\lib\record\$^& -fo=$^@ 187 188 .ERASE 189 {str}.c{$(OBJ_BASE)\dyn\str}.obj: 190 $(CC) $(CFLAGS) -bd .\src\lib\str\$^& -fo=$^@ 191 192 .ERASE 193 {util}.c{$(OBJ_BASE)\dyn\util}.obj: 194 $(CC) $(CFLAGS) -bd .\src\lib\util\$^& -fo=$^@ 195 196 .ERASE 197 .c{$(OBJ_BASE)\stat}.obj: 198 $(CC) $(CFLAGS) -DCARES_STATICLIB .\src\lib\$^& -fo=$^@ 199 200 .ERASE 201 {dsa}.c{$(OBJ_BASE)\stat\dsa}.obj: 202 $(CC) $(CFLAGS) -DCARES_STATICLIB .\src\lib\dsa\$^& -fo=$^@ 203 204 .ERASE 205 {event}.c{$(OBJ_BASE)\stat\event}.obj: 206 $(CC) $(CFLAGS) -DCARES_STATICLIB .\src\lib\event\$^& -fo=$^@ 207 208 .ERASE 209 {legacy}.c{$(OBJ_BASE)\stat\legacy}.obj: 210 $(CC) $(CFLAGS) -DCARES_STATICLIB .\src\lib\legacy\$^& -fo=$^@ 211 212 .ERASE 213 {record}.c{$(OBJ_BASE)\stat\record}.obj: 214 $(CC) $(CFLAGS) -DCARES_STATICLIB .\src\lib\record\$^& -fo=$^@ 215 216 .ERASE 217 {str}.c{$(OBJ_BASE)\stat\str}.obj: 218 $(CC) $(CFLAGS) -DCARES_STATICLIB .\src\lib\str\$^& -fo=$^@ 219 220 .ERASE 221 {util}.c{$(OBJ_BASE)\stat\util}.obj: 222 $(CC) $(CFLAGS) -DCARES_STATICLIB .\src\lib\util\$^& -fo=$^@ 223 224 $(LINK_ARG): $(__MAKEFILES__) 225 %create $^@ 226 @%append $^@ system nt dll 227 @%append $^@ file { $(OBJS_DYN) } 228 @%append $^@ option res=$(RESOURCE), implib=$(LIBNAME)_imp.lib 229 @%append $^@ $(LFLAGS) 230 @%append $^@ libpath $(SYS_LIBS) 231 # @%append $^@ library clib3r.lib 232 !ifdef %use_watt32 233 @%append $^@ library $(%watt_root)\lib\wattcpw_imp.lib 234 !else 235 @%append $^@ library ws2_32.lib 236 @%append $^@ library iphlpapi.lib 237 !endif 238 239 $(LIB_ARG): $(__MAKEFILES__) 240 %create $^@ 241 @for %f in ($(OBJS_STAT)) do @%append $^@ +- %f 242 243