# $Id: Makefile 1387 2006-12-12 13:48:31Z 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 -DUSE_GD
CXXFLAGS=-Wall -DUSE_GD
LFLAGS=
INC=
OUT=-o
O=.o

PROJ=onesided

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

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

all: $(PROJ) halotest

clean:
	$(RM) *$(O)
	$(RM) $(PROJ)
	$(RM) *.png
	$(RM) *.avi
	$(MAKE) -C ./halotest clean

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

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

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

halotest: 
	$(MAKE) -C ./halotest

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

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

testlocal: $(PROJ)
	$(RM) -f *.png
	$(RM) -f *.avi
	$(MPIEXEC) -l -n 4 ./$(PROJ) 1000 10

avi: $(PROJ)
	./genavi.sh
