#!smake

CC		= mpicxx

CCOPT		= -c -O3  -I. -Wno-deprecated

MPI_DIR         = /opt/local

# OpenMP (libomp de MacPorts, mpicxx utilise clang)
OMP_FLAGS       = -Xpreprocessor -fopenmp -I$(MPI_DIR)/include/libomp
OMP_LIBS        = -L$(MPI_DIR)/lib/libomp -lomp

INCLUDE_PATH    = -I. -I$(MPI_DIR)/include
LIB_PATH        = -L. -L$(MPI_DIR)/lib \
                  -Wl,-rpath,$(MPI_DIR)/lib/libomp

# Solveur lineaire pour Poisson : MUMPS (comme PIC-3D)
SOLVER_LIBS     = -ldmumps -lmumps_common

#####################################################################

# code principal
main : main.o Array.o
	$(CC) $(INCLUDE_PATH) -o  main main.o Array.o $(LIB_PATH) $(OMP_LIBS) $(SOLVER_LIBS) -lm -lfftw3 -llapack -lblas


#######################################################################
# compilation du fichier principal

main.o : main.cpp *.hpp
	   $(CC) $(CCOPT) $(OMP_FLAGS) $(INCLUDE_PATH) main.cpp

# compilation du fichier array

Array.o : Array.cpp
	   $(CC) $(CCOPT) $(INCLUDE_PATH) Array.cpp

clean :
	\rm -rf *.o *.mod *~ main *.out f.* p.* p1.* rho* phi* m.* m0.* m1.* m2.* m3.*
menage :
	\rm -rf  *.out f.* p.* rho* phi*
