#Template Makefile Version: 1.0.2
#Time-stamp: <94/08/30 15:31:07 dev>
MAKE = make
CC = g++
AR = ar

#DEBG = -ggdb -D_DEBUG
#OPT = -m486 -O2
#STD_DEFINES = -D_POSIX_SOURCE -D_GNU_SOURCE
CFLAGS =  -Wall -Wstrict-prototypes -pipe $(OPT) $(DEBG) $(STD_DEFINES)
LFLAGS =

#toplevel directory
TOPDIR = $$HOME/PVM++-0.3
LIBS = -L$(TOPDIR)/c++.classes/lib -L$$PVM_ROOT/lib -lpvm++ -lgpvm -lpvm -lg++ -lm
INC = -I$(TOPDIR)/c++.classes/include -I$$PVM_ROOT/include

#target destination
DEST_1 = $$HOME/pvm
TARGET_1 = $(DEST_1)/master
OBJS_1 = master.o pdu_random.o

DEST_2 = $$HOME/pvm
TARGET_2 = $(DEST_2)/slave
OBJS_2 = slave.o pdu_random.o 

TARGETS = $(TARGET_1) $(TARGET_2)
OBJS = $(OBJS_1) $(OBJS_2)

#extension of files to be parsed for dependences
FEXT = cxx
#all the makefiles to be made before $(TARGET) 
SUBDIRS = $(TOPDIR)/c++.classes/src/pvm++

ifeq (.depend, $(wildcard .depend))
include .depend
endif

all: before $(TARGETS) 

before:
	@set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i all; echo; done

$(TARGET_1): $(OBJS_1)
	$(CC) -o $(TARGET_1) $(LFLAGS) $(OBJS_1) $(LIBS)
	@echo 'MASTER: successfully compiled!\n'

$(TARGET_2): $(OBJS_2)
	$(CC) -o $(TARGET_2) $(LFLAGS) $(OBJS_2) $(LIBS)
	@echo -n 'SLAVE: successfully compiled (in ~/pvm/bin)\n'

# =====================================================================
.depend depend dep :
	rm -f .depend
	$(CC) -M *.$(FEXT) $(INC) >.depend;
	@set -e; for i in $(SUBDIRS); do echo; $(MAKE) -C $$i depend; done	

clean:
	@echo -n 'Cleaning directory: '
	rm -f $(OBJS) $(TARGETS) core *~ .*~ .depend

veryclean:
	@echo -n 'Cleaning directory: '
	rm -f $(OBJS) $(TARGETS) core *~ .*~ .depend
	@set -e; for i in $(SUBDIRS); do echo; $(MAKE) -C $$i veryclean; done

%.o: %.$(FEXT) 
	$(CC) -c $< $(CFLAGS) -o $@ $(INC)
