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 12SYS_INCL = -I$(%watcom)\h\nt -I$(%watcom)\h 13SYS_LIBS = $(%watcom)\lib386\nt;$(%watcom)\lib386 14!endif 15 16!ifdef %libname 17LIBNAME = $(%libname) 18!else 19LIBNAME = cares 20!endif 21TARGETS = $(LIBNAME).dll $(LIBNAME)_imp.lib $(LIBNAME).lib 22DEMOS = adig.exe ahost.exe 23 24CC = wcc386 25LD = wlink 26AR = wlib 27RC = wrc 28 29!ifdef __LOADDLL__ 30! loaddll wcc386 wccd386 31! loaddll wpp386 wppd386 32! loaddll wlib wlibd 33!endif 34 35!if $(__VERSION__) < 1250 36RM = del /q /f 2>NUL 37!else 38RM = rm -f 39!endif 40MD = mkdir 41RD = rmdir /q /s 2>NUL 42CP = copy 43 44CFLAGS = -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 49LFLAGS = option quiet, map, caseexact, eliminate 50 51!ifdef %debug 52DEBUG = -dDEBUG=1 -dDEBUGBUILD 53CFLAGS += -d3 $(DEBUG) 54LFLAGS += debug all 55!else 56CFLAGS += -d0 57!endif 58 59CFLAGS += -d_WIN32_WINNT=0x0602 60 61# 62# Change to suite. 63# 64!ifdef %use_watt32 65CFLAGS += -dWATT32 -I$(%watt_root)\inc 66!endif 67 68OBJ_BASE = WC_Win32.obj 69LINK_ARG = $(OBJ_BASE)\dyn\wlink.arg 70LIB_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 79OBJS = $(CSOURCES:.c=.obj) 80OBJS = $OBJ_DIR\$(OBJS: = $OBJ_DIR\) 81 82# 83# Use $(OBJS) as a template to generate $(OBJS_STAT) and $(OBJS_DYN). 84# 85OBJ_DIR = $(OBJ_BASE)\stat 86OBJS_STAT = $+ $(OBJS) $- 87 88OBJ_DIR = $(OBJ_BASE)\dyn 89OBJS_DYN += $(OBJS) $- 90 91ARESBUILDH = ares_build.h 92RESOURCE = $(OBJ_BASE)\dyn\cares.res 93ARESBUILDH = include\ares_build.h 94 95all: $(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 128adig.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 132ahost.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 136clean: .SYMBOLIC 137 -$(RM) $(OBJS_STAT) 138 -$(RM) $(OBJS_DYN) 139 -$(RM) $(RESOURCE) $(LINK_ARG) $(LIB_ARG) 140 141vclean 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 244