# Makefile
#
# Copyright 1996-2000 by Gridware Inc., San Jose, CA, USA
#
# Please don't use make - use "aimk" which invokes make
# Binaries and objects will be created in a subdirectory which has the
# same name as the directory for CODINE/GRD binaries
#

CC          = cc
SHELL       = /bin/sh
MAKE        = make
STRIP       = strip
RM          = rm -f
PVM_CFLAGS  = -I$(PVM_ROOT)/include        
PVM_LIB     = $(PVM_ROOT)/lib/$(PVM_ARCH)
SDIR        = ..
ALL         = start_pvm stop_pvm spmd master slave
ALL_OBJS    = start_pvm.o stop_pvm.o spmd.o master.o slave.o

#---------------------------------------------------------------------
# rules
#
all: $(ALL)

clean:
	$(RM) $(ALL) $(ALL_OBJS)

#---------------------------------------------------------------------
# starter used in startpvm.sh
#
start_pvm: start_pvm.o
	$(CC) -o start_pvm start_pvm.o $(LFLAGS) -lpvm3 $(LIBS)

start_pvm.o: $(SDIR)/start_pvm.c
	$(CC) $(CFLAGS) $(PVM_CFLAGS) -c $(SDIR)/start_pvm.c

#---------------------------------------------------------------------
# stopper used in stoppvm.sh
#
stop_pvm: stop_pvm.o
	$(CC) -o stop_pvm stop_pvm.o $(LFLAGS) -lpvm3 $(LIBS)

stop_pvm.o: $(SDIR)/stop_pvm.c
	$(CC) $(CFLAGS) $(PVM_CFLAGS) -c $(SDIR)/stop_pvm.c

#---------------------------------------------------------------------
# a sample pvm job using the pvmgs 
#
spmd: spmd.o
	$(CC) -o spmd spmd.o $(LFLAGS) -lgpvm3 -lpvm3 $(LIBS) 

spmd.o: $(SDIR)/spmd.c
	$(CC) $(CFLAGS) $(PVM_CFLAGS) -c $(SDIR)/spmd.c

#---------------------------------------------------------------------
# a sample pvm job not using the pvmgs 
#
master: master.o
	$(CC) -o master master.o $(LFLAGS) -lpvm3 $(LIBS) 

master.o: $(SDIR)/master.c
	$(CC) $(CFLAGS) $(PVM_CFLAGS) -c $(SDIR)/master.c

slave: slave.o
	$(CC) -o slave slave.o $(LFLAGS) -lpvm3 $(LIBS) 

slave.o: $(SDIR)/slave.c
	$(CC) $(CFLAGS) $(PVM_CFLAGS) -c $(SDIR)/slave.c
