# $Id: Makefile 1262 2006-11-01 17:08:13Z olau $

# MPIROOT=/opt/intel/mpi/3.0
MPIROOT=/opt/mpich2
MPIEXEC=$(MPIROOT)/bin/mpiexec
MPICC=$(MPIROOT)/bin/mpicc

CC=gcc
CXX=g++
DEBUGFLAGS=-DDEBUG -ggdb
CFLAGS=-Wall -std=c99 $(DEBUGFLAGS) -DUSE_GD
CXXFLAGS=-Wall $(DEBUGFLAGS)
LFLAGS=
INC=
OUT=-o
O=.o

PROJ=hello

release:
	$(MAKE) all O="$(O)" \
		CFLAGS="$(CFLAGS)" \
		CXXFLAGS="$(CXXFLAGS)" \
		LFLAGS="$(LFLAGS)" \
		OUT="$(OUT)"

debug:
	$(MAKE) all O="$(O)" \
		CFLAGS="$(CFLAGS) $(DEBUGFLAGS)" \
		CXXFLAGS="$(CXXFLAGS)" \
		LFLAGS="$(LFLAGS)" \
		OUT="$(OUT)"


all: $(PROJ)

clean:
	$(RM) *$(O)
	$(RM) $(PROJ)

.SUFFIXES: .c .h .cpp $(O)

.c$O: Makefile $(PROJ)
	$(MPICC) $(CFLAGS) $(INC) -c $*.c 

$(PROJ): $(PROJ).c ../../globaldefs.h Makefile
	$(MPICC) $(CFLAGS) $(OUT) $(PROJ) $(PROJ).c $(LFLAGS) -lgd $(INC)

dist: $(PROJ)
	for i in `$(MPIROOT)/bin/mpdtrace`; do \
		scp $(PROJ) $$i:~/bin/$(PROJ); \
	done

test:
	@echo "ACHTUNG: make dist nicht vergessen!"
	$(MPIEXEC) -l -n 4 $(PROJ)

testlocal: $(PROJ)
	$(MPIEXEC) -l -n 4 ./$(PROJ)
