-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.platform.example
80 lines (64 loc) · 2.85 KB
/
Makefile.platform.example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#Copy this file to Makefile.platform, and modify it
#To suit your platform specific needs.
#Compiler options set here will be included by makefiles in all subdirs
PYPROP_ROOT := /home/torebi/prog/pyprop
#optimization flags
CXXFLAGS := $(CXXFLAGS) $(OPTIMIZE_FLAGS) -Wall -g
CXXFLAGS := $(CXXFLAGS) -O3 -funroll-loops
#CPPFLAGS := $(CPPFLAGS) -DBZ_DEBUG
#blas/lapack flags. use installed mkl libraries.
#make sure to install version 10.0.1.* or 10.0.2.*, as
#10.0.3.* will NOT work
CPPFLAGS := $(CPPFLAGS) -DPYPROP_USE_BLAS -DPYPROP_USE_BLAS_CBLAS -DPYPROP_USE_BLAS_MKL
CPPFLAGS := $(CPPFLAGS) -I/opt/intel/mkl/10.0.1.014/include
LDFLAGS := $(LDFLAGS) -L/opt/intel/mkl/10.0.1.014/lib/em64t
LAPACK_LIBS = -lmkl -lguide -lmkl_core -lmkl_lapack -lpthread
#other flags
CPPFLAGS := $(CPPFLAGS) -DBZ_DISABLE_THREADS
#use bundled blitz. configure blitz first, by going to extern/blitz
#and run ./configure-blitz
#comment out the following lines to use system installed blitz
BLITZ_ROOT := $(PYPROP_ROOT)/extern/blitz/build
BLITZ_INCLUDE := -I$(BLITZ_ROOT)/include
BLITZ_LIB := -L$(BLITZ_ROOT)/lib
CPPFLAGS := $(BLITZ_INCLUDE) $(CPPFLAGS)
LDFLAGS := $(BLITZ_LIB) $(LDFLAGS) -lgsl
#Custom boost
BOOST_ROOT := /opt/boost
BOOST_INCLUDE := -I$(BOOST_ROOT)/include
BOOST_LIB := -L$(BOOST_ROOT)/lib
CPPFLAGS := $(BOOST_INCLUDE) $(CPPFLAGS)
LDFLAGS := $(BOOST_LIB) $(LDFLAGS)
BOOST_LIBS := -lboost_python-mt
#Trilinos
TRILINOS_ROOT := /opt/trilinos
CPPFLAGS := $(CPPFLAGS) -I$(TRILINOS_ROOT)/include -DPYPROP_USE_TRILINOS
LDFLAGS := $(LDFLAGS) -L$(TRILINOS_ROOT)/lib -lepetra -lteuchos -lifpack -lanasazi
#pyste flags (use bundled pyste)
#use version 3.4 or 4.1 of g++, otherwise pyste will not work
PYSTE_BIN := $(PYPROP_ROOT)/extern/pyste/pyste.py
#PYSTE_FLAGS := --gccxml-path="gccxml --gccxml-compiler g++-3.4"
#PYSTE_FLAGS := --gccxml-path="gccxml --gccxml-compiler g++-4.1"
PYSTE_FLAGS := --gccxml-path="gccxml --gccxml-compiler g++"
#pyste needs to know where to find mpi.h
PYSTE_INCLUDE := -I/usr/lib/openmpi/include
MPICXX := mpicxx
#configuration options set to blank or 0 to disable a pyprop module
PYPROP_USE_ARPACK := 1
PYPROP_USE_PIRAM := 1
PYPROP_USE_EXPOKIT := 1
PYPROP_USE_ODE := 1
PYPROP_USE_BSPLINE := 1
PYPROP_USE_RUNGEKUTTA := 1
PYPROP_USE_PAMP := 1
PYPROP_USE_GMRES := 1
PYPROP_USE_TRILINOS := 1
#set whether we are building a static pyprop or not. currently static building only works on hex
PYPROP_STATIC := 0
#arpack flags
ARPACK_LIB = /opt/ARPACK/libparpack.a /opt/ARPACK/libarpack.a -lmpi_f77 -lgfortran
#fortran flags
FC := mpif90
FORTRAN_FLAGS := -ffree-form -implicit-none -ffree-line-length-none -fPIC -O3 -g -Wall
FORTRAN_FLAGS := $(FORTRAN_FLAGS) -fbounds-check
FORTRAN_LIBS := -lmpi_f90 -lmpi_f77 -lgfortran