# Author: Brad Clements, bkc@omnigate.clarkson.edu   
# 1/28/89
# This makefile requires using the make program that comes w/ turbo C 2.0
# assumes you are using masm, not tasm. Change the -E of cflags if you want
# also assumes tlink 
# Works with nmake too 
#
CFLAGS= /nologo /W3 /Ocegilt /Gs /G2 /Alfw /ND LIBTCP_DATA /NT LIBTCP_TEXT /c /I..\h
#CFLAGS= /nologo /Ocegilt /Gs /Fs /Fa /G2 /Alfw /ND LIBTCP_DATA /NT LIBTCP_TEXT /c /I..\h
EFLAGS= /nologo /Ocegilt /Gs /G2 /Alfu /ND LIBTCP_DATA /NT LIBTCP_TEXT /c /I..\h
#EFLAGS= /nologo /Ocegilt /Gs /Fs /Fa /G2 /Alfu /ND LIBTCP_DATA /NT LIBTCP_TEXT /c /I..\h
AFLAGS = /ML /Z /I..\h /T
LFLAGS = /nologo /STACK:10240 /map
ASM    = masm
LIBP   = lib /nologo
.SUFFIXES: .obj

TCPASM=support.obj pkglue.obj  sleep.obj lib.asm
TCPC=arp.obj bootp.obj dlayer.obj icmp.obj ip.obj packet.obj protinit.obj rarp.obj route.obj tcp.obj tools.obj udp.obj 
DEFS=ARP.DEF BOOTP.DEF DLAYER.DEF ICMP.DEF IP.DEF PACKET.DEF PROTINIT.DEF RARP.DEF ROUTE.DEF TCP.DEF TOOLS.DEF UDP.DEF   NET.DEF

TCPLIBFILE=lib.obj
TCPEXTERN=net.obj

TCPLIB=tcp.lib
DOMAINLIB=..\domain\lresolv.obj
#DOMAINLIB=

all: 	funcdef.h	\
	$(TCPLIB)	\
	send.exe	\
 	test.exe        \
	call.exe        \
 	testudp.exe

test.exe: test.obj ..\config\lconfig.obj $(DOMAINLIB) $(TCPLIB)
	link $(LFLAGS) test ..\config\lconfig $(DOMAINLIB),test,test,$(TCPLIB);

call.exe: call.obj ..\config\lconfig.obj $(DOMAINLIB) $(TCPLIB)
	link $(LFLAGS) call ..\config\lconfig $(DOMAINLIB),call,call,$(TCPLIB);

test.obj: test.c
	$(CC) /AL /Oil /G2 /Gs /nologo /I..\h /c test.c

call.obj: call.c
	$(CC) /AL /Oil /G2 /Gs /nologo /I..\h /c call.c

testudp.exe: testudp.obj ..\config\lconfig.obj $(TCPLIB)
	link $(LFLAGS) testudp ..\config\lconfig,testudp,testupd,$(TCPLIB);

testudp.obj: testudp.c
	$(CC) /AL /Ox /G2 /Gs /nologo /I..\h /c testudp.c

send.obj: send.c
	$(CC) /AL /Oil /G2 /Gs /nologo /I..\h /c send.c
 	
send.exe: send.obj
	link $(LFLAGS) send ..\config\lconfig,send,send,$(TCPLIB);

$(TCPLIB): funcdef.h $(TCPASM) $(TCPC) $(TCPLIBFILE) $(TCPEXTERN)

net.obj: net.c
	$(CC) $(EFLAGS) net.c
	$(LIBP) $(TCPLIB) -+ $*;

#libc.obj: libc.c
#	$(CC) $(CFLAGS) libc.c
#	$(LIBP) $(TCPLIB) -+ libc;

.c.obj:
	$(CC) $(CFLAGS) $<
	$(LIBP) $(TCPLIB) -+ $*;

.c.asm:
	$(CC) $(CFLAGS) /Fs /Fa $<

.asm.obj:
	$(ASM) $(AFLAGS) $*,$*,nul;
	$(LIBP) $(TCPLIB) -+ $*;

.c.def: 
	echo #define MSDOS_H > funcdef.h
	$(CC) $(CFLAGS) /Zg $*.c > $*.def
	del funcdef.h

funcdef.h: $(DEFS)
	echo #ifndef FUNCS_H > funcdef.h
	echo #define FUNCS_H >> funcdef.h
	echo #include "asmfiles.h" >> funcdef.h
	sed -e "/static/d" -e /_TimeStamp/d -e "s/.*DEF://" *.def >> funcdef.h
	echo #endif >> funcdef.h

clean:
	-del *.obj
	-del *.def
	-del *.map
	-del *.bak
	
cleanall: clean
	-del $(TCPLIB)
        -del funcdef.h
	-del *.exe		
