# Julien Buty - Makefile for PVM on OBU Darwin
###########################################################################
# Global settings
CC              = gcc
PVM_ROOT        = /usr/local/pvm3
PVMLIBDIR       = $(PVM_ROOT)/lib/DARWIN
PVMINCLUDEDIR   = $(PVM_ROOT)/include
COMPILEFLAGS    = -O3 -pedantic -Wall -I$(PVMINCLUDEDIR)
LINKERFLAGS     = -L$(PVMLIBDIR) -lpvm3  -lSystemStubs
# Note with LINKERFLAGS, order of libraries included are important.
# Ensure libSystemStubs is always the last library to link in.
DRIVERBIN       = driver
WORKERBIN       = worker
EXECUTABLES     = $(DRIVERBIN) $(WORKERBIN)
all:            $(EXECUTABLES)
###########################################################################
# Driver
DRIVEROBJS      = test.o driver.o 
driver.o:       test.c driver.c
		$(CC) $(COMPILEFLAGS) -c driver.c
$(DRIVERBIN):   $(DRIVEROBJS) 
		$(CC) -o $(DRIVERBIN) $(DRIVEROBJS) $(LINKERFLAGS)
###########################################################################
# Worker
WORKEROBJS      = quicksort.o worker.o 
worker.o:       quicksort.c worker.c
		$(CC) $(COMPILEFLAGS) -c quicksort.c worker.c
$(WORKERBIN):   $(WORKEROBJS)
		$(CC) -o $(WORKERBIN) $(WORKEROBJS) $(LINKERFLAGS)
###########################################################################
# Global macros
OBJS            = $(WORKEROBJS) $(DRIVEROBJS)
FILES           = $(OBJS) $(EXECUTABLES)
clean:
		for f in $(FILES); do [ -f "$${f}" ] && rm "$${f}"; done
