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