#
# 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	=	PGON
ARCHLIB	=	-lrpc -lnx
# 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)

CC		=	icc
CFLAGS	=	-O -I../../include
LIBS	=	$(PVMLIB) $(ARCHLIB)
NODELIBS	=	$(PVMPELIB) $(ARCHLIB)
GLIBS	=	$(PVM_ROOT)/lib/$(PVM_ARCH)/libgpvm3.a

F77     =	if77
FFLAGS	=	-O
FLIBS	=	$(PVM_ROOT)/lib/$(PVM_ARCH)/libfpvm3.a
FPELIBS	=	$(FLIBS)


default:	master slave 

all:    c-all f-all

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

f-all:	fgexample fmaster fslave fspmd fspmdh hitc hitc_slave testall 


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

$(BDIR):
	- mkdir $(BDIR)

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

timing_slave: $(SDIR)/timing_slave.c  $(XDIR)
	$(CC) $(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 $(GLIBS) $(LIBS) 
	mv spmdh $(XDIR)

spmd: $(SDIR)/spmd.c  $(XDIR)
	$(CC) $(CFLAGS) -o spmd $(SDIR)/spmd.c $(GLIBS) $(NODELIBS) 
	mv spmd $(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) -D$(PVM_ARCH)_NODE -DPVM -o nntime $(SDIR)/nntime.c $(NODELIBS)
	mv nntime $(XDIR)

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

fspmd: $(SDIR)/spmd.f  $(XDIR)
	$(F77) $(FFLAGS) -o spmd $(SDIR)/spmd.f $(FLIBS) $(GLIBS) $(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) -o slave1 $(SDIR)/slave1.c  $(NODELIBS)
	mv slave1 $(XDIR)

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

fslave: $(SDIR)/slave1.f  $(XDIR)
	$(F77) $(FFLAGS) -o slave1 $(SDIR)/slave1.f $(FPELIBS) $(NODELIBS)
	mv slave1 $(XDIR)

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

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

fgexample: $(SDIR)/spmd.f  $(XDIR)
	$(F77) $(FFLAGS) -o gexample $(SDIR)/gexample.f $(FLIBS) $(GLIBS) $(NODELIBS)
	mv gexample $(XDIR)

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

hitc: $(SDIR)/hitc.f  $(XDIR)
	$(F77) $(FFLAGS) -o hitc $(SDIR)/hitc.f $(FPELIBS) $(NODELIBS)
	mv hitc $(XDIR)

hitc_slave: $(SDIR)/hitc_slave.f  $(XDIR)
	$(F77) $(FFLAGS) -o hitc_slave $(SDIR)/hitc_slave.f $(FPELIBS) $(NODELIBS)
	mv hitc_slave $(XDIR)



