#
# Custom section
# Set ARCH to your architecture type (SUN4, HP9K, RS6K, SGI, etc)
# if ARCH = BSD386 then set ARCHLIB = -lrpc
# if ARCH = SGI    then set ARCHLIB = -lsun
# if ARCH = I860   then set ARCHLIB = -lrpc -lsocket
# if ARCH = IPSC2  then set ARCHLIB = -lrpc -lsocket
# otherwise leave ARCHLIB blank
#
# ARCH and ARCHLIB are set for you if you use 'aimk'.
#
# PVM_ARCH	=	SP2MPI
ARCHLIB	=
# END of custom section - leave this line here
#
PVMDIR	=	../..
PVMLIB	=	$(PVM_ROOT)/lib/$(PVM_ARCH)/libpvm3.a
PVMPELIB	=	$(PVMDIR)/lib/$(PVM_ARCH)/libpvm3pe.a
SDIR	=	..
BDIR	=	$(PVM_ROOT)/bin
XDIR	=	$(BDIR)/$(PVM_ARCH)

ARCHCFLAGS	=

CC		=	cc
MPICC	=	mpcc
CFLAGS	=	-g -I../../include $(ARCHCFLAGS)
LIBS	=	$(PVMLIB) $(ARCHLIB)
NODELIBS	=	$(PVMPELIB) $(ARCHLIB)
GLIBS	=	$(PVM_ROOT)/lib/$(PVM_ARCH)/libgpvm3.a

F77     =	f77
MPIF77  =	mpxlf
FFLAGS	=	-g $(ARCHCFLAGS) 
FLIBS	=	$(PVM_ROOT)/lib/$(PVM_ARCH)/libfpvm3.a


default:	c-all f-all

c-all:	master nntime slave spmd spmdh timing timing_slave starter

f-all:	fmaster fslave fspmd fspmdh testall

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

$(BDIR):
	- mkdir $(BDIR)

clean:
	rm -f *.o timing_slave timing spmd fspmd master slave fmaster fslave testall

timing_slave: $(SDIR)/timing_slave.c  $(XDIR)
	$(MPICC) $(CFLAGS) -o timing_slave $(SDIR)/timing_slave.c  $(NODELIBS)
	mv timing_slave $(XDIR)

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

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

spmd: $(SDIR)/spmd.c  $(XDIR)
	$(MPICC) $(CFLAGS) -o spmd $(SDIR)/spmd.c $(NODELIBS) $(GLIBS)
	mv spmd $(XDIR)

nntimeh: $(SDIR)/nntime.c  $(XDIR)
	$(CC) $(CFLAGS) -DPVM -o nntimeh $(SDIR)/nntime.c $(LIBS) $(GLIBS)
	mv nntimeh $(XDIR)

nntime: $(SDIR)/nntime.c  $(XDIR)
	$(MPICC) $(CFLAGS) -D$(PVM_ARCH)_NODE -DPVM -o nntime $(SDIR)/nntime.c $(NODELIBS) $(GLIBS)
	mv nntime $(XDIR)

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

fspmd: $(SDIR)/spmd.f  $(XDIR)
	$(MPIF77) $(FFLAGS) -o fspmd $(SDIR)/spmd.f $(FLIBS) $(NODELIBS) $(GLIBS)
	mv fspmd $(XDIR)

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

starter: $(SDIR)/starter.c  $(XDIR)
	$(CC) $(CFLAGS) -o starter $(SDIR)/starter.c  $(LIBS)
	mv starter $(XDIR)

slave: $(SDIR)/slave1.c  $(XDIR)
	$(MPICC) $(CFLAGS) -o slave1 $(SDIR)/slave1.c  $(NODELIBS)
	mv slave1 $(XDIR)

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

fslave: $(SDIR)/slave1.f  $(XDIR)
	$(MPIF77) $(FFLAGS) -o fslave1 $(SDIR)/slave1.f $(FLIBS) $(NODELIBS)
	mv fslave1 $(XDIR)

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

