# $Id: Makefile 1336 2006-12-01 15:07:50Z olau $

MPIROOT=/opt/mpich2
MPIEXEC=$(MPIROOT)/bin/mpiexec

#######################################################
# Einstellungen fr den GCC
#######################################################
CC=gcc
F90=gfortran
DEBUGFLAGS=-DDEBUG -ggdb
OPTIMIZE=-O3 -msse2
OMPFLAGS=-fopenmp -lgomp
CFLAGS=$(OPTIMIZE) -Wall -std=c99
CXXFLAGS=$(OPTIMIZE) -Wall
LFLAGS=-lm
OUT=-o
O=.o

#######################################################
# Einstellungen fr den Intel-Compiler
#######################################################
#CC=/opt/intel/cc/9.1.038/bin/icc
#DEBUGFLAGS=-DDEBUG
#OMPFLAGS=-openmp
#OPTIMIZE=-O3 -ipo -msse2
#CFLAGS=$(OPTIMIZE) -Wall
#LFLAGS=-lm
#OUT=-o
#O=.o


PROJECTS = pi ping-pong ring topo2d onesided io

all: release

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

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

allrelease: 
	for i in $(PROJECTS); do make -C $$i release; done

alldebug: 
	for i in $(PROJECTS); do make -C $$i debug; done

clean:
	for i in $(PROJECTS); do make -C $$i clean; done

dist:
	for i in $(PROJECTS); do make -C $$i dist; done
