# P4 makefile for IBM SP-1
P4ARCH = SP1
AR = ar ruv
FC = xlf
CLINKER = cc 
FLINKER = xlf -bnso -bI:/lib/syscalls.exp
RANLIB = true
MDEP_LIBS = -lbsd
MDEP_CFLAGS = 
MDEP_FFLAGS = -qextname 
P4_OBJ = $(P4_COMM_OBJ) $(P4_SOCK_OBJ) $(P4_SHMEM_OBJ)

RM = /bin/rm

CFLAGS = -g -I$(INCLUDEDIR) $(MDEP_CFLAGS) $(USER_CFLAGS)

FFLAGS = -g -I$(FORTLIBDIR) $(MDEP_FFLAGS)

.SUFFIXES:	.o .c .f .h

.c.o:$(P)
	$(CC) $(CFLAGS) -c $*.c 

.f.o:$(P)
	$(FC) $(FFLAGS) -c $*.f 

dummy:	default

clean:
	$(RM) -f *~ *.o *.bak tags TAGS core

P4_HOME_DIR = ..
INCLUDEDIR = $(P4_HOME_DIR)/include
LIBDIR = $(P4_HOME_DIR)/lib

LIBS = $(LIBDIR)/libp4.a $(MDEP_LIBS)

default:$(P)
	make $(MFLAGS) dirtest sr1_test systest

all:$(P)
	make $(MFLAGS) dirtest systest 
	make $(MFLAGS) sr_master sr_slave 
	make $(MFLAGS) grid_master grid_slave

dirtest:$(P) dirtest.o $(LIBDIR)/libp4.a
	$(CLINKER) $(CFLAGS) -o dirtest dirtest.o $(LIBS)

sr1_test:$(P) sr1_test.o $(LIBDIR)/libp4.a
	$(CLINKER) $(CFLAGS) -o sr1_test sr1_test.o $(LIBS)

systest:$(P) systest.o $(LIBDIR)/libp4.a
	$(CLINKER) $(CFLAGS) -o $@ systest.o $(LIBS)

grid_master:$(P) grid_master.o grid_slave.o grid_comm.o $(LIBDIR)/libp4.a
	$(CLINKER) $(CFLAGS) -o grid_master grid_master.o grid_slave.o \
	grid_comm.o $(LIBS)

grid_slave:$(P) slave_main.o grid_slave.o grid_comm.o $(LIBDIR)/libp4.a
	$(CLINKER) $(CFLAGS) -o grid_slave slave_main.o grid_slave.o \
	grid_comm.o $(LIBS)

vec_master:$(P) vec_master.o vec_slave.o $(LIBDIR)/libp4.a
	$(CLINKER) $(CFLAGS) -o vec_master vec_master.o vec_slave.o \
	$(LIBS)

vec_slave:$(P) slave_main.o vec_slave.o $(LIBDIR)/libp4.a
	$(CLINKER) $(CFLAGS) -o vec_slave slave_main.o vec_slave.o $(LIBS)

sr_master:$(P) sr_master.o sr_slave.o $(LIBDIR)/libp4.a
	$(CLINKER) $(CFLAGS) -o sr_master sr_master.o sr_slave.o $(LIBS)

sr_slave:$(P) slave_main.o sr_slave.o $(LIBDIR)/libp4.a
	$(CLINKER) $(CFLAGS) -o sr_slave slave_main.o sr_slave.o $(LIBS)

realclean: clean
	$(RM) -f dirtest sr1_test systest grid_master grid_slave \
	vec_master vec_slave sr_master sr_slave Makefile alogfile.p*
