# 
# Makefile.aimk for cholhost.c, cholnode.c
#
# Other notes:
# PVM_ARCH and ARCHLIB, among other things, are set for you if you
# use "$PVM_ROOT/lib/aimk" instead of "make".
#
# aimk also creates a $PVM_ARCH directory below this one and will cd
# to it before invoking make - this allows building in parallel on
# different arches.
#
# Compilation notes:
# To compile myLauncher.c, ringGatherer.c, and treeGatherer.c, cd to your
# prog1 directory and type 'aimk'.

# To remove the resulting executables, type 'aimk clean'


# directory in which pvm lies.
# please modify this.
# Note that PVMDIR needs to be the absolute path to your pvm3 directory.
# E.g.  /home/solaris/ieng9/oce.../pvm3
# or
# /home/solaris/ieng9/cs160s/yourusename/pvm3

# directory in which pvm lies.
# please modify this
PVMDIR          =       /home/solaris/ieng9/cs160s/cs160s1/pvm3

# directory in which your source code lies.
# please modify this as needed
SDIR            =       $(PVMDIR)/homework3

# directory which contains the directories (e.g. LINUX, SUN4SOL2) for
# binaries of different architectures
BDIR = $(PVMDIR)/bin

PVMLIB	=	$(PVM_ROOT)/lib/$(PVM_ARCH)/libpvm3.a

# directory in which executables will be placed
XDIR = $(BDIR)/$(PVM_ARCH)

CC		=	cc
CFLAGS	=	-g -I$(PVM_ROOT)/include $(ARCHFLAGS)
LIBS	=	$(PVMLIB) $(ARCHLIB)

F77     =	f77
FFLAGS	=	-g 
FLIBS	=	$(PVM_ROOT)/lib/$(PVM_ARCH)/libfpvm3.a $(LIBS)
F860LIBS=	$(PVM_ROOT)/lib/I860/libfpvm3.a \
			$(PVM_ROOT)/lib/I860/libpvm3pe.a -node

default: cholhost cholnode

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

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

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

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

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

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

fslave2: $(SDIR)/slave2.f  $(PVM_ROOT)/bin/I860
	f77 -o slave2 $(SDIR)/slave2.f $(FLIBS)
	mv slave2 $(XDIR)

i860fslave2: $(SDIR)/slave2.f  $(PVM_ROOT)/bin/I860
	if77 -o slave2 $(SDIR)/slave2.f $(F860LIBS)
	mv slave2 $(PVM_ROOT)/bin/I860
	rcp /home/sun4/u0/geist/pvm3/bin/I860/slave2 rx:pvm3/bin/I860

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

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

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

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

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

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

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