# The SPIMS software is covered by a license. The use of the software
# represents acceptance of the terms and conditions in the license.
# ******************************************************************
# Copyright (c) 1989, Swedish Institute of Computer Science
############################################################
# Makefile for Protocol Benchmarks - the precompiled OBJ files
############################################################

LINT = lint
LIBES = -lm $(CONFIG_LIBES)
YFLAGS = -d
CFLAGS = -I. -I../h $(CONFIG_CFLAGS)
COPTS = $(CONFIG)
LINTFLAGS = $(CFLAGS) $(COPTS) -c -x


GENERAL_S= ../src/ipc.c ../src/ipc_fd.c ../src/ipc_sig.c \
	../src/ipc_pres.c ../src/ipc_system.c ../src/ipc_remote.c \
	../src/ipc_route.c ../src/ipc_queue.c ../src/ipc_tp_tcp.c \
	../src/bench.c ../src/bench-metr.c \
	../src/bench-alarm.c ../src/bench-stats.c ../src/bench-output.c \
	../src/bench-server.c ../src/bench-subr.c \
	../src/bench-mt2st.c ../src/demon-server.c ../src/demon.c \
	../src/demon-logger.c ../src/demon-subr.c \
	../src/bench-delay.c ../src/client-proc.c \
	../src/client-exec.c ../src/server-proc.c ../src/server-exec.c \
	../src/symbol.c ../src/spec.c \
	../src/lex.c ../src/convert.c ../src/error.c \
	../src/random.c ../src/bio.c ../src/state.c \
	../src/malloc.c ../src/strtod.c \
	bench-auto.c demon-auto.c

GENERAL_SOURCES= ../src/gram.y $(GENERAL_S)
GENERAL_LINT_SOURCES= y.tab.c $(GENERAL_S)

IPC_TRANSPORT_OBJS = ipc_tp_tcp.o

IPCOBJ = ipc.o ipc_fd.o ipc_sig.o ipc_pres.o ipc_system.o ipc_remote.o \
	ipc_route.o ipc_queue.o $(IPC_TRANSPORT_OBJS)

BENCH_OBJECTS = gram.o lex.o \
	bench.o bench-metr.o bench-alarm.o \
	bench-stats.o bench-output.o bench-delay.o \
	bench-server.o bench-subr.o bench-mt2st.o

DEMON_OBJECTS = demon.o demon-server.o demon-logger.o \
	demon-subr.o \
	client-exec.o server-exec.o \
	client-proc.o server-proc.o

COMMON_OBJS = bio.o spec.o symbol.o state.o  \
	error.o convert.o priority.o random.o \
	strtod.o malloc.o

GENERAL_OBJECTS = $(BENCH_OBJECTS) $(IPCOBJ) \
	$(COMMON_OBJS) \
	bench-auto.o


GENERAL_DOBJECTS = $(DEMON_OBJECTS) $(IPCOBJ) \
	$(COMMON_OBJS) \
	bench-metr.o bench-stats.o bench-delay.o \
	bench-mt2st.o bench-output.o \
	demon-auto.o 


########################################
# Not stolen from config/Makefile
########################################

LINT_SOURCES = GENERAL_LINT_SOURCES

# Note: gram.o must be first in order to create y.tab.h!!
OBJS = 	$(BENCH_OBJECTS) $(DEMON_OBJECTS) \
	$(IPCOBJ) $(COMMON_OBJS) 

all:	$(OBJS)


clean:
	rm -f core *~ *.o 

lint:	$(LINT_SOURCES)
	$(LINT) $(LINTFLAGS) $(LINT_SOURCES) $(PROTO_LIBS) $(LIBES) 


############################################################
# Rules for GENERAL_SOURCES
############################################################
gram.o:
	$(YACC) $(YFLAGS) ../src/gram.y
	$(CC) $(CFLAGS) -c y.tab.c
#	rm y.tab.c	# Used by lint
	mv y.tab.o gram.o

bench.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/bench.c
bench-alarm.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/bench-alarm.c
bench-delay.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/bench-delay.c
bench-server.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/bench-server.c
bench-subr.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/bench-subr.c
bench-output.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/bench-output.c
bench-metr.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/bench-metr.c
bench-stats.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/bench-stats.c
bench-mt2st.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/bench-mt2st.c

demon.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/demon.c
demon-server.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/demon-server.c
demon-subr.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/demon-subr.c
demon-logger.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/demon-logger.c

client-proc.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/client-proc.c
client-exec.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/client-exec.c
server-proc.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/server-proc.c
server-exec.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/server-exec.c

ipc.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/ipc.c
ipc_sig.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/ipc_sig.c
ipc_fd.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/ipc_fd.c
ipc_pres.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/ipc_pres.c
ipc_system.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/ipc_system.c
ipc_remote.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/ipc_remote.c
ipc_route.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/ipc_route.c
ipc_queue.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/ipc_queue.c
ipc_tp_tcp.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/ipc_tp_tcp.c
symbol.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/symbol.c
spec.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/spec.c
state.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/state.c
lex.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/lex.c
convert.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/convert.c
error.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/error.c
random.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/random.c
bio.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/bio.c
priority.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/priority.c
strtod.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/strtod.c
malloc.o:
	$(CC) $(CFLAGS) $(COPTS) -c ../src/malloc.c

# bench-auto.c
# demon-auto.c

############################################################
# Dependiencies for GENERAL_SOURCES
############################################################


gram.o y.tab.h: ../src/gram.y
gram.o: ../h/symbol.h ../h/spec.h ../h/error.h
bench.o: ../src/bench.c
bench.o: ../h/general.h ../h/metrics.h ../h/statistics.h ../h/symbol.h 
bench.o: ../h/spec.h y.tab.h ../h/error.h
bench-alarm.o: ../src/bench-alarm.c
bench-alarm.o: ../h/general.h 
bench-delay.o: ../src/bench-delay.c
bench-delay.o: ../h/general.h 
bench-metr.o: ../src/bench-metr.c
bench-metr.o: ../h/general.h ../h/metrics.h  ../h/error.h
bench-stats.o: ../src/bench-stats.c
bench-stats.o: ../h/general.h ../h/metrics.h ../h/statistics.h
bench-stats.o:  ../h/error.h
bench-output.o: ../src/bench-output.c
bench-output.o: ../h/statistics.h
bench-server.o: ../src/bench-server.c
bench-server.o: ../h/general.h ../h/metrics.h ../h/statistics.h ../h/symbol.h 
bench-server.o: ../h/spec.h y.tab.h ../h/error.h
bench-server.o: ../h/ipc_pres.h ../h/ipc.h
bench-subr.o: ../src/bench-subr.c
bench-subr.o: ../h/general.h ../h/metrics.h ../h/statistics.h ../h/symbol.h 
bench-subr.o: ../h/ipc_pres.h ../h/ipc.h
bench-mt2st.o: ../src/bench-mt2st.c
bench-mt2st.o: ../h/general.h ../h/statistics.h ../h/metrics.h
#bench-auto.o: bench-auto.c
bench-auto.o: ../h/general.h ../h/symbol.h ../h/spec.h y.tab.h ../h/error.h

demon.o: ../src/demon.c
demon.o: ../h/general.h 
demon-server.o: ../src/demon-server.c
demon-server.o: ../h/general.h ../h/ipc_pres.h ../h/ipc.h
demon-subr.o: ../src/demon-subr.c
demon-subr.o: ../h/general.h  
demon-subr.o:  ../h/ipc_pres.h ../h/ipc.h
demon-logger.o: ../src/demon-logger.c
demon-logger.o: ../h/general.h   
#bench-auto.o: bench-auto.c
bench-auto.o: ../h/general.h ../h/symbol.h ../h/spec.h y.tab.h ../h/error.h

client-proc.o: ../src/client-proc.c
client-proc.o: ../h/general.h 
client-proc.o:  ../h/ipc_pres.h ../h/ipc.h 
client-exec.o: ../src/client-exec.c
client-exec.o: ../h/general.h 
client-exec.o:  ../h/ipc_pres.h ../h/ipc.h
server-proc.o: ../src/server-proc.c
server-proc.o: ../h/general.h 
server-proc.o:  ../h/ipc_pres.h ../h/ipc.h 
server-exec.o: ../src/server-exec.c
server-exec.o: ../h/general.h  
server-exec.o:  ../h/ipc_pres.h ../h/ipc.h

state.o: ../src/state.c
state.o: ../h/general.h ../h/state.h
symbol.o: ../src/symbol.c
symbol.o: ../h/general.h ../h/symbol.h
symbol.o: ../h/spec.h y.tab.h ../h/error.h
spec.o: ../src/spec.c
spec.o: ../h/general.h ../h/symbol.h
spec.o: ../h/spec.h y.tab.h ../h/error.h
lex.o: ../src/lex.c
lex.o: ../h/general.h ../h/symbol.h ../h/spec.h y.tab.h ../h/error.h

ipc.o: ../src/ipc.c
ipc.o: ../h/ipc.h ../h/ipc_sig.h ../h/general.h 
ipc_sig.o: ../src/ipc_sig.c
ipc_sig.o: ../h/ipc.h ../h/general.h 
ipc_fd.o: ../src/ipc_fd.c
ipc_fd.o:  ../h/ipc.h ../h/general.h 
ipc_sig.o: ../h/ipc.h ../h/ipc_sig.h ../h/general.h 
ipc_pres.o: ../src/ipc_pres.c
ipc_pres.o: ../h/ipc.h ../h/ipc_pres.h ../h/general.h
ipc_pres.o: ../h/statistics.h
ipc_system.o: ../src/ipc_system.c
ipc_system.o: ../h/ipc.h ../h/general.h 
ipc_remote.o: ../src/ipc_remote.c
ipc_remote.o: ../h/ipc.h ../h/general.h 
ipc_route.o: ../src/ipc_route.c
ipc_route.o: ../h/ipc.h ../h/general.h 
ipc_queue.o: ../src/ipc_queue.c
ipc_queue.o: ../h/ipc.h ../h/general.h 
ipc_tp_tcp.o: ../src/ipc_tp_tcp.c
ipc_tp_tcp.o: ../h/ipc.h ../h/general.h 
convert.o: ../src/convert.c
convert.o: ../h/general.h ../h/metrics.h ../h/statistics.h 
error.o: ../src/error.c
error.o: ../h/error.h ../h/general.h
random.o: ../src/random.c
random.o: ../h/general.h
bio.o: ../src/bio.c
bio.o: ../h/bio.h ../h/general.h
priority.o: ../src/priority.c
priority.o: ../h/general.h
strtod.o: ../src/strtod.c
strtod.o: ../h/general.h
malloc.o: ../src/malloc.c
malloc.o: ../h/general.h

