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

CC	=	cc
CFLAGS	=	-O -I../../include 
LIBS	=	$(PVMLIB) $(ARCHLIB)
NODELIBS	=	$(PVMPELIB) $(ARCHLIB)

F77     =	f77
FFLAGS	=	-O
FLIBS	=	$(PVMDIR)/lib/$(PVM_ARCH)/libfpvm3.a $(LIBS)
FPELIBS	=	$(PVMDIR)/lib/$(PVM_ARCH)/libfpvm3.a $(NODELIBS)

default:	spmdh spmd master slave 

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

$(BDIR):
	- mkdir $(BDIR)

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

timing_slave: $(SDIR)/timing_slave.c  $(XDIR)
	$(CC) $(CFLAGS) -c timing_slave.o $(SDIR)/timing_slave.c  $(LIBS)
	cmmd-ld -comp cc -o timing_slave -host $(LIBDIR)/pvmhost.o \
		$(LIBDIR)/libpvm3.a -node timing_slave.o $(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)
	mv spmdh $(XDIR)

spmd: $(SDIR)/spmd.c  $(XDIR)
	$(CC) $(CFLAGS) -c $(SDIR)/spmd.c
	cmmd-ld -comp cc -o spmd -host $(LIBDIR)/pvmhost.o \
		$(LIBDIR)/libpvm3.a -node spmd.o $(NODELIBS)
	mv spmd $(XDIR)

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

fspmd: $(SDIR)/spmd.f  $(XDIR)
	$(F77) $(FFLAGS) -c $(SDIR)/spmd.f
	cmmd-ld -comphost $(CC) -o spmd -host $(LIBDIR)/pvmhost.o $(LIBS) \
		-comp $(F77) -node spmd.o $(FPELIBS)
	mv spmd $(XDIR)

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

slave: $(SDIR)/slave1.c  $(XDIR)
	$(CC) $(CFLAGS) -c $(SDIR)/slave1.c
	cmmd-ld -comp cc -o slave1 -host $(LIBDIR)/pvmhost.o \
		$(LIBDIR)/libpvm3.a -node slave1.o $(NODELIBS)
	mv slave1 $(XDIR)

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

fslave: $(SDIR)/slave1.f  $(XDIR)
	$(F77) $(FFLAGS) -c $(SDIR)/slave1.f
	cmmd-ld -comphost cc -o slave1 -host $(LIBDIR)/pvmhost.o $(LIBS) \
		-comp $(F77) -node slave1.o $(FPELIBS)
	mv slave1 $(XDIR)

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

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

nntime: $(SDIR)/nntime.c  $(XDIR)
	$(CC) $(CFLAGS) -D$(PVM_ARCH)_NODE -c $(SDIR)/nntime.c
	cmmd-ld -comp cc -o nntime -host $(LIBDIR)/pvmhost.o \
		$(LIBDIR)/libpvm3.a -node nntime.o $(NODELIBS)
	mv nntime $(XDIR)

