# Makefile pour compiler le code d'advection-diffusion
# Code issu du bureau d'etudes Volumes Finis du departement hydraulique de l'ENSEEIHT
# IMFT - Service Cosinus
# A. Pedrono & H. Neau
# 
# A l'IMFT => module load openmpi/1.10.3/gcc-5.4
#
# E. courcelle. Pour eos => Utiliser l'environnement suivant:
# module load intel/17.0.4 intelmpi/5.1.3.210 visit/vbatch-2.12.3
# Le module visit definit la variable d'environnement VISIT_DIR
# 

FC = mpif90  
CXX = mpicxx
#OPT = -g -O0 -fbounds-check -fno-underscoring
OPT = -g -O0 -fbounds-check

# Catalyst
BUILD_CATALYST=1
PARAVIEW_MESA_DIR = /PRODCOM/PARAVIEW/ParaView-v5.4.1_osmesa_compile_u16
PARAVIEW_MESA_INCDIR = $(PARAVIEW_MESA_DIR)/include/paraview-5.4
PARAVIEW_MESA_LIBS = `$(PARAVIEW_MESA_DIR)/bin/paraview-config --libs vtkPVPythonCatalyst` -lstdc++
##PARAVIEW_MESA_LIBS = $(PARAVIEW_MESA_DIR)/lib/paraview-5.4/site-packages/vtk/vtkPVPythonCatalystPython.so -lstdc++


EXE = pjacobi  
OBJS = jacobi_module.o pjacobi.o result_vtr.o 


ifeq ($(BUILD_CATALYST),1)
       OPT += -DUSE_CATALYST
       CXXOPT = -I$(PARAVIEW_MESA_INCDIR)
       OBJS += catalyst.o\
               catalyst_adaptator.o
       LIBS+= $(PARAVIEW_MESA_LIBS)
       EXE = pjacobi_catalyst 
endif



exe:	$(OBJS) 
	$(FC) $(OPT) $(OBJS) $(LIBS) -o $(EXE)
	
jacobi_module.o: jacobi_module.f90
	$(FC) $(OPT) $(DEFINE) jacobi_module.f90 -c -cpp
	
pjacobi.o: pjacobi.f90
	$(FC) $(OPT) $(DEFINE) pjacobi.f90 -c -cpp
	
result_vtr.o: result_vtr.f90
	$(FC) $(OPT) $(DEFINE) result_vtr.f90 -c -cpp
	
catalyst.o: catalyst.f90
	$(FC) -c $(OPT) catalyst.f90

catalyst_adaptator.o: catalyst_adaptator.cxx
	$(CXX) -c -g $(CXXOPT) catalyst_adaptator.cxx -std=c++11 


clean :
	/bin/rm -f $(OBJS) *.mod $(EXE)
