##
##	Ohio Trollius
##	Copyright 1995 The Ohio State University
##
##	Function:	- lamd
##			- kernel + internal processes
##

DEPTH   = ../../..

##
## global configuration
##
include $(DEPTH)/Config/config

##
## local configuration
##
VPATH	= ../../../otb/sys/lamd:../../../otb/sys/kernel: \
	  $(DEPTH)/share/kernel:$(DEPTH)/share/etc:$(DEPTH)/share/echod: \
	  $(DEPTH)/share/router:../../../otb/sys/router: \
	  $(DEPTH)/share/bufferd:../../../otb/sys/kenyad: \
	  $(DEPTH)/share/bforward:../../../otb/sys/flatd: \
	  ../../../otb/sys/filed:../../../otb/sys/loadd: \
	  ../../../otb/sys/dlo_inet:../../../otb/sys/dli_inet: \
	  $(DEPTH)/share/traced:../../../otb/sys/iod:$(DEPTH)/share/mpi
INCLUDE	= -I$(IDIR) -I../../../otb/sys/filed
DEFS	= -DTO_DLO_ACK=$(TO_DLO_ACK) -DTO_DLO_IDLE=$(TO_DLO_IDLE) \
	  -DTO_DLO_ESTIMATE=$(TO_DLO_ESTIMATE) -DDOMAXRESEND=$(DOMAXRESEND) \
	  -D$(RPI) -D$(SHM) -DRM='"$(RM)"'
LCFLAGS = $(INCLUDE) $(DEFS)
LDFLAGS	= $(LIBBIND)

##
## modules and libraries
##
LIB	= -L$(OLDIR) -largs -ltrillium -lt -lmpi $(SYSLIBS)
BIN	= lamd

KSRC	= couter.c kernelio.c kinner.c kiproc.c kkill.c kouter.c
TSRC	= kexit.c nrecv.c nsend.c rreq.c stub.c trillium.c
RSRC	= router.c rtdinit.lam.c
BFSRC	= bufferd.c
DISRC	= bootsockio.c di_bootagent.c di_bootcmd.c di_wait.int.c dli_inet.c 
DOSRC	= dlo_inet.c do_load.c do_intr.c do_wait.int.c
ESRC	= echod.c
BWSRC	= bforward.c
FLSRC	= flatd.c
LSRC	= loadd.c
PSRC	= kenyad.c pqcreate.c pqdetach.c pqdoom.c pqstate.c rpi.mop.c
FSRC	= fdesc.c fface.c filed.c fqclose.c fqf77.c fqlseek.c fqopen.c \
	  fqread.c fqsimplex.c fqstate.c fqwrite.c fqopenfd.c
TRSRC	= traced.c trbuf.c
IOSRC	= iod.c iod.int.c 
SRC	= $(KSRC) $(RSRC) $(BFSRC) $(DISRC) $(DOSRC) $(ESRC) $(BWSRC) \
	  $(FLSRC) $(LSRC) $(PSRC) $(FSRC) $(TRSRC) $(TSRC) $(IOSRC)

KOBJ	= couter.o kernelio.o kinner.o kiproc.o kkill.o kouter.o
TOBJ	= kexit.o nrecv.o nsend.o rreq.o stub.o trillium.o
ROBJ	= router.o rtdinit.lam.o
BFOBJ	= bufferd.o
DIOBJ	= bootsockio.o di_bootagent.o di_bootcmd.o di_wait.int.o dli_inet.o
DOOBJ	= dlo_inet.o do_load.o do_intr.o do_wait.int.o
EOBJ	= echod.o
BWOBJ	= bforward.o
FLOBJ	= flatd.o
LOBJ	= loadd.o
POBJ	= kenyad.o pqcreate.o pqdetach.o pqdoom.o pqstate.o rpi.mop.o
FOBJ	= fdesc.o fface.o filed.o fqclose.o fqf77.o fqlseek.o fqopen.o \
	  fqread.o fqsimplex.o fqstate.o fqwrite.o fqopenfd.o
TROBJ	= traced.o trbuf.o
IOOBJ	= iod.o iod.int.o 
OBJ	= $(KOBJ) $(ROBJ) $(BFOBJ) $(DIOBJ) $(DOOBJ) $(EOBJ) $(BWOBJ) \
	  $(FLOBJ) $(LOBJ) $(POBJ) $(FOBJ) $(TROBJ) $(TOBJ) $(IOOBJ)


all: $(BIN)

$(BIN): $(OBJ) $(OLDIR)/libt.a $(OLDIR)/libargs.a $(OLDIR)/libtrillium.a \
		$(OLDIR)/libmpi.a
	$(CC) $(LDFLAGS) -o $(BIN) $(OBJ) $(LIB)

install: $(OBDIR)/$(BIN)

$(OBDIR)/$(BIN): $(BIN)
	$(INSTALL) $(BIN) $(OBDIR)/$(BIN)

clean:
	$(RM) $(OBJ) $(BIN)

##
## depend:
##
include	$(DEPTH)/Config/depend

##
## automatic dependencies and rules
##
include Depends
