# Description file for 68000 UNIX

# mch and ureg have code that must have bit 14 of the address
# set because they access the mmu registers yet are referenced via them.
# This is why the starting address is C000 and why they MUST REMAIN FIRST
# in the `KERNEL' define below.
# This value is hard-coded into the RESTART ioctl used by reboot.
# It's bit 14 because there are 14 bits worth of ROM (ie 8K words).

S	=alm
M	=SUN
V1	=v5
V2	=68
HOST	=happy

FIX	=fixbin68
SYNC	=
MMU	=/v/sys/$M/sys
GEN	=/v/sys/GEN/sys
GENnet	=/v/sys/GENnet/sys
NET	=/v/sys/NET/sys
SPECIFIC=/v/sys/$S/sys
INCLUDE	=-I/v/test/dist/$S/usr/include -I/v/test/dist/dist/usr/include -I$(SPECIFIC)/h
TTY	=0
TTY	=1

CC	=cc$(V1)
CC	=cc$(V1)net $(HOST)
AS	=as$(V2)
LD	=ld$(V2)
SHELL	=/bin/sh
RELOC	=C000
LIB	=-l$(V1)c

#Enable/disable the next five lines for compiling on target 68000/(VAX or pippin)
#MMU	=/usr/src/sys
#GEN	=/usr/src/sys
#NET	=/usr/src/sys
#SPECIFIC=/usr/src/sys
#INCLUDE=

#Enable/disable the next five lines for compiling on any 68000/VAX
#FIX	=size
#SYNC	=sync; sync
#V1	=
#V2	=
#CC	=cc$(V1)

SYS	=unix
NODE	=alm
REL	=5.0
VER	=rl
MACH	=m68000
DEFS	=-DNONSCATLOAD -DKERNEL -Uvax -Dmc68000 -DUCB_NET
OOPT	=BPS
V	=-v
CFLAGS	=$(DEFS) $(INCLUDE) -O$(OOPT) $(V)
LFLAGS	=-R $(RELOC) -d -x

SFILES=	mch.s ivec.s

CCONFIG=conf.c config.c linesw.c machdep.c name.c
CDEV=	bm.c co.c cv.c kb.c l1.c l2.c lp.c ms.c rtc.c \
	priam.c pro.c rom_mon.c scc.c sk.c  sony.c tecmar.c vt100.c
CMMU=	$(MMU)/bio.c ./cxureg.c $(MMU)/main.c \
	$(MMU)/malloc.c mem.c ./shm.c $(MMU)/sig.c \
	$(MMU)/slp.c $(MMU)/sys1.c $(MMU)/sys4.c $(MMU)/text.c
CGEN=	$(GEN)/acct.c $(GEN)/alloc.c $(GEN)/clist.c \
	$(GEN)/clock.c $(GEN)/dsort.c $(GEN)/err.c $(GEN)/errlog.c \
	$(GEN)/fio.c $(GEN)/iget.c $(GEN)/ipc.c \
	$(GEN)/lock.c $(GEN)/locking.c $(GEN)/msg.c \
	$(GEN)/nami.c $(GEN)/partab.c $(GEN)/pipe.c \
	$(GEN)/prf.c $(GEN)/rdwri.c $(GEN)/sem.c \
	$(GEN)/subr.c $(GEN)/sys.c $(GEN)/sys2.c \
	$(GEN)/sys3.c $(GEN)/sysent.c $(GEN)/trap.c \
	$(GEN)/tt$(TTY).c $(GEN)/tty.c $(GEN)/utssys.c
CGENnet=$(GENnet)/syslocal.c $(GENnet)/pty.c \
        $(GENnet)/mbuf.c $(GENnet)/netipc.c \
        $(GENnet)/proto.c $(GENnet)/socket.c $(GENnet)/socketsubr.c
CNONET=	$(NET)/fnet.c fnetlocal.c
CNETFILES= $(NET)/af.c $(NET)/if.c ./if_eb.c $(NET)/if_loop.c \
        $(NET)/if_ether.c $(NET)/in.c \
	$(NET)/in_cksum.c $(NET)/in_pcb.c $(NET)/ip_icmp.c $(NET)/ip_input.c \
        $(NET)/ip_output.c $(NET)/raw_cb.c \
        $(NET)/raw_ip.c $(NET)/raw_usrreq.c \
        $(NET)/route.c $(NET)/tcp_debug.c $(NET)/tcp_input.c \
        $(NET)/tcp_output.c $(NET)/tcp_subr.c $(NET)/tcp_timer.c \
        $(NET)/tcp_usrreq.c $(NET)/udp_usrreq.c
CFILES=	$(CCONFIG) $(CDEV) $(CMMU) $(CGEN) $(CGENnet) $(CNETFILES)
CNONETFILES=	$(CCONFIG) $(CDEV) $(CMMU) $(CGEN) $(CNONET)

NETSYS=	syslocal.o pty.o mbuf.o
IPC=	netipc.o socket.o socketsubr.o proto.o
TCP=	tcp_output.o tcp_input.o tcp_timer.o
IP=	af.o ip_icmp.o ip_input.o ip_output.o in.o in_pcb.o in_cksum.o
IF=	if.o if_loop.o if_eb.o if_ether.o
USR=	udp_usrreq.o raw_cb.o raw_ip.o raw_usrreq.o tcp_usrreq.o tcp_subr.o \
	tcp_debug.o route.o
NETOBJS=$(NETSYS) $(IPC) $(TCP) $(IP) $(IF) $(USR)
FNETOBJS=fnet.o fnetlocal.o

KERNEL=	mch.o cxureg.o \
	acct.o alloc.o bio.o clist.o clock.o dsort.o \
	err.o errlog.o fio.o iget.o ipc.o lock.o locking.o \
	machdep.o main.o malloc.o mem.o msg.o nami.o partab.o \
	pipe.o prf.o rdwri.o sem.o shm.o sig.o slp.o subr.o \
	sys.o sys1.o sys2.o sys3.o sys4.o sysent.o \
	text.o trap.o tt$(TTY).o tty.o utssys.o

SKERNEL=mch.o cxureg.o \
	acct.o alloc.o bio.o clist.o clock.o dsort.o \
	err.o errlog.o fio.o iget.o ipc.o lock.o locking.o \
	machdep.o main.o malloc.o mem.o msg.o nami.o partab.o \
	pipe.o prf.o rdwri.o sem.o shm.o sig.o s_slp.o subr.o \
	sys.o sys1.o sys2.o sys3.o sys4.o sysent.o \
	text.o trap.o tt$(TTY).o tty.o utssys.o

# Normal configuration files.
CONFIG= conf.o config.o linesw.o ivec.o \
	bm.o co.o cv.o kb.o l1.o l2.o lp.o ms.o rtc.o \
	priam.o pro.o rom_mon.o scc.o sk.o sony.o tecmar.o vt100.o name.o

# Configuration files for sunix (startup unix which uses
# Sony root device and asks for the swap device).
CONFIGS=reinit.o s_conf.o s_config.o linesw.o ivec.o \
	bm.o s_co.o cv.o s_kb.o l1.o l2.o lp.o ms.o rtc.o \
	priam.o pro.o rom_mon.o scc.o sk.o sony.o tecmar.o vt100.o name.o

# Configuration files for unix.su (single-user unix).
CONFIGSU= conf.o config.o linesw.o ivec.o \
	bm.o co.o cv.o kb.o l1.o l2.o lp.o ms.o rtc.o \
	priam.o pro.o rom_mon.o scc.su.o sk.o sony.o tecmar.su.o vt100.o name.o

#VAX=	vax:/v/sys/alm

.c.o:
	$(CC) $(CFLAGS) -c $<
	@$(LD) -r -x $@ ; mv a.out $@

all:	unix.net

# Remove name.o before doing a make distrib
# Be sure to distribute reboot with sunix
distrib:reboot unix.net unix.nonet unix.su

#upload:
#	rcp unix.net $(VAX)/unix.net
#	rcp unix.nonet $(VAX)/unix.nonet
#	rcp unix.su $(VAX)/unix.su
#	rcp sunix $(VAX)/sunix
#	rcp reboot $(VAX)/reboot

tags:	$(CFILES)
	ctags $(CFILES)

xtags:
	ctags -x $(CFILES) > xref

unix.net:	unix.o net.o $(CONFIG)
	$(LD) -o unix.net $(LFLAGS) unix.o net.o $(CONFIG) $(LIB)
	$(FIX) unix.net
	$(SYNC)
	echo ""

xunix:	$(KERNEL) $(NETOBJS) $(CONFIG)
	$(LD) -o xunix $(LFLAGS) $(KERNEL) $(NETOBJS) $(CONFIG) $(LIB)
	$(FIX) xunix
	$(SYNC)
	echo ""

unix.nonet:	unix.o $(FNETOBJS) $(CONFIG)
	$(LD) -o unix.nonet $(LFLAGS) unix.o $(FNETOBJS) $(CONFIG) $(LIB)
	$(FIX) unix.nonet
	$(SYNC)
	echo ""

# Startup unix.
sunix:	sunix.o $(FNETOBJS) $(CONFIGS)
	$(LD) -o sunix $(LFLAGS) sunix.o $(FNETOBJS) $(CONFIGS) $(LIB)
	$(SYNC)
	echo ""

nmaddrs.h:	sunix
	nm -n sunix | egrep 'rootdev|pipedev|dumpdev|swapdev|nswap' | \
		sed -e '/rootdev/s/^/#define ROOTDEV 0x/' \
			-e '/rootdev/s/ D _rootdev//' \
			-e '/pipedev/s/^/#define PIPEDEV 0x/' \
			-e '/pipedev/s/ D _pipedev//' \
			-e '/dumpdev/s/^/#define DUMPDEV 0x/' \
			-e '/dumpdev/s/ D _dumpdev//' \
			-e '/swapdev/s/^/#define SWAPDEV 0x/' \
			-e '/swapdev/s/ D _swapdev//' \
			-e '/nswap/s/^/#define NSWAP 0x/' \
			-e '/nswap/s/ D _nswap//' > nmaddrs.h

reboot:	nmaddrs.h reboot.c
	$(CC) $(INCLUDE) -O -v reboot.c -o reboot

mkfspm:	mkfspm.c
	$(CC) $(INCLUDE) -O -v mkfspm.c -o mkfspm

# Single-user unix.
unix.su:	unix.o $(FNETOBJS) $(CONFIGSU)
	$(LD) -o unix.su $(LFLAGS) unix.o $(FNETOBJS) $(CONFIGSU) $(LIB)
	$(FIX) unix.su
	$(SYNC)
	echo ""

sunix.o:	$(SKERNEL)
	$(LD) -o sunix.o -r $(SKERNEL)

unix.o:	$(KERNEL)
	$(LD) -o unix.o -r $(KERNEL)

net.o:	$(NETOBJS)
	$(LD) -o net.o -r $(NETOBJS)

mch.o:	mch.s
	$(AS) -o mch.o mch.s
	@$(LD) -r -x $@ ; mv a.out $@

ivec.o:	ivec.s
	$(AS) -o ivec.o ivec.s
	@$(LD) -r -x $@ ; mv a.out $@

#name.o:
name.o: makefile /tmp
	$(CC) $(CFLAGS) -c \
		-DSYS=\"`expr $(SYS) : '\(.\{1,8\}\)'`\" \
		-DNODE=\"`expr $(NODE) : '\(.\{1,8\}\)'`\" \
		-DREL=\"`expr $(REL) : '\(.\{1,8\}\)'`\" \
		-DVER=\"`expr $(VER) : '\(.\{1,8\}\)'`\" \
		-DMACH=\"`expr $(MACH) : '\(.\{1,8\}\)'`\" \
		-DTIMESTAMP="\"`date`\"" \
		name.c

#install:
#	mv /unix /ounix
#	cp unix.net /unix
#	chown check /unix
#	chgrp check /unix

lint:
	@echo Linting...
	@lint $(DEFS) $(INCLUDE) Locore.c $(CFILES)

lintnonet:
	@echo Linting...
	@lint $(DEFS) $(INCLUDE) Locore.c $(CNONETFILES)

s_co.o:		s_co.c
	$(CC) $(CFLAGS) -DSUNIX -c s_co.c
	@$(LD) -r -x $@ ; mv a.out $@
s_conf.o:	s_conf.c
	$(CC) $(CFLAGS) -DSUNIX -c s_conf.c
	@$(LD) -r -x $@ ; mv a.out $@
s_config.o:	s_config.c
	$(CC) $(CFLAGS) -DSUNIX -c s_config.c
	@$(LD) -r -x $@ ; mv a.out $@
s_kb.o:		s_kb.c
	$(CC) $(CFLAGS) -DSUNIX -c s_kb.c
	@$(LD) -r -x $@ ; mv a.out $@
scc.su.o:	scc.su.c
	$(CC) $(CFLAGS) -DSINGLEUSER -c scc.su.c
	@$(LD) -r -x $@ ; mv a.out $@
tecmar.su.o:	tecmar.su.c
	$(CC) $(CFLAGS) -DSINGLEUSER -c tecmar.su.c
	@$(LD) -r -x $@ ; mv a.out $@

bio.o:		$(MMU)/bio.c
	$(CC) $(CFLAGS) -c $(MMU)/bio.c
	@$(LD) -r -x $@ ; mv a.out $@
cxureg.o:	./cxureg.c
	$(CC) $(CFLAGS) -c ./cxureg.c
	@$(LD) -r -x $@ ; mv a.out $@
main.o:		$(MMU)/main.c
	$(CC) $(CFLAGS) -c $(MMU)/main.c
	@$(LD) -r -x $@ ; mv a.out $@
malloc.o:	$(MMU)/malloc.c
	$(CC) $(CFLAGS) -c $(MMU)/malloc.c
	@$(LD) -r -x $@ ; mv a.out $@
mem.o:		mem.c
	$(CC) $(CFLAGS) -c mem.c
	@$(LD) -r -x $@ ; mv a.out $@
shm.o:		./shm.c
	$(CC) $(CFLAGS) -c ./shm.c
	@$(LD) -r -x $@ ; mv a.out $@
sig.o:		$(MMU)/sig.c
	$(CC) $(CFLAGS) -c $(MMU)/sig.c
	@$(LD) -r -x $@ ; mv a.out $@
s_slp.o:	s_slp.c
	$(CC) $(CFLAGS) -c s_slp.c
	@$(LD) -r -x $@ ; mv a.out $@
slp.o:		$(MMU)/slp.c
	$(CC) $(CFLAGS) -c $(MMU)/slp.c
	@$(LD) -r -x $@ ; mv a.out $@
sys1.o:		$(MMU)/sys1.c
	$(CC) $(CFLAGS) -c $(MMU)/sys1.c
	@$(LD) -r -x $@ ; mv a.out $@
sys4.o:		$(MMU)/sys4.c
	$(CC) $(CFLAGS) -c $(MMU)/sys4.c
	@$(LD) -r -x $@ ; mv a.out $@
text.o:		$(MMU)/text.c
	$(CC) $(CFLAGS) -c $(MMU)/text.c
	@$(LD) -r -x $@ ; mv a.out $@

acct.o:		$(GEN)/acct.c
	$(CC) $(CFLAGS) -c $(GEN)/acct.c
	@$(LD) -r -x $@ ; mv a.out $@
alloc.o:	$(GEN)/alloc.c
	$(CC) $(CFLAGS) -c $(GEN)/alloc.c
	@$(LD) -r -x $@ ; mv a.out $@
clist.o:	$(GEN)/clist.c
	$(CC) $(CFLAGS) -c $(GEN)/clist.c
	@$(LD) -r -x $@ ; mv a.out $@
clock.o:	$(GEN)/clock.c
	$(CC) $(CFLAGS) -c $(GEN)/clock.c
	@$(LD) -r -x $@ ; mv a.out $@
dsort.o:	$(GEN)/dsort.c
	$(CC) $(CFLAGS) -c $(GEN)/dsort.c
	@$(LD) -r -x $@ ; mv a.out $@
err.o:		$(GEN)/err.c
	$(CC) $(CFLAGS) -c $(GEN)/err.c
	@$(LD) -r -x $@ ; mv a.out $@
errlog.o:	$(GEN)/errlog.c
	$(CC) $(CFLAGS) -c $(GEN)/errlog.c
	@$(LD) -r -x $@ ; mv a.out $@
fio.o:		$(GEN)/fio.c
	$(CC) $(CFLAGS) -c $(GEN)/fio.c
	@$(LD) -r -x $@ ; mv a.out $@
iget.o:		$(GEN)/iget.c
	$(CC) $(CFLAGS) -c $(GEN)/iget.c
	@$(LD) -r -x $@ ; mv a.out $@
ipc.o:		$(GEN)/ipc.c
	$(CC) $(CFLAGS) -c $(GEN)/ipc.c
	@$(LD) -r -x $@ ; mv a.out $@
lock.o:		$(GEN)/lock.c
	$(CC) $(CFLAGS) -c $(GEN)/lock.c
	@$(LD) -r -x $@ ; mv a.out $@
locking.o:	$(GEN)/locking.c
	$(CC) $(CFLAGS) -c $(GEN)/locking.c
	@$(LD) -r -x $@ ; mv a.out $@
msg.o:		$(GEN)/msg.c
	$(CC) $(CFLAGS) -c $(GEN)/msg.c
	@$(LD) -r -x $@ ; mv a.out $@
nami.o:		$(GEN)/nami.c
	$(CC) $(CFLAGS) -c $(GEN)/nami.c
	@$(LD) -r -x $@ ; mv a.out $@
partab.o:	$(GEN)/partab.c
	$(CC) $(CFLAGS) -c $(GEN)/partab.c
	@$(LD) -r -x $@ ; mv a.out $@
pipe.o:		$(GEN)/pipe.c
	$(CC) $(CFLAGS) -c $(GEN)/pipe.c
	@$(LD) -r -x $@ ; mv a.out $@
prf.o:		$(GEN)/prf.c
#	$(CC) $(CFLAGS) -c -DPRINTFSTALL=30000 $(GEN)/prf.c
	$(CC) $(CFLAGS) -c $(GEN)/prf.c
	@$(LD) -r -x $@ ; mv a.out $@
rdwri.o:	$(GEN)/rdwri.c
	$(CC) $(CFLAGS) -c $(GEN)/rdwri.c
	@$(LD) -r -x $@ ; mv a.out $@
sem.o:		$(GEN)/sem.c
	$(CC) $(CFLAGS) -c $(GEN)/sem.c
	@$(LD) -r -x $@ ; mv a.out $@
subr.o:		$(GEN)/subr.c
	$(CC) $(CFLAGS) -c $(GEN)/subr.c
	@$(LD) -r -x $@ ; mv a.out $@
sys.o:		$(GEN)/sys.c
	$(CC) $(CFLAGS) -c $(GEN)/sys.c
	@$(LD) -r -x $@ ; mv a.out $@
sys2.o:		$(GEN)/sys2.c
	$(CC) $(CFLAGS) -c $(GEN)/sys2.c
	@$(LD) -r -x $@ ; mv a.out $@
sys3.o:		$(GEN)/sys3.c
	$(CC) $(CFLAGS) -c $(GEN)/sys3.c
	@$(LD) -r -x $@ ; mv a.out $@
sysent.o:	$(GEN)/sysent.c
	$(CC) $(CFLAGS) -c $(GEN)/sysent.c
	@$(LD) -r -x $@ ; mv a.out $@
trap.o:		$(GEN)/trap.c
	$(CC) $(CFLAGS) -c $(GEN)/trap.c
	@$(LD) -r -x $@ ; mv a.out $@
tt$(TTY).o:	$(GEN)/tt$(TTY).c
	$(CC) $(CFLAGS) -c $(GEN)/tt$(TTY).c
	@$(LD) -r -x $@ ; mv a.out $@
tty.o:		$(GEN)/tty.c
	$(CC) $(CFLAGS) -c $(GEN)/tty.c
	@$(LD) -r -x $@ ; mv a.out $@
utssys.o:	$(GEN)/utssys.c
	$(CC) $(CFLAGS) -c $(GEN)/utssys.c
	@$(LD) -r -x $@ ; mv a.out $@

mbuf.o:		$(GENnet)/mbuf.c
	$(CC) $(CFLAGS) -c $(GENnet)/mbuf.c
	@$(LD) -r -x $@ ; mv a.out $@
netipc.o:	$(GENnet)/netipc.c
	$(CC) $(CFLAGS) -c $(GENnet)/netipc.c
	@$(LD) -r -x $@ ; mv a.out $@
proto.o:	$(GENnet)/proto.c
	$(CC) $(CFLAGS) -c $(GENnet)/proto.c
	@$(LD) -r -x $@ ; mv a.out $@
pty.o:		$(GENnet)/pty.c
	$(CC) $(CFLAGS) -c $(GENnet)/pty.c
	@$(LD) -r -x $@ ; mv a.out $@
socket.o:	$(GENnet)/socket.c
	$(CC) $(CFLAGS) -c $(GENnet)/socket.c
	@$(LD) -r -x $@ ; mv a.out $@
socketsubr.o:	$(GENnet)/socketsubr.c
	$(CC) $(CFLAGS) -c $(GENnet)/socketsubr.c
	@$(LD) -r -x $@ ; mv a.out $@
syslocal.o:	$(GENnet)/syslocal.c
	$(CC) $(CFLAGS) -c $(GENnet)/syslocal.c
	@$(LD) -r -x $@ ; mv a.out $@

af.o:		$(NET)/af.c
	$(CC) $(CFLAGS) -c $(NET)/af.c
	@$(LD) -r -x $@ ; mv a.out $@
fnet.o:		$(NET)/fnet.c
	$(CC) $(CFLAGS) -c $(NET)/fnet.c
	@$(LD) -r -x $@ ; mv a.out $@
fnetlocal.o:	fnetlocal.c
	$(CC) $(CFLAGS) -c fnetlocal.c
	@$(LD) -r -x $@ ; mv a.out $@
if_loop.o:	$(NET)/if_loop.c
	$(CC) $(CFLAGS) -c $(NET)/if_loop.c
	@$(LD) -r -x $@ ; mv a.out $@
if_eb.o:	./if_eb.c
	$(CC) $(CFLAGS) -c ./if_eb.c
	@$(LD) -r -x $@ ; mv a.out $@
if.o:		$(NET)/if.c
	$(CC) $(CFLAGS) -c $(NET)/if.c
	@$(LD) -r -x $@ ; mv a.out $@
if_ether.o:	$(NET)/if_ether.c
	$(CC) $(CFLAGS) -c $(NET)/if_ether.c
	@$(LD) -r -x $@ ; mv a.out $@
in.o:		$(NET)/in.c
	$(CC) $(CFLAGS) -c $(NET)/in.c
	@$(LD) -r -x $@ ; mv a.out $@
in_cksum.o:	$(NET)/in_cksum.c
	$(CC) $(CFLAGS) -c $(NET)/in_cksum.c
	@$(LD) -r -x $@ ; mv a.out $@
in_pcb.o:	$(NET)/in_pcb.c
	$(CC) $(CFLAGS) -c $(NET)/in_pcb.c
	@$(LD) -r -x $@ ; mv a.out $@
ip_icmp.o:	$(NET)/ip_icmp.c
	$(CC) $(CFLAGS) -c $(NET)/ip_icmp.c
	@$(LD) -r -x $@ ; mv a.out $@
ip_input.o:	$(NET)/ip_input.c
	$(CC) $(CFLAGS) -c $(NET)/ip_input.c
	@$(LD) -r -x $@ ; mv a.out $@
ip_output.o:	$(NET)/ip_output.c
	$(CC) $(CFLAGS) -c $(NET)/ip_output.c
	@$(LD) -r -x $@ ; mv a.out $@
raw_cb.o:	$(NET)/raw_cb.c
	$(CC) $(CFLAGS) -c $(NET)/raw_cb.c
	@$(LD) -r -x $@ ; mv a.out $@
raw_ip.o:	$(NET)/raw_ip.c
	$(CC) $(CFLAGS) -c $(NET)/raw_ip.c
	@$(LD) -r -x $@ ; mv a.out $@
raw_usrreq.o:	$(NET)/raw_usrreq.c
	$(CC) $(CFLAGS) -c $(NET)/raw_usrreq.c
	@$(LD) -r -x $@ ; mv a.out $@
route.o:	$(NET)/route.c
	$(CC) $(CFLAGS) -c $(NET)/route.c
	@$(LD) -r -x $@ ; mv a.out $@
tcp_debug.o:	$(NET)/tcp_debug.c
	$(CC) $(CFLAGS) -c $(NET)/tcp_debug.c
	@$(LD) -r -x $@ ; mv a.out $@
tcp_input.o:	$(NET)/tcp_input.c
	$(CC) $(CFLAGS) -c $(NET)/tcp_input.c
	@$(LD) -r -x $@ ; mv a.out $@
tcp_output.o:	$(NET)/tcp_output.c
	$(CC) $(CFLAGS) -c $(NET)/tcp_output.c
	@$(LD) -r -x $@ ; mv a.out $@
tcp_subr.o:	$(NET)/tcp_subr.c
	$(CC) $(CFLAGS) -c $(NET)/tcp_subr.c
	@$(LD) -r -x $@ ; mv a.out $@
tcp_timer.o:	$(NET)/tcp_timer.c
	$(CC) $(CFLAGS) -c $(NET)/tcp_timer.c
	@$(LD) -r -x $@ ; mv a.out $@
tcp_usrreq.o:	$(NET)/tcp_usrreq.c
	$(CC) $(CFLAGS) -c $(NET)/tcp_usrreq.c
	@$(LD) -r -x $@ ; mv a.out $@
udp_usrreq.o:	$(NET)/udp_usrreq.c
	$(CC) $(CFLAGS) -c $(NET)/udp_usrreq.c
	@$(LD) -r -x $@ ; mv a.out $@
