#
# 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
#
LIBDIR	=	$(PVM_ROOT)/lib/$(PVM_ARCH)
PVMLIB	=	$(LIBDIR)/libpvm3.a
PVMPELIB	=	$(LIBDIR)/libpvm3pe.a
SDIR	=	..
BDIR	=	$(PVM_ROOT)/bin
XDIR	=	$(BDIR)/$(PVM_ARCH)

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

F77     =	f77
FFLAGS	=	-O
FLIB	=	$(LIBDIR)/libfpvm3.a

default:	master slave 

c-all: master nntime slave spmd spmdh timing timing_slave

f-all: fmaster fslave fspmd fspmdh hitc hitc_slave testall

all: c-all f-all

$(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 $(GLIB) $(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 $(GLIB) $(NODELIBS)
	mv spmd $(XDIR)

fspmdh: $(SDIR)/spmd.f  $(XDIR)
	$(F77) $(FFLAGS) -o spmdh $(SDIR)/spmd.f $(FLIB) $(GLIB) $(LIBS)
	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 $(FLIB) $(GLIB) $(NODELIBS)
	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 $(FLIB) $(LIBS)
	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 $(FLIB) $(NODELIBS)
	mv slave1 $(XDIR)

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

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

nntime: $(SDIR)/nntime.c  $(XDIR)
	$(CC) $(CFLAGS) -DPVM -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)

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

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

