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+ -dWIN32 -dCARES_BUILDING_LIBRARY & 46 -dNTDDI_VERSION=0x06020000 -I. -I.\include -I.\src\lib $(SYS_INCL) 47 48LFLAGS = option quiet, map, caseexact, eliminate 49 50!ifdef %debug 51DEBUG = -dDEBUG=1 -dDEBUGBUILD 52CFLAGS += -d3 $(DEBUG) 53LFLAGS += debug all 54!else 55CFLAGS += -d0 56!endif 57 58CFLAGS += -d_WIN32_WINNT=0x0602 59 60# 61# Change to suite. 62# 63!ifdef %use_watt32 64CFLAGS += -dWATT32 -I$(%watt_root)\inc 65!endif 66 67OBJ_BASE = WC_Win32.obj 68LINK_ARG = $(OBJ_BASE)\dyn\wlink.arg 69LIB_ARG = $(OBJ_BASE)\stat\wlib.arg 70 71# In order to process Makefile.inc wmake must be called with -u switch! 72!ifneq __MAKEOPTS__ -u 73!error You MUST call wmake with the -u switch! 74!else 75!include src\lib\Makefile.inc 76!endif 77 78OBJS = $(CSOURCES:.c=.obj) 79OBJS = $OBJ_DIR\$(OBJS: = $OBJ_DIR\) 80 81# 82# Use $(OBJS) as a template to generate $(OBJS_STAT) and $(OBJS_DYN). 83# 84OBJ_DIR = $(OBJ_BASE)\stat 85OBJS_STAT = $+ $(OBJS) $- 86 87OBJ_DIR = $(OBJ_BASE)\dyn 88OBJS_DYN += $(OBJS) $- 89 90ARESBUILDH = ares_build.h 91RESOURCE = $(OBJ_BASE)\dyn\cares.res 92ARESBUILDH = include\ares_build.h 93 94all: $(ARESBUILDH) $(OBJ_BASE) $(TARGETS) $(DEMOS) .SYMBOLIC 95 @echo Welcome to cares 96 97$(OBJ_BASE): 98 -$(MD) $^@ 99 -$(MD) $^@\stat 100 -$(MD) $^@\dyn 101 -$(MD) $^@\tools 102 103$(ARESBUILDH): .EXISTSONLY 104 @echo Make sure to run buildconf.bat! 105 106$(LIBNAME).dll: $(OBJS_DYN) $(RESOURCE) $(LINK_ARG) 107 $(LD) name $^@ @$]@ 108 109$(LIBNAME).lib: $(OBJS_STAT) $(LIB_ARG) 110 $(AR) -q -b -c $^@ @$]@ 111 112$(OBJ_BASE)\tools\ares_getopt.obj: 113 $(CC) $(CFLAGS) -DCARES_STATICLIB .\src\tools\ares_getopt.c -fo=$^@ 114 115adig.exe: $(OBJ_BASE)\tools\ares_getopt.obj $(LIBNAME).lib 116 $(CC) $(CFLAGS) src\tools\adig.c -fo=$(OBJ_BASE)\tools\adig.obj 117 $(LD) name $^@ system nt $(LFLAGS) file { $(OBJ_BASE)\tools\adig.obj $[@ } library $]@, ws2_32.lib, iphlpapi.lib 118 119ahost.exe: $(OBJ_BASE)\tools\ares_getopt.obj $(LIBNAME).lib 120 $(CC) $(CFLAGS) src\tools\ahost.c -fo=$(OBJ_BASE)\tools\ahost.obj 121 $(LD) name $^@ system nt $(LFLAGS) file { $(OBJ_BASE)\tools\ahost.obj $[@ } library $]@, ws2_32.lib, iphlpapi.lib 122 123clean: .SYMBOLIC 124 -$(RM) $(OBJS_STAT) 125 -$(RM) $(OBJS_DYN) 126 -$(RM) $(RESOURCE) $(LINK_ARG) $(LIB_ARG) 127 128vclean realclean: clean .SYMBOLIC 129 -$(RM) $(TARGETS) $(LIBNAME).map 130 -$(RM) $(DEMOS) $(DEMOS:.exe=.map) 131 -$(RD) $(OBJ_BASE)\stat 132 -$(RD) $(OBJ_BASE)\dyn 133 -$(RD) $(OBJ_BASE)\tools 134 -$(RD) $(OBJ_BASE) 135 136.ERASE 137.c: .\src\lib 138 139.ERASE 140$(RESOURCE): src\lib\cares.rc .AUTODEPEND 141 $(RC) $(DEBUG) -q -r -zm -I..\include $(SYS_INCL) $[@ -fo=$^@ 142 143.ERASE 144.c{$(OBJ_BASE)\dyn}.obj: 145 $(CC) $(CFLAGS) -bd .\src\lib\$^& -fo=$^@ 146 147.ERASE 148.c{$(OBJ_BASE)\stat}.obj: 149 $(CC) $(CFLAGS) -DCARES_STATICLIB .\src\lib\$^& -fo=$^@ 150 151$(LINK_ARG): $(__MAKEFILES__) 152 %create $^@ 153 @%append $^@ system nt dll 154 @%append $^@ file { $(OBJS_DYN) } 155 @%append $^@ option res=$(RESOURCE), implib=$(LIBNAME)_imp.lib 156 @%append $^@ $(LFLAGS) 157 @%append $^@ libpath $(SYS_LIBS) 158# @%append $^@ library clib3r.lib 159!ifdef %use_watt32 160 @%append $^@ library $(%watt_root)\lib\wattcpw_imp.lib 161!else 162 @%append $^@ library ws2_32.lib 163 @%append $^@ library iphlpapi.lib 164!endif 165 166$(LIB_ARG): $(__MAKEFILES__) 167 %create $^@ 168 @for %f in ($(OBJS_STAT)) do @%append $^@ +- %f 169 170 171