# defines
MAKEFILE=makefile
# MAKEDEP	=$(MAKEFILE)
TCDIR	=c:\tc
BINDIR	=$(TCDIR)\bin
LIBDIR	=$(TCDIR)\lib
MODEL	=s
CC	=$(BINDIR)\tcc -v -O2 -w -m$(MODEL)
AS	=nasm -f obj -g
LD	=$(BINDIR)\tlink /x /c /v
TCP-SRV	=$(LIBDIR)\c0$(MODEL).obj tcp-srv.obj vxdsock.obj callsock.obj
TCP-CLI	=$(LIBDIR)\c0$(MODEL).obj tcp-cli.obj vxdsock.obj callsock.obj
UDP-SRV	=$(LIBDIR)\c0$(MODEL).obj udp-srv.obj vxdsock.obj callsock.obj
UDP-CLI	=$(LIBDIR)\c0$(MODEL).obj udp-cli.obj vxdsock.obj callsock.obj
LIB	=$(LIBDIR)\c$(MODEL).lib

# targets
all : tcp-srv.exe udp-srv.exe udp-cli.exe
# tcp-cli.exe

clean :
	deltree /y *.obj *.o *.exe

# implicit rules
.c.obj :
	$(CC) -c -o$*.obj $<

.asm.obj :
	$(AS) -o$*.obj $<

# dependencies
vxdsock.obj :	vxdsock.c	socket.h	$(MAKEDEP)

tcp-srv.obj :	tcp-srv.c	socket.h	$(MAKEDEP)

udp-srv.obj :	udp-srv.c	socket.h	$(MAKEDEP)

udp-cli.obj :	udp-cli.c	socket.h	$(MAKEDEP)

# explicit rules
tcp-srv.exe : $(TCP-SRV) $(MAKEDEP)
	$(LD) $(TCP-SRV),tcp-srv.exe,,$(LIB)

tcp-cli.exe : $(TCP-CLI) $(MAKEDEP)
	$(LD) $(TCP-CLI),tcp-cli.exe,,$(LIB)

udp-srv.exe : $(UDP-SRV) $(MAKEDEP)
	$(LD) $(UDP-SRV),udp-srv.exe,,$(LIB)

udp-cli.exe : $(UDP-CLI) $(MAKEDEP)
	$(LD) $(UDP-CLI),udp-cli.exe,,$(LIB)
