forked from ITensor/ITensor
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoptions.mk.sample
More file actions
107 lines (84 loc) · 3.07 KB
/
Copy pathoptions.mk.sample
File metadata and controls
107 lines (84 loc) · 3.07 KB
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
### User Configurable Options
## To set up, follow the steps [1], [2], [3] below
#########
## [1]
##
## Set which compiler to use by defining CCCOM:
##GNU GCC compiler
CCCOM=g++ -m64 -std=c++11
##Clang compiler (good to use on Mac OS)
#CCCOM=clang++ -std=c++1y
##Intel C++ compiler (good to use with Intel MKL if available)
#CCCOM=icpc -std=c++11
#########
#########
## [2]
##
## BLAS/LAPACK Related Options
##
## o The variable PLATFORM can be set to macos,lapack,mkl, or acml.
## This tells ITensor which style of BLAS/Lapack library to expect.
##
## o BLAS_LAPACK_LIBFLAGS should be something like
## -L/path/to/lapack/lib -llapack -lblas
## though the names of the static libraries (the files referred
## to by the -l flags) can be highly variable - see examples below.
##
## o BLAS_LAPACK_INCLUDEFLAGS is currently required for the mkl platform only.
## It should be set to -I/path/to/lapack/include
## where "include" is a folder full of .h header files in the source code
## of your BLAS/Lapack library (see examples below).
##
##
## Mac OSX system
##
PLATFORM=macos
BLAS_LAPACK_LIBFLAGS=-framework Accelerate
##
## Example using a C interface to LAPACK on GNU/LINUX systems
##
#PLATFORM=lapack
#BLAS_LAPACK_LIBFLAGS=-L/usr/lib -lblas -llapack
##
## Example using the Intel MKL library
##
#PLATFORM=mkl
## MKL example (recommended with Intel C++ compiler icpc for performance on Intel CPUs)
#BLAS_LAPACK_LIBFLAGS=-L/opt/intel/composer_xe_2013_sp1.1.106/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_rt -lmkl_core -liomp5 -lpthread
#BLAS_LAPACK_INCLUDEFLAGS=-I/opt/intel/composer_xe_2013_sp1.1.106/mkl/include
##
## Example using the AMD ACML library
##
#PLATFORM=acml
#BLAS_LAPACK_LIBFLAGS=-L/opt/acml5.1.0/gfortran64/lib -lacml -lgfortran -lpthread
#########
## [3]
##
## This step is optional, but if you wish to customize the flags
## used to compile optimized and debug code, you can do so here.
## Flags to give the compiler for "release mode"
OPTIMIZATIONS=-O2 -DNDEBUG -Wall
## Flags to give the compiler for "debug mode"
DEBUGFLAGS=-DDEBUG -DMATRIXBOUNDS -DITENSOR_USE_AT -DBOUNDS -g -Wall
###
### Other Makefile variables defined for convenience.
### Not necessary to modify these for most cases.
###
PREFIX=$(THIS_DIR)
ITENSOR_LIBDIR=$(PREFIX)/lib
ITENSOR_INCLUDEDIR=$(PREFIX)/include
ITENSOR_LIBNAMES=itensor matrix utilities
ITENSOR_LIBFLAGS=$(patsubst %,-l%, $(ITENSOR_LIBNAMES))
ITENSOR_LIBFLAGS+= $(BLAS_LAPACK_LIBFLAGS)
ITENSOR_LIBGFLAGS=$(patsubst %,-l%-g, $(ITENSOR_LIBNAMES))
ITENSOR_LIBGFLAGS+= $(BLAS_LAPACK_LIBFLAGS)
ITENSOR_LIBS=$(patsubst %,$(ITENSOR_LIBDIR)/lib%.a, $(ITENSOR_LIBNAMES))
ITENSOR_GLIBS=$(patsubst %,$(ITENSOR_LIBDIR)/lib%-g.a, $(ITENSOR_LIBNAMES))
ITENSOR_INCLUDEFLAGS=-I$(ITENSOR_INCLUDEDIR) $(BLAS_LAPACK_INCLUDEFLAGS)
ifndef CCCOM
$(error Makefile variable CCCOM not defined in options.mk; please define it.)
endif
CCFLAGS=-I. $(ITENSOR_INCLUDEFLAGS) $(OPTIMIZATIONS) -Wno-unused-variable
CCGFLAGS=-I. $(ITENSOR_INCLUDEFLAGS) $(DEBUGFLAGS)
LIBFLAGS=-L$(ITENSOR_LIBDIR) $(ITENSOR_LIBFLAGS)
LIBGFLAGS=-L$(ITENSOR_LIBDIR) $(ITENSOR_LIBGFLAGS)