forked from Scientific-Computing-Lab/Hydro-PED
-
Notifications
You must be signed in to change notification settings - Fork 0
/
make.inc.Linux
111 lines (98 loc) · 4.08 KB
/
make.inc.Linux
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
# Copyright (c) 2017,
# Eyal Shalev ([email protected])
# Vladimir Lyakhovsky
# Harel Levin ([email protected])
# Gal Oren ([email protected])
# All rights reserved to:
# Geological Survey of Israel (GSI) &
# Nuclear Research Center - Negev (NRCN).
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of Harel Levin or Gal Oren, nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL Harel Levin & Gal Oren BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
PLAT = _OPENMP
PETRA ?= t
BLASDEF =
ifndef CUDA_VERSION
######### PUT YOUR BLAS LIB FLAGS HERE ###########
BLASLIB = -mkl
######### PUT YOUR OPENMP FLAGS HERE ###########
OMPFLAG = -qopenmp
endif
MATHLIB = -lm
ifndef CUDA_VERSION
######### PUT YOUR MPI FLAGS HERE ###########
MPLIB = -L$(MPI_DIR)/lib -lmpi
endif
# The archiver and the flag(s) to use when building archive (library)
# If your system has no ranlib, set RANLIB = echo.
#
ARCH = ar
ARCHFLAGS = cr
RANLIB = ranlib
######### PUT YOUR TRILINOS PATH HERE ###########
TRILINOS_DIR ?= /opt/sw/trilinos/12.12.1
TRILINOS_LIB = $(TRILINOS_DIR)/lib
TRILINOS_INC = $(TRILINOS_DIR)/include
ifeq ($(PETRA), e)
TRILINOSLIBS = -L$(TRILINOS_LIB) -lbelos -lepetra -lteuchosremainder -lteuchosnumerics -lteuchoscomm -lteuchosparameterlist -lteuchoscore -lbelosepetra
else ifeq ($(PETRA), t)
TRILINOSLIBS = -L$(TRILINOS_LIB) -lbelostpetra -lbelos -ltpetra -lteuchosnumerics -lteuchoscomm -lteuchoskokkoscomm -lteuchoskokkoscompat -lteuchosremainder -lteuchosparameterlist -lteuchoscore -lkokkosalgorithms -lkokkoscontainers -lkokkoscore -lkokkoskernels
endif
ifdef CUDA_VERSION
######### PUT YOUR BLAS FLAGS HERE ###########
OPENBLAS = -L/opt/sw/trilinos/12.12.1/OpenBLAS-0.2.20 -lopenblas
CUDALIBS = -L$(CUDADIR)/lib64 -lcudart -lcublas -ldl $(OPENBLAS)
CUDAFLAGS = $(CUDALIBS) --expt-extended-lambda -Wno-deprecated-declarations
endif
# Definitions used by CPP:
PREDEFS = -D__OPENMP
#
ifdef CUDA_VERSION
CXX = nvcc_wrapper
CC = nvcc_wrapper
else
CXX = icpc $(OMPFLAG)
CC = icpc $(OMPFLAG)
endif
CFLAGS = -O3 $(PREDEFS) -DPRNTlevel=0 -DDEBUGlevel=0 -lpthread $(CUDAFLAGS) $(BLASLIB)
CXXFLAGS = -O3 $(PREDEFS) -DPRNTlevel=0 -DDEBUGlevel=0 -std=c++11 $(CUDAFLAGS)
#
# There are a few files that should NOT be optimized, which appear in the
# end of SRC/Makefile, taking the flag $(NOOPTS)
# NOOPTS should be defined to explicitly turn off any optimization.
NOOPTS = -O0
############################################################################
ifdef CUDA_VERSION
FORTRAN = pgf90
LOADER = pgf90
else
FORTRAN = ifort
LOADER = ifort
endif
FFLAGS = -O3 -lpthread $(BLASLIB)
LOADOPTS = -O3 -lstdc++ $(OMPFLAG)
#
# C preprocessor defs for compilation for the Fortran interface
# (-DNoChange, -DAdd_, -DAdd__, or -DUpCase)
#
CDEFS = -DAdd_