# 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
#
# E. courcelle. Pour eos => Utiliser l'environnement suivant:
# module load intel/17.0.4 intelmpi/5.1.3.210 visit/vbatch-2.10.2
# Le module visit definit la variable d'environnement VISIT_DIR
# 
#

# On Eos, BEFORE calling make, you can initialize the environment with:
# module purge
# module load intel/17.0.4 intelmpi/5.1.3.210
#
# On Eos, comment out those lines
# CC = mpiicc
# CXX= mpiicpc
INCLUDE = 
#
# # Or using gcc on your machine:
CC = mpicc  
CXX= mpicxx
# 
OPT = #-g -O0 
LIBS = -lm

#
# To compile with catalyst:
# 1/ Initiate the environment with source paraview_batch.sh  (on Eos: module load paraview/pvbatch-5.4.1)
# 2/ Decomment the following line:
CATALYST = 0
#


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


ifeq ($(BUILD_CATALYST),1)
       OPT += -DUSE_CATALYST
       CXXOPT = -I$(PARAVIEW_MESA_INCDIR)
       OBJS = solvers.o pjacobi.o result_vtr.o catalyst_adaptor.o
       LIBS+= $(PARAVIEW_MESA_LIBS)
       EXE = pjacobi_catalyst 
else 
       OBJS = solvers.o pjacobi.o result_vtr.o
       EXE = pjacobi
endif

# ifdef CATALYST
# 
#    DEFINE = -DUSE_CATALYST
#    #INCLUDE += -I$(PARAVIEW_ROOT)/include/paraview-5.4
#    INCLUDE = `paraview-config --include`
#    LIBS = `paraview-config --libs vtkPVPythonCatalyst`
# 
#    OBJS = solvers.o pjacobi.o result_vtr.o catalyst_adaptor.o
#    EXE = pjacobi_catalyst
# 
# else
# 
#    OBJS = solvers.o pjacobi.o result_vtr.o
#    EXE = pjacobi
# 
# endif


$(EXE):	$(OBJS) 
	$(CC) $(OPT) $(OBJS) $(INCLUDE) $(LIBS) -o $(EXE)
	
solvers.o:	solvers.c
	$(CC) $(OPT) $(INCLUDE) $(DEFINE) solvers.c -c 
	
pjacobi.o:	pjacobi.c
	$(CC) $(OPT) $(INCLUDE) $(DEFINE) pjacobi.c -c 

catalyst_adaptor.o: catalyst_adaptor.cxx
	$(CXX) $(OPT) $(PARAVIEW_MESA_INCDIR) $(DEFINE) catalyst_adaptor.cxx -c -std=c++11

result_vtr.o: result_vtr.c
	$(CC) $(OPT) $(INCLUDE) $(DEFINE) result_vtr.c -c

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


