forked from OpenFOAM/OpenFOAM-2.1.x
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmultiBuilder
executable file
·169 lines (133 loc) · 5.45 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
#!/bin/sh
#------------------------------------------------------------------------------
# License
# This file is part of blueCAPE's unofficial mingw patches for OpenFOAM.
# For more information about these patches, visit:
# http://www.bluecape.com.pt/blueCFD
#
# OpenFOAM's official site: http://www.openfoam.com
#
# 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
buildIt()
{
(
. 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" ]; then
echo "... along with contribsExtend ..."
$WM_PROJECT_USER_DIR/contribsExtend/Allwclean -j >> $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
#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-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
buildDoxyDoc prefs-mingw-w64.sh
#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-i586-mingw32msvc.sh
# buildIt prefs-i586-mingw32msvc.sh WM_PRECISION_OPTION=SP
# buildIt prefs-amd64-mingw32msvc.sh
# buildIt prefs-i686-w64-mingw32.sh
# buildIt prefs-i686-w64-mingw32.sh WM_PRECISION_OPTION=SP
# buildIt prefs-x86_64-w64-mingw32.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-i586-mingw32msvc.sh WM_MPLIB=MPICH
# buildIt prefs-i586-mingw32msvc.sh WM_MPLIB=MPICH WM_PRECISION_OPTION=SP
# buildIt prefs-amd64-mingw32msvc.sh WM_MPLIB=MPICH
# buildIt prefs-i686-w64-mingw32.sh WM_MPLIB=MPICH
# buildIt prefs-i686-w64-mingw32.sh WM_MPLIB=MPICH WM_PRECISION_OPTION=SP
# buildIt prefs-x86_64-w64-mingw32.sh WM_MPLIB=MPICH
#build with MSMPI ------------------------------------------------
# buildIt prefs-mingw32.sh WM_MPLIB=MSMPI
buildIt prefs-mingw-w32.sh WM_MPLIB=MSMPI
buildIt prefs-mingw-w32.sh WM_MPLIB=MSMPI WM_PRECISION_OPTION=SP
buildIt prefs-mingw-w64.sh WM_MPLIB=MSMPI
# buildIt prefs-i586-mingw32msvc.sh WM_MPLIB=MSMPI
# buildIt prefs-i586-mingw32msvc.sh WM_MPLIB=MSMPI WM_PRECISION_OPTION=SP
# buildIt prefs-amd64-mingw32msvc.sh WM_MPLIB=MSMPI
# buildIt prefs-i686-w64-mingw32.sh WM_MPLIB=MSMPI
# buildIt prefs-i686-w64-mingw32.sh WM_MPLIB=MSMPI WM_PRECISION_OPTION=SP
# buildIt prefs-x86_64-w64-mingw32.sh WM_MPLIB=MSMPI
#Linux builds ----------------------------------------------------
# buildIt WM_ARCH_OPTION=32
# buildIt WM_ARCH_OPTION=32 WM_PRECISION_OPTION=SP
# buildIt
fi