Newer
Older
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
#----------------------------------*-sh-*--------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM, licensed under GNU General Public License
# <http://www.gnu.org/licenses/>.
#
# Script
# have_zoltan
#
# Description
# Detection/setup of zoltan
#
# Requires
# config.sh/zoltan
#
# Functions provided
# have_zoltan, no_zoltan, echo_zoltan
#
# Variables set on success
# HAVE_ZOLTAN
# ZOLTAN_ARCH_PATH
# ZOLTAN_INC_DIR
# ZOLTAN_LIB_DIR
#
#------------------------------------------------------------------------------
. $WM_PROJECT_DIR/wmake/scripts/sysFunctions # General system functions
#------------------------------------------------------------------------------
# Reset variables
no_zoltan()
{
unset HAVE_ZOLTAN ZOLTAN_INC_DIR ZOLTAN_LIB_DIR
return 0
}
# Report
echo_zoltan()
{
echo "zoltan=${HAVE_ZOLTAN:-false}"
echo "root=$ZOLTAN_ARCH_PATH"
echo "include=$ZOLTAN_INC_DIR"
echo "library=$ZOLTAN_LIB_DIR"
}
# On success, return 0 and export variables
# -> HAVE_ZOLTAN, ZOLTAN_INC_DIR, ZOLTAN_LIB_DIR
have_zoltan()
{
local header library static label settings warn
# warn="==> skip zoltan"
# Basic setup/checks
settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/zoltan) || {
[ -n "$warn" ] && echo "$warn (no config.sh/zoltan settings)"
return 1
}
. $settings
if isNone "$ZOLTAN_ARCH_PATH"
then
[ -n "$warn" ] && echo "$warn (not available)"
return 1
fi
# Header/library names
header="zoltan.h"
library="libzoltan$extLibso"
static="libzoltan$extLiba"
if hasAbsdir "$ZOLTAN_ARCH_PATH"
then
header=$(findFirstFile $ZOLTAN_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
$ZOLTAN_ARCH_PATH/lib/$static \
$ZOLTAN_ARCH_PATH/lib/$library \
$ZOLTAN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$static \
$ZOLTAN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$library \
)
elif isSystem "$ZOLTAN_ARCH_PATH"
then
header=$(findFirstFile /usr/local/include/$header /usr/include/$header)
case "$header" in
/usr/local/*)
library=$(findFirstFile \
/usr/local/lib/$library \
/usr/local/lib$WM_COMPILER_LIB_ARCH/$library \
)
;;
*)
library=$(findFirstFile \
/usr/lib/$library \
/usr/lib$WM_COMPILER_LIB_ARCH/$library \
)
;;
esac
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
143
144
else
unset header library
fi
# Header found?
[ -n "$header" ] || {
[ -n "$warn" ] && echo "$warn (no header)"
return 2
}
# Library found?
[ -n "$library" ] || {
[ -n "$warn" ] && echo "$warn (missing library)"
return 2
}
export HAVE_ZOLTAN=true
export ZOLTAN_ARCH_PATH
export ZOLTAN_INC_DIR="${header%/*}" # Basename
export ZOLTAN_LIB_DIR="${library%/*}" # Basename
}
# Force reset of old variables
no_zoltan
# Testing
if [ "$1" = "-test" ]
then
have_zoltan
echo_zoltan
fi
#------------------------------------------------------------------------------