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
142 lines (112 loc) · 4.15 KB
/
Copy pathoptions.mk.sample
File metadata and controls
142 lines (112 loc) · 4.15 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
### User Configurable Options
## To set up, follow the steps [1], [2], [3], [4] below
###################################
## [1]
## Set equal to yes if your compiler supports C++11.
## (Also make sure to add a flag like -std=c++11 to the CCCOM variable below.)
USE_CPP11=no
###################################
#########
## [2]
##
## Set which compiler to use by defining CCCOM:
##GNU GCC compiler, consider adding flag -std=c++11 to enable newer C++11 features
CCCOM=g++ -m64 #-std=c++11
##Clang compiler (good to use on Mac OS), consider adding flag -std=c++1y to enable newer C++14 features
#CCCOM=clang++ #-std=c++1y
##Intel C++ compiler (good to use with Intel MKL if available), consider adding -std=c++11
#CCCOM=icpc #-std=c++11
#########
#########
## [3]
##
## 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
#########
## [4]
##
## 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.
###
## Use this variable to set the location of the boost
## headers on your machine (this folder should have another one called 'boost' inside it).
## If USE_CPP11=yes, this variable will not be used.
BOOST_DIR=$(THIS_DIR)/boost_minimal
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
ifndef USE_CPP11
$(error Makefile variable USE_CPP11 not defined in options.mk; please define it.)
endif
ifeq ($(strip $(USE_CPP11)),yes)
else
ifeq ($(strip $(USE_CPP11)),no)
else
$(error Please set Makefile variable USE_CPP11=yes or USE_CPP11=no in file options.mk.)
endif
endif
ifeq ($(strip $(USE_CPP11)),yes)
CCCOM += -DUSE_CPP11
else
ifdef BOOST_DIR
ITENSOR_INCLUDEFLAGS += -I$(BOOST_DIR)
endif
OPTIMIZATIONS += -DBOOST_DISABLE_ASSERTS
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)