forked from OpenFOAM/OpenFOAM-2.3.x
-
Notifications
You must be signed in to change notification settings - Fork 0
/
multiBuilder
executable file
·189 lines (152 loc) · 6.19 KB
/
multiBuilder
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
#!/bin/sh
#------------------------------------------------------------------------------
# License
# Copyright (C) 2011-2014 blueCAPE Lda
#
# This file is part of blueCAPE's unofficial mingw patches for OpenFOAM.
# For more information about these patches, visit:
# http://bluecfd.com/Core
#
# This file is a derivative work of OpenFOAM.
#
# OpenFOAM is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
#
# Script
# multiBuilder
#
# Description
# Help script for building multiple WM_OPTIONS builds sequentially.
# Initially created for building mingw-w32 DP+SP + mingw-w64, including
# tutorials that need cross-compiling for their applications.
#
#------------------------------------------------------------------------------
#---------- Functions -------------
usage() {
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: ${0##*/}
This will run as a scripted multi-builder of WM_OPTIONS based on each
prefs-*.sh version given or additional variables. NOTE: you cannot have the
OpenFOAM environment activated prior to executing this script!!
USAGE
exit 1
}
#argument: bashrc options
removeContribBuilds()
{
(
. etc/bashrc $*
if [ -n "${FOAM_USER_LIBBIN}" -a -d "${FOAM_USER_LIBBIN}" ]; then
echo "Removing the contribsExtend builds for $WM_OPTIONS ..."
rm -rf "${FOAM_USER_LIBBIN}"
echo "... done."
fi
)
}
#argument: bashrc options
buildIt()
{
(
if bin/onWin; then
export OFVERSION=2.3
export FOAM_INST_DIR=$HOME/blueCFD
export WM_PROJECT_USER_DIR=$FOAM_INST_DIR/$USER-$OFVERSION
fi
. etc/bashrc $*
timeStamp=$(date +%Y-%m-%d_%H-%M)
logFile="$BUILD_LOG_FOLDER/Allwmake_${WM_OPTIONS}_${timeStamp}.log"
echo "Building $WM_OPTIONS with $WM_MPLIB ..."
time ./Allwmake -j > $logFile 2>&1 && \
time tutorials/Allwmake -j >> $logFile 2>&1 || \
echo "There seems to have been some problems with this build. Check the log: $logFile"
if isMinGW; then
fixPatchExeNames >> $logFile 2>&1
fi
if [ -e "$WM_PROJECT_USER_DIR/contribsExtend" -a ! -d "$FOAM_USER_LIBBIN" ]; then
echo "... along with contribsExtend ..."
$WM_PROJECT_USER_DIR/contribsExtend/Allwclean >> $logFile 2>&1
time $WM_PROJECT_USER_DIR/contribsExtend/Allwmake -j >> $logFile 2>&1 || \
echo "There seems to have been some problems with building contribsExtend. Check the log: $logFile"
fi
)
}
#argument: bashrc options
buildDoxyDoc()
{
(
. etc/bashrc $*
timeStamp=$(date +%Y-%m-%d_%H-%M)
logFile="$BUILD_LOG_FOLDER/docs_${WM_OPTIONS}_${timeStamp}.log"
echo "Building Doxygen Documentation for $WM_OPTIONS with $WM_MPLIB ..."
time doc/Allwmake > $logFile 2>&1 || \
echo "There seems to have been some problems with building the docs. Check the log: $logFile"
)
}
#---------- script ----------------
if [ "x$1" = "x--sourceonly" ]
then
: #do nothing...
elif [ "x$1" = "x--help" -o $# -gt 0 -o "x$WM_PROJECT_DIR" != "x" ]
then
usage
fi
#Source buildLogs helper stuff
. ./bin/tools/BuildLogFunctions
if [ "x$1" != "x--sourceonly" ]
then
#uncomment the next lines for forcing the contribsExtend package to be built
# removeContribBuilds prefs-mingw32.sh
# removeContribBuilds prefs-mingw-w32.sh
# removeContribBuilds prefs-mingw-w32.sh WM_PRECISION_OPTION=SP
#removeContribBuilds prefs-mingw-w64.sh
# removeContribBuilds prefs-mingw-w64.sh WM_PRECISION_OPTION=SP
# removeContribBuilds prefs-mingw-w32.sh WM_COMPILE_OPTION=Debug
# removeContribBuilds prefs-mingw-w32.sh WM_PRECISION_OPTION=SP WM_COMPILE_OPTION=Debug
# removeContribBuilds prefs-mingw-w64.sh WM_COMPILE_OPTION=Debug
# removeContribBuilds prefs-mingw-w64.sh WM_PRECISION_OPTION=SP WM_COMPILE_OPTION=Debug
#build with Open-MPI ------------------------------------------------
# buildIt prefs-mingw32.sh
# buildIt prefs-mingw-w32.sh
# buildIt prefs-mingw-w32.sh WM_PRECISION_OPTION=SP
buildIt prefs-mingw-w64.sh
# buildIt prefs-mingw-w64.sh WM_PRECISION_OPTION=SP
# buildIt prefs-mingw-w32.sh WM_COMPILE_OPTION=Debug
# buildIt prefs-mingw-w32.sh WM_PRECISION_OPTION=SP WM_COMPILE_OPTION=Debug
# buildIt prefs-mingw-w64.sh WM_COMPILE_OPTION=Debug
# buildIt prefs-mingw-w64.sh WM_PRECISION_OPTION=SP WM_COMPILE_OPTION=Debug
#buildDoxyDoc prefs-mingw-w64.sh
#build with MPICH2 ------------------------------------------------
# buildIt prefs-mingw32.sh WM_MPLIB=MPICH
# buildIt prefs-mingw-w32.sh WM_MPLIB=MPICH
# buildIt prefs-mingw-w32.sh WM_MPLIB=MPICH WM_PRECISION_OPTION=SP
# buildIt prefs-mingw-w64.sh WM_MPLIB=MPICH
# buildIt prefs-mingw-w64.sh WM_MPLIB=MPICH WM_PRECISION_OPTION=SP
#build with MSMPI 2008 ------------------------------------------------
# buildIt prefs-mingw32.sh WM_MPLIB=MSMPI2008
# buildIt prefs-mingw-w32.sh WM_MPLIB=MSMPI2008
# buildIt prefs-mingw-w32.sh WM_MPLIB=MSMPI2008 WM_PRECISION_OPTION=SP
buildIt prefs-mingw-w64.sh WM_MPLIB=MSMPI2008
# buildIt prefs-mingw-w64.sh WM_MPLIB=MSMPI2008 WM_PRECISION_OPTION=SP
#build with MSMPI 2012 ------------------------------------------------
# buildIt prefs-mingw32.sh WM_MPLIB=MSMPI2012
# buildIt prefs-mingw-w32.sh WM_MPLIB=MSMPI2012
# buildIt prefs-mingw-w32.sh WM_MPLIB=MSMPI2012 WM_PRECISION_OPTION=SP
buildIt prefs-mingw-w64.sh WM_MPLIB=MSMPI2012
# buildIt prefs-mingw-w64.sh WM_MPLIB=MSMPI2012 WM_PRECISION_OPTION=SP
#Linux builds ----------------------------------------------------
# buildIt prefs-custom-gcc48.sh WM_ARCH_OPTION=32
# buildIt prefs-custom-gcc48.sh WM_ARCH_OPTION=32 WM_PRECISION_OPTION=SP
# buildIt prefs-custom-gcc48.sh
# buildIt prefs-custom-gcc48.sh WM_PRECISION_OPTION=SP
fi