#
# Makefile for sample DTM server
#
# $Log: makefile,v $
# Revision 1.19  1991/11/22  21:35:04  jplevyak
# Fixed up handling of special SGI library.
#
# Revision 1.18  1991/11/04  17:06:43  sreedhar
# added stub.c
#
# Revision 1.17  1991/11/01  14:52:24  jplevyak
# Fix installation.
#
# Revision 1.16  91/10/31  17:17:33  jplevyak
# Fix up installation to used DIR parameter.
# 
# Revision 1.15  1991/10/31  16:57:57  jplevyak
# Fixed to allow access to internal headers.
#
# Revision 1.14  1991/10/30  22:56:09  sreedhar
# -lsun is for sgi
#
# Revision 1.13  1991/10/30  22:52:24  sreedhar
# handling case of INT_LIBS  for sun - individual case for each machine
#
# Revision 1.11  1991/10/30  21:22:47  sreedhar
# pathname DTMINC, DTMLIB reflect structure under /usr/local/netdev
#
# Revision 1.10  1991/10/30  15:37:14  sreedhar
# DTMINC, DTMLIB paths corrected
#
# Revision 1.9  1991/10/29  16:50:02  jplevyak
# Fixed for new directory structure.
#
# Revision 1.8  91/10/29  17:15:26  jplevyak
# Modified to link with the correct library on the sgi
# 
# Revision 1.7  91/10/22  18:55:18  jplevyak
# Fix minor problem with specific versions.
# 
# Revision 1.6  1991/10/21  17:37:22  jplevyak
# Adapted for use on cray.
#
# Revision 1.5  91/10/17  12:28:13  jplevyak
# Fixed bug with building of reader & writer.
# 
# Revision 1.4  1991/10/16  11:34:10  jplevyak
# New version of makefile, works with SGIs
#
# Revision 1.3  1991/10/15  18:17:46  jplevyak
# New version of makefile, requires that you touch make.depend.ARCH.
# Run 'make depend' periodically to be assured that you dependacies
# will be updated.
#
# Revision 1.2  1991/10/14  15:27:30  jefft
# Added clean option
#
# Revision 1.1  1991/10/11  23:16:04  jefft
# Initial revision
#
#
#

#	First "touch make.depend.$(ARCH)" and then invoke
#	make "ARCH=.convex" etc. to built appropriate module

.SUFFIXES:	$(ARCH).o

SHELL = /bin/sh
DTMINC = ../libsrc
DTMLIB = ../../../lib/libdtm.a
DTMLIB_SPEC = ../../../lib/libdtm$(ARCH).a

CFLAGS = -I$(DTMINC)
YFLAGS = -d
OBJS_SPEC_DIR = o$(ARCH)
OBJS = server.o interp.o scan.o agents.o invoke.o route.o ports.o stub.o
OBJS_SPEC = server$(ARCH).o interp$(ARCH).o scan$(ARCH).o \
	agents$(ARCH).o invoke$(ARCH).o route$(ARCH).o ports$(ARCH).o \
	stub$(ARCH).o
LIBS = $(DTMLIB) -ll
LIBS_SPEC = $(DTMLIB_SPEC) -ll
DEPENDS	= make.depend$(ARCH)

all: server__$(ARCH) reader writer

server__	: server_
server__.sun4 : server_1
server__.sgi : server_2
server__.cray : server_1
server__.ibm : server_1
server__.convex : server_1
server__.dec : server_1
server_.vax : server_1

spec: all_spec
all_spec:	server_$(ARCH) reader_$(ARCH) writer_$(ARCH) 

%$(ARCH).o: %.c 
	$(CC) $(CFLAGS) -c $< -o $@ 

.c$(ARCH).o : $$
	$(CC) $(CFLAGS) -c $< -o $@

.c.o : $$
	$(CC) $(CFLAGS) -c $< 

interp.c: interp.y
	$(YACC) $(YFLAGS) interp.y
	mv y.tab.c $@

scan$(ARCH).o: scan.l y.tab.h
	$(LEX) -t scan.l > scan.c 
	$(CC) $(CFLAGS) -c scan.c -o scan$(ARCH).o
	rm scan.c

scan.o: scan.l y.tab.h
	$(LEX) -t scan.l > scan.c
	$(CC) $(CFLAGS) -c scan.c
	rm scan.c

reader: reader.c $(DTMLIB)
	$(CC) $(CFLAGS) -o $@ reader.c $(DTMLIB)

writer: writer.c $(DTMLIB)
	$(CC) $(CFLAGS) -o $@ writer.c $(DTMLIB)

servercom:: 
	$(CC) $(CFLAGS) -o server $(OBJS) $(LIBS) $(INT_LIBS)

server_1: server.c $(OBJS) $(DTMLIB)
	make servercom

server_2: server.c $(OBJS) $(DTMLIB)
	make servercom "INT_LIBS = -lsun" 

reader_$(ARCH): reader.c $(DTMLIB_SPEC) $(OBJS_SPEC)
	$(CC) $(CFLAGS) -o reader$(ARCH) reader.c $(LIBS_SPEC)

writer_$(ARCH): writer.c $(DTMLIB_SPEC) $(OBJS_SPEC)
	$(CC) $(CFLAGS) -o writer$(ARCH) writer.c $(LIBS_SPEC)

server_int::
	$(CC) $(CFLAGS) -o server$(ARCH) $(OBJS_SPEC) $(LIBS_SPEC) $(INT_LIBS)

server_$(ARCH): server.c $(DTMLIB_SPEC) $(OBJS_SPEC)
	if [ -f /usr/lib/libsun.a ] ; then  make server_int "INT_LIBS = -lsun" ; else make server_int ; fi

$(DTMLIB):

clean:
	-rm *.o server scan.c interp.c y.tab.h reader writer

install:
	cp reader writer server $(DIR)/bin

depend:
	makedepend -f $(DEPENDS) -I$(DTMINC) *.c
	sed -e "s/\.o/$(ARCH).o/1w .depend.temp" -e "d" < $(DEPENDS)
	cat .depend.temp >> $(DEPENDS)

include $(DEPENDS)
