#
# Custom makefile for PVM example programs.
#
# Set PVM_ROOT to the path where PVM includes and libraries are installed.
# Set PVM_ARCH to your architecture type (SUN4, HP9K, RS6K, SGI, etc.)
# Set ARCHLIB to any special libs needed on PVM_ARCH (-lrpc, -lsocket, etc.)
# otherwise leave ARCHLIB blank
#

ARCHLIB  =	-lcnx_syscall /lib/libail.sl
PVM_ARCH =	CSPP

SDIR	=	..
BDIR	=	$(SDIR)/../bin
XDIR	=	$(BDIR)/$(PVM_ARCH)

CC		=	/usr/convex/bin/cc -Wl,+tmspp1
OPTIONS	=	-cxdb -no -U_REENTRANT
CFLAGS	=	$(OPTIONS) -I$(PVM_ROOT)/include $(ARCHCFLAGS)
LIBS	=	-lpvm3 $(ARCHLIB)
GLIBS	=	-lgpvm3

F77 	=	/usr/convex/bin/fc -Wl,+tmspp1
FFLAGS	=	-cxdb -no
FLIBS	=	-lfpvm3
LFLAGS	=	-Wl,-aarchive -L$(PVM_ROOT)/lib/$(PVM_ARCH)
FPROGS	=	fgexample fmaster1 fslave1 fspmd hitc hitc_slave testall
CPROGS	=	gexample hello hello_other master1 slave1 spmd timing timing_slave nntime

default: hello hello_other

all: c-all f-all

c-all:	$(CPROGS)

f-all:	$(FPROGS)

clean:
	rm -f *.o $(CPROGS) $(FPROGS)

$(XDIR):
	- mkdir $(BDIR)
	- mkdir $(XDIR)

hello: $(SDIR)/hello.c $(XDIR)
	$(CC) $(CFLAGS) -o $@ $(SDIR)/hello.c $(LFLAGS) $(LIBS)
	mv $@ $(XDIR)

hello_other: $(SDIR)/hello_other.c $(XDIR)
	$(CC) $(CFLAGS) -o $@ $(SDIR)/hello_other.c $(LFLAGS) $(LIBS)
	mv $@ $(XDIR)

timing_slave: $(SDIR)/timing_slave.c $(XDIR)
	$(CC) $(CFLAGS) -o $@ $(SDIR)/timing_slave.c $(LFLAGS) $(LIBS)
	mv $@ $(XDIR)

timing: $(SDIR)/timing.c $(XDIR)
	$(CC) $(CFLAGS) -o $@ $(SDIR)/timing.c $(LFLAGS) $(LIBS)
	mv $@ $(XDIR)

spmd: $(SDIR)/spmd.c $(XDIR)
	$(CC) $(CFLAGS) -o $@ $(SDIR)/spmd.c $(LFLAGS) $(GLIBS) $(LIBS)
	mv $@ $(XDIR)

fspmd: $(SDIR)/spmd.f $(XDIR)
	$(F77) $(FFLAGS) -o $@ $(SDIR)/spmd.f $(LFLAGS) $(FLIBS) $(GLIBS) $(LIBS)
	mv $@ $(XDIR)

master1: $(SDIR)/master1.c $(XDIR)
	$(CC) $(CFLAGS) -o $@ $(SDIR)/master1.c $(LFLAGS) $(LIBS)
	mv $@ $(XDIR)

slave1: $(SDIR)/slave1.c $(XDIR)
	$(CC) $(CFLAGS) -o $@ $(SDIR)/slave1.c $(LFLAGS) $(LIBS)
	mv $@ $(XDIR)

fmaster1: $(SDIR)/master1.f $(XDIR)
	$(F77) $(FFLAGS) -o $@ $(SDIR)/master1.f $(LFLAGS) $(FLIBS) $(LIBS)
	mv $@ $(XDIR)

fslave1: $(SDIR)/slave1.f $(XDIR)
	$(F77) $(FFLAGS) -o $@ $(SDIR)/slave1.f $(LFLAGS) $(FLIBS) $(LIBS)
	mv $@ $(XDIR)

testall: $(SDIR)/testall.f $(XDIR)
	$(F77) $(FFLAGS) -o $@ $(SDIR)/testall.f $(LFLAGS) $(FLIBS) $(LIBS)
	mv $@ $(XDIR)

hitc: $(SDIR)/hitc.f $(XDIR)
	$(F77) $(FFLAGS) -o $@ $(SDIR)/hitc.f $(LFLAGS) $(FLIBS) $(LIBS)
	mv $@ $(XDIR)

hitc_slave: $(SDIR)/hitc_slave.f $(XDIR)
	$(F77) $(FFLAGS) -o $@ $(SDIR)/hitc_slave.f $(LFLAGS) $(FLIBS) $(LIBS)
	mv $@ $(XDIR)

gexample: $(SDIR)/gexample.c $(XDIR)
	$(CC) $(CFLAGS) -o $@ $(SDIR)/gexample.c $(LFLAGS) $(GLIBS) $(LIBS)
	mv $@ $(XDIR)

fgexample: $(SDIR)/gexample.f $(XDIR)
	$(F77) $(FFLAGS) -o $@ $(SDIR)/gexample.f $(LFLAGS) $(FLIBS) $(GLIBS) $(LIBS)
	mv $@ $(XDIR)

nntime:	$(SDIR)/nntime.c $(XDIR)
	$(CC) $(CFLAGS) -D$(PVM_ARCH) -DPVM -o $@ $(SDIR)/nntime.c $(LFLAGS) $(GLIBS) $(LIBS)
	mv $@ $(XDIR)

