PETSC_DIR=/usr/local/petsc-3.3-p5
PETSC_ARCH=/arch-linux2-c-debug
MPI_DIR=/usr/lib/openmpi

CC=gcc

CCFLAGS = -Wall -g
	
LDFLAGS =  -lpetsc -lmpi -lm

LIBRARY = -L$(PETSC_DIR)/$(PETSC_ARCH)/lib -Wl,-rpath,$(PETSC_DIR)/$(PETSC_ARCH)/lib
	
INCLUDES = -I$(MPI_DIR)/include \
			-I$(PETSC_DIR)/include \
			-I$(PETSC_DIR)/$(PETSC_ARCH)/include
EXEC = hello vec_init ex2 ex3 ex3_bis ex4 ex5 ex7 ex11

SRCS = hello.c vec_init.c exercice2.c exercice3.c exercice3_seq.c exercice4.c exercice5.c exercice7.c exercice11.c

OBJS := $(SRCS:.c=.o)
	
all: $(EXEC)
	
.c.o:
	$(CC) $(CCFLAGS) $(INCLUDES) -c $<
	
hello: hello.o
	$(CC) $(CCFLAGS) hello.o $(LIBRARY) $(LDFLAGS) -o $@
	
vec_init: vec_init.o
	$(CC) $(CCFLAGS) vec_init.o $(LIBRARY) $(LDFLAGS) -o $@
	
ex2: exercice2.o
	$(CC) $(CCFLAGS) exercice2.o $(LIBRARY) $(LDFLAGS) -o $@
	
ex3: exercice3.o
	$(CC) $(CCFLAGS) exercice3.o $(LIBRARY) $(LDFLAGS) -o $@	
	
ex3_bis: exercice3_seq.o
	$(CC) $(CCFLAGS) exercice3_seq.o $(LIBRARY) $(LDFLAGS) -o $@
	
ex4: exercice4.o
	$(CC) $(CCFLAGS) exercice4.o $(LIBRARY) $(LDFLAGS) -o $@	
	
ex5: exercice5.o
	$(CC) $(CCFLAGS) exercice5.o $(LIBRARY) $(LDFLAGS) -o $@	
	
ex7: exercice7.o
	$(CC) $(CCFLAGS) exercice7.o $(LIBRARY) $(LDFLAGS) -o $@

ex11: exercice11.o
	$(CC) $(CCFLAGS) exercice11.o $(LIBRARY) $(LDFLAGS) -o $@
	
clean:
	rm -f $(OBJS) $(EXEC)
