Merge branch 'update-master' into 'master'

Update master

Update master to include stable development changes and bugfixes.

See merge request !1
This commit is contained in:
Mark Olesen
2016-11-04 09:49:58 +00:00
38 changed files with 3398 additions and 1315 deletions

69
.gitignore vendored
View File

@ -1,79 +1,32 @@
# man gitignore for more information
# editor and misc backup files - anywhere
# Ignore editor and misc backup files - anywhere
*~
.*~
*.bak
*.bak[0-9][0-9]
*.orig
*.orig[0-9][0-9]
\#*\#
# file-browser settings - anywhere
.directory
# CVS recovered versions - anywhere
.#*
# objects and archives - anywhere
*.[oa]
*.la
*.so
*.jar
# derived files
lex.yy.c
# Corefiles
core
# dependency files - anywhere
*.dep
# lnInclude (symlink) folders - anywhere
lnInclude
# build folders - anywhere
linux*Gcc*/
linux*Icc*/
linuxming*/
SiCortex*Gcc*/
solaris*Gcc*/
SunOS*Gcc*/
# source packages - anywhere
# Ignore source packages - anywhere
*.tar.bz2
*.tar.gz
*.tar
*.tgz
*.gtgz
# Ignore build and platforms folders
build/
platforms/
# ignore the persistent .build tag in the main directory
/.build
# Generated files in the main directory
/*.html
# ignore .timeStamp in the main directory
/.timeStamp
# ignore unpacked sources in the main directory (match pkg-ver)
# Ignore unpacked sources in the main directory (match pkg-ver)
# this also matches symlinks
/*[-_][0-9]*
# ignore all sub-directories
# Ignore all top-level sub-directories
/*/
# do not ignore these ones
# Do not ignore these ones though
!/etc/
# do not ignore the first level of these ones
!/malloc/
/malloc/*/
!/malloc/fbsdmalloc/
# ignore these extra symlinks
libccmio
# track this patched version directly - until metis gets dropped
!/metis-5.0pre2/libmetis/metislib.h
# end-of-file
# End-of-file

111
Allclean
View File

@ -4,7 +4,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
# \\/ M anipulation |
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -23,7 +23,7 @@
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
#
# Script
# AllClean
# Allclean
#
# Description
# Clean script for third-party applications and libraries
@ -39,24 +39,115 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
}
# . etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
Script=${0##*/}
usage() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
Usage: $Script [OPTION] [<platform> [ ... <platformN> ]]
options:
-all remove all platforms directories.
-current clean the current platform ($WM_OPTIONS).
-help print the usage
# clean various packages via 'distclean'
for i in openmpi-*
Cleanup intermediate build directories.
Optionally remove specified platform(s) from the ThirdParty platforms
directory $WM_THIRD_PARTY_DIR/platforms
USAGE
exit 1
}
# Print help message
if [ "$1" = "-h" -o "$1" = "-help" ]; then
usage
fi
#------------------------------------------------------------------------------
# Clean various packages via 'distclean'
for i in openmpi-* ADIOS-*
do
[ -d "$i" ] && ( set -x; cd $i && make distclean )
[ -d "$i" ] && (
echo
echo "${i%/*}"
echo " make distclean"
echo
cd $i && make distclean
)
done
# clean various packages via 'realclean'
# Clean various packages via 'realclean'
for i in scotch*/src
do
[ -d "$i" ] && ( set -x; cd $i && make realclean )
[ -d "$i" ] && (
echo
echo "${i%/*}"
echo " make realclean"
echo
cd $i && make realclean
)
done
# clean out-of-source build directories
[ -d platforms ] && ( set -x; rm -rf platforms/* )
# Clean out-of-source build directories
if [ -d build ]
then
echo
echo "Clean build/ directory"
rm -rf build/*
fi
# -----------------------------------------------------------------------------
#
# Clean platforms directories
#
if [ "$#" -ge 1 ]
then
echo
echo "Clean platforms/sub-directories"
fi
removePlatform()
{
local platform="$1"
if [ -n "$platform" -a -d "platforms/$platform" ]
then
echo
echo "Cleaning platform '$platform'"
\rm -rf "platforms/$platform"
else
echo
echo "Platform '$platform' not built"
fi
}
# ----------------------------------------------------------------- end-of-file
# Optionally cleanup platforms specified from the arguments
while [ "$#" -ge 1 ]
do
case "$1" in
-all)
echo
echo "Removing all platforms/sub-directories"
echo
\rm -rf platforms/*
break
;;
-current)
echo "Current platform '$WM_OPTIONS'"
removePlatform "$WM_OPTIONS"
;;
*)
removePlatform "$1"
;;
esac
shift
done
#------------------------------------------------------------------------------

211
Allwmake
View File

@ -3,8 +3,8 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
# \\/ M anipulation |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -56,12 +56,12 @@ echo
echo ========================================
echo Start ThirdParty Allwmake
echo ========================================
echo
echo ========================================
echo Build MPI libraries if required
echo
echo " $MPI_ARCH_PATH"
case "$WM_MPLIB" in
OPENMPI)
if [ -r $MPI_ARCH_PATH/lib${WM_COMPILER_LIB_ARCH}/libmpi.so ]
@ -74,24 +74,34 @@ OPENMPI)
echo
else
(
set -x
cd "${MPI_ARCH_PATH##*/}" || exit 1 # change to openmpi-VERSION
make distclean 2>/dev/null
rm -rf $MPI_ARCH_PATH
# start with GridEngine support,
# it can be built without external libraries
# configuration options:
# Start with GridEngine support - builds without external libraries
configOpt="--with-sge"
# Infiniband support
# if [ -d /usr/local/ofed -a -d /usr/local/ofed/lib64 ]
# then
# configOpt="$configOpt --with-openib=/usr/local/ofed"
# configOpt="$configOpt --with-openib-libdir=/usr/local/ofed/lib64"
# fi
# Add InfiniBand support
ibDir=/usr/local/ofed
ibLib=$infbDIR/lib${WM_COMPILER_LIB_ARCH}
if [ -d "$ibDir" -a -d "$ibLib" ]
then
configOpt="$configOpt --with-verbs=$ibDir --with-verbs-lib=$ibLib"
fi
./configure \
# end of configuration options
# ----------------------------
mpiPACKAGE="${MPI_ARCH_PATH##*/}"
sourceDIR=$WM_THIRD_PARTY_DIR/$mpiPACKAGE
buildDIR=$buildBASE/$mpiPACKAGE
cd $sourceDIR || exit 1
[ -e Makefile ] && make distclean 2>/dev/null
rm -rf $MPI_ARCH_PATH
rm -rf $buildDIR
mkdir -p $buildDIR
cd $buildDIR
set -x
$sourceDIR/configure \
--prefix=$MPI_ARCH_PATH \
--disable-orterun-prefix-by-default \
--enable-shared --disable-static \
@ -99,11 +109,13 @@ OPENMPI)
--enable-mpi-fortran=none \
--disable-mpi-profile \
$configOpt \
;
make -j $WM_NCOMPPROCS && make install
make distclean
)
&& make -j $WM_NCOMPPROCS \
&& make install \
&& echo "Built: $mpiPACKAGE"
) || {
echo "Error building: $mpiPACKAGE"
exit 1
}
fi
;;
@ -112,19 +124,20 @@ MPICH)
then
echo " have $WM_MPLIB shared library ($FOAM_MPI)"
echo
echo
elif [ -r $MPI_ARCH_PATH/lib/libmpich.a ]
then
echo " have $WM_MPLIB static library ($FOAM_MPI)"
echo
else
(
# WARNING: unmaintained build code:
# ---------------------------------
set -x
cd $MPI_HOME || exit 1 # change to mpich-VERSION
make distclean 2>/dev/null
[ -e Makefile ] && make distclean 2>/dev/null
rm -rf $MPI_ARCH_PATH
rm util/machines/machines.*
rm -rf util/machines/machines.*
./configure \
--prefix=$MPI_ARCH_PATH \
@ -172,23 +185,26 @@ MPICH)
esac
#------------------------------------------------------------------------------
# building scotch is still a bit of a pain
# get SCOTCH_VERSION, SCOTCH_ARCH_PATH
if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config/scotch.sh`
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch)
then
. $settings
else
echo
echo "Error: no config/scotch.sh settings"
echo "Error: no config.sh/scotch settings"
echo
fi
# building scotch is still a bit of a pain
echo
echo ========================================
echo "Build Scotch decomposition library $SCOTCH_VERSION"
echo " $SCOTCH_ARCH_PATH"
# this needs generalizing
scotchMakefile=../../etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM-$WM_ARCH_OPTION$WM_LABEL_OPTION
scotchMakefile=../../etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM
if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \
-a -r $FOAM_EXT_LIBBIN/libscotch.so \
@ -196,11 +212,11 @@ if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \
then
echo " scotch header in $SCOTCH_ARCH_PATH/include"
echo " scotch libs in $FOAM_EXT_LIBBIN"
echo
else
elif [ -d "$SCOTCH_VERSION" ]
then
(
set -x
cd $SCOTCH_VERSION/src || exit 1
applyPatch $SCOTCH_VERSION .. # patch at parent-level
prefixDIR=$SCOTCH_ARCH_PATH
libDIR=$FOAM_EXT_LIBBIN
@ -233,23 +249,24 @@ else
# cleanup, could also remove Makefile.inc
make realclean 2>/dev/null
)
else
echo " Optional component (SCOTCH) was not found"
fi
# verify existence of scotch include
[ -f $SCOTCH_ARCH_PATH/include/scotch.h ] || {
echo
echo " WARNING: required include file 'scotch.h' not found!"
echo
}
# build ptscotch if MPI (ThirdParty or system) is available
if [ "${FOAM_MPI:-dummy}" != dummy ]
then
echo ========================================
echo "Build PTScotch decomposition library $SCOTCH_VERSION (uses MPI)"
echo " $SCOTCH_ARCH_PATH"
# and there is a scotch include available (ie, normal scotch was built)
if [ "${FOAM_MPI:-dummy}" != dummy ] && \
[ -f $SCOTCH_ARCH_PATH/include/scotch.h ] || \
{
echo
echo " WARNING: skipping pt-scotch - 'scotch.h' include file not found!"
false
}
then
echo
echo ========================================
echo "Build pt-scotch decomposition library $SCOTCH_VERSION (with $FOAM_MPI)"
echo " $SCOTCH_ARCH_PATH"
if [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h \
-a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotch.so \
@ -257,9 +274,9 @@ then
then
echo " ptscotch header in $SCOTCH_ARCH_PATH/include/$FOAM_MPI"
echo " ptscotch libs in $FOAM_EXT_LIBBIN/$FOAM_MPI"
echo
else
(
echo
set -x
cd $SCOTCH_VERSION/src || exit 1
@ -301,19 +318,19 @@ then
[ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h ] || {
echo
echo " WARNING: required include file 'ptscotch.h' not found!"
echo
}
fi
# -----------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Metis is optional
echo
echo ========================================
echo Build Metis decomposition
# get METIS_VERSION, METIS_ARCH_PATH
if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config/metis.sh`
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis)
then
. $settings
fi
@ -330,39 +347,105 @@ then
(
set -x
cd $METIS_VERSION || exit 1
if [ "$WM_PRECISION_OPTION" = "DP" ]
then
FLOAT_PRECISION=64
elif [ "$WM_PRECISION_OPTION" = "SP" ]
then
FLOAT_PRECISION=32
else
echo " Metis pre-configure error:"
echo " WM_PRECISION_OPTION is neither DP nor SP"
exit 1
fi
# Change user settings automatically
sed -i -e 's=\(#define IDXTYPEWIDTH\).*=\1 '$WM_LABEL_SIZE'=' \
-e 's=\(#define REALTYPEWIDTH\).*=\1 '$FLOAT_PRECISION'=' \
include/metis.h
make config shared=1 prefix=$METIS_ARCH_PATH
make -j $WM_NCOMPPROCS install
cp $METIS_ARCH_PATH/lib/libmetis.so $FOAM_EXT_LIBBIN
)
fi
else
echo " optional component Metis was not found"
echo " Optional component (METIS) was not found"
fi
#------------------------------------------------------------------------------
warnBuildIssues()
{
echo
echo " ---------------------------------------------------"
echo " Optional component ($1) had build issues"
echo " OpenFOAM will nonetheless remain largely functional"
echo " ---------------------------------------------------"
echo
}
warnNotFound()
{
echo " Optional component ($1) was not found"
echo
}
# CGAL is optional
echo
echo ========================================
echo Build CGAL
if [ -n "$CGAL_ARCH_PATH" ]
if [ -d "$CGAL_ARCH_PATH/include" \
-a -r "$CGAL_ARCH_PATH/lib/libCGAL.so" ]
then
(
if [ -r $CGAL_ARCH_PATH/lib/libCGAL.so ]
# first some information about boost
if [ -d "$BOOST_ARCH_PATH/include/boost" \
-a -r "$BOOST_ARCH_PATH/lib/libboost_system.so" ]
then
echo " CGAL headers in $CGAL_ARCH_PATH/include"
echo " CGAL libs in $CGAL_ARCH_PATH/lib"
else
./makeCGAL
echo " BOOST headers in $BOOST_ARCH_PATH/include"
echo " BOOST libs in $BOOST_ARCH_PATH/lib"
elif [ -d "/usr/include/boost" \
-a -r "/usr/lib${WM_COMPILER_LIB_ARCH}/libboost_system.so" ]
then
echo " BOOST headers in /usr/include"
echo " BOOST libs in /usr/lib${WM_COMPILER_LIB_ARCH}"
fi
)
echo " CGAL headers in $CGAL_ARCH_PATH/include"
echo " CGAL libs in $CGAL_ARCH_PATH/lib"
elif [ -n "$CGAL_ARCH_PATH" ]
then
./makeCGAL || warnBuildIssues CGAL
else
echo " optional component was not found"
warnNotFound CGAL
fi
# FFTW is optional
echo
echo ========================================
echo Build FFTW
if [ -d "$FFTW_ARCH_PATH/include" \
-a -r "$FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libfftw3.so" ]
then
echo " FFTW headers in $FFTW_ARCH_PATH/include"
echo " FFTW libs in $FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
elif [ -n "$FFTW_ARCH_PATH" ]
then
./makeFFTW || warnBuildIssues FFTW
else
warnNotFound FFTW
fi
#------------------------------------------------------------------------------
echo
echo ========================================
echo Done ThirdParty Allwmake
echo ========================================
echo
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

@ -1,85 +0,0 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
# This file is part 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
# AllwmakeLibccmio
#
# Description
# Get and build CD-adapco's ccmio library
#
#------------------------------------------------------------------------------
packageDir=libccmio-2.6.1
#------------------------------------------------------------------------------
# run from third-party directory only
cd ${0%/*} || exit 1
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
echo " The environment variables are inconsistent with the installation."
echo " Check the OpenFOAM entries in your dot-files and source them."
exit 1
}
. etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
usage()
{
cat<<USAGE
* The license of the libccmio library is proprietary:
Users wishing to make use of its functionality should contact CD-Adapco
for possible download and terms of use.
Usage: ${0##*/}
* This script will install the libccmio library
* After obtaining the $packageDir library, place in folder
$WM_THIRD_PARTY_DIR/$packageDir/
USAGE
exit 1
}
# get tar.gz file if required
if [ ! -d ${packageDir} ]
then
usage
fi
set -x
# make libccmio
(
cd $packageDir || exit 1
cpMakeFiles libccmio
wmake libso
)
# ----------------------------------------------------------------- end-of-file

View File

@ -1,335 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>OpenFOAM-3.0.x Third-Party packages</title>
<!-- 2015-11-03 Tue 17:54 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: visible;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
/*]]>*/-->
</style>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
</head>
<body>
<div id="content">
<h1 class="title">OpenFOAM-3.0.x Third-Party packages</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#sec-1">1. Description</a></li>
<li><a href="#sec-2">2. Order of execution:</a>
<ul>
<li><a href="#sec-2-1">2.1. Optional</a></li>
</ul>
</li>
<li><a href="#sec-3">3. Versions and locations to download the third party packages</a>
<ul>
<li><a href="#sec-3-1">3.1. Gcc C++ Compiler</a></li>
<li><a href="#sec-3-2">3.2. Parallel Processing</a></li>
<li><a href="#sec-3-3">3.3. ParaView</a></li>
<li><a href="#sec-3-4">3.4. CGAL</a></li>
<li><a href="#sec-3-5">3.5. Miscellaneous</a></li>
</ul>
</li>
<li><a href="#sec-4">4. Notes</a>
<ul>
<li><a href="#sec-4-1">4.1. Building ParaView-4.3.1/4.4.0</a></li>
<li><a href="#sec-4-2">4.2. Building ParaView-4.1.0</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1"><span class="section-number-2">1</span> Description</h2>
<div class="outline-text-2" id="text-1">
<p>
Scripts for building third-party packages.
</p>
</div>
</div>
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2"><span class="section-number-2">2</span> Order of execution:</h2>
<div class="outline-text-2" id="text-2">
<ul class="org-ul">
<li>makeGcc (recommended if the system gcc is &lt; 4.7)
</li>
<li>Allwmake (Builds OpenMPI, Scotch etc.)
</li>
<li>makeCmake (if the system cmake version is &lt; 2.8.8)
</li>
<li>makeParaView4
</li>
</ul>
</div>
<div id="outline-container-sec-2-1" class="outline-3">
<h3 id="sec-2-1"><span class="section-number-3">2.1</span> Optional</h3>
<div class="outline-text-3" id="text-2-1">
<ul class="org-ul">
<li>AllwmakeLibccmio (Only required for conversion of STAR-CCM+ meshes)
</li>
<li>Allclean (Only required to save disk space)
</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3"><span class="section-number-2">3</span> Versions and locations to download the third party packages</h2>
<div class="outline-text-2" id="text-3">
</div><div id="outline-container-sec-3-1" class="outline-3">
<h3 id="sec-3-1"><span class="section-number-3">3.1</span> Gcc C++ Compiler</h3>
<div class="outline-text-3" id="text-3-1">
<p>
The minimum version of gcc required is 4.5.0
</p>
<ul class="org-ul">
<li>gcc <a href="http://gcc.gnu.org/releases.html">http://gcc.gnu.org/releases.html</a>
</li>
<li>gmp <a href="http://gmplib.org/">http://gmplib.org/</a>
<a href="ftp://ftp.gnu.org/gnu/gmp/gmp-5.1.2.tar.bz2">ftp://ftp.gnu.org/gnu/gmp/gmp-5.1.2.tar.bz2</a>
</li>
<li>mpfr <a href="http://www.mpfr.org/">http://www.mpfr.org/</a>
<a href="ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.2.tar.bz2">ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.2.tar.bz2</a>
</li>
<li>mpc <a href="http://www.multiprecision.org/">http://www.multiprecision.org/</a>
<a href="http://www.multiprecision.org/mpc/download/mpc-1.0.1.tar.gz">http://www.multiprecision.org/mpc/download/mpc-1.0.1.tar.gz</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-sec-3-2" class="outline-3">
<h3 id="sec-3-2"><span class="section-number-3">3.2</span> Parallel Processing</h3>
<div class="outline-text-3" id="text-3-2">
<ul class="org-ul">
<li>OpenMPI: <a href="http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.0.tar.bz2">http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.0.tar.bz2</a>
</li>
<li>Scotch/PtScotch: <a href="https://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz">https://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-sec-3-3" class="outline-3">
<h3 id="sec-3-3"><span class="section-number-3">3.3</span> ParaView</h3>
<div class="outline-text-3" id="text-3-3">
<ul class="org-ul">
<li>cmake <a href="http://www.cmake.org/files/v3.2/cmake-3.2.1.tar.gz">http://www.cmake.org/files/v3.2/cmake-3.2.1.tar.gz</a>
</li>
<li>ParaView <a href="http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz">http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-sec-3-4" class="outline-3">
<h3 id="sec-3-4"><span class="section-number-3">3.4</span> CGAL</h3>
<div class="outline-text-3" id="text-3-4">
<ul class="org-ul">
<li>CGAL <a href="https://github.com/CGAL/cgal/releases/download/releases/CGAL-4.7/CGAL-4.7.tar.xz">https://github.com/CGAL/cgal/releases/download/releases/CGAL-4.7/CGAL-4.7.tar.xz</a>
</li>
<li>boost <a href="http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.bz2/download">http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.bz2/download</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-sec-3-5" class="outline-3">
<h3 id="sec-3-5"><span class="section-number-3">3.5</span> Miscellaneous</h3>
<div class="outline-text-3" id="text-3-5">
<ul class="org-ul">
<li>libccmio <a href="http://portal.nersc.gov/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz">http://portal.nersc.gov/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz</a>
</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-sec-4" class="outline-2">
<h2 id="sec-4"><span class="section-number-2">4</span> Notes</h2>
<div class="outline-text-2" id="text-4">
</div><div id="outline-container-sec-4-1" class="outline-3">
<h3 id="sec-4-1"><span class="section-number-3">4.1</span> Building ParaView-4.3.1/4.4.0</h3>
<div class="outline-text-3" id="text-4-1">
<p>
The ParaView-4.3.1/4.4.0 source-pack provided by KitWare will not build and
install correctly without a minor correction: lines 653-656 must be removed
or commented from file
<i>ThirdParty-3.0.0/ParaView-4.?.?/Qt/Components/CMakeLists.txt</i> after
unpacking and renaming the ParaView-4.?.? directory. This is because the
file ui_pqExportStateWizard.h referred to in the lines 653-656:
</p>
<div class="org-src-container">
<pre class="src src-C"><span style="color: #0000cd; font-weight: bold;">if</span>(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
install(FILES <span style="color: #008b00;">"${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"</span>
DESTINATION <span style="color: #008b00;">"${VTK_INSTALL_INCLUDE_DIR}"</span>)
endif()
</pre>
</div>
<p>
does not exist and cannot be installed causing the build and installation to
fail.
</p>
<p>
Additionally for ParaView-4.4.0 there is a bug in the STL reader which can
be patched by running the following command from within the ThirdParty-???
directory:
</p>
<ul class="org-ul">
<li>wget <a href="https://raw.githubusercontent.com/Kitware/VTK/40937e934308e5009e80769dc0c451ee4f157749/IO/Geometry/vtkSTLReader.cxx">https://raw.githubusercontent.com/Kitware/VTK/40937e934308e5009e80769dc0c451ee4f157749/IO/Geometry/vtkSTLReader.cxx</a> -O ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx
</li>
</ul>
<p>
See also <a href="http://www.openfoam.org/mantisbt/view.php?id=1887">http://www.openfoam.org/mantisbt/view.php?id=1887</a>
</p>
</div>
</div>
<div id="outline-container-sec-4-2" class="outline-3">
<h3 id="sec-4-2"><span class="section-number-3">4.2</span> Building ParaView-4.1.0</h3>
<div class="outline-text-3" id="text-4-2">
<p>
On Ubuntu 14.10 and higher, OpenSuSE 13.2 and probably other recent
GNU/Linux distributions there is an issue in the GL libraries requiring a
change to the vtkXOpenGLRenderWindow.cxx file in ParaView: Uncomment line 30
</p>
<p>
#define GLX_GLXEXT_LEGACY
</p>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="date">Date: 3rd November 2015</p>
<p class="date">Created: 2015-11-03 Tue 17:54</p>
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 24.5 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
</html>

View File

@ -1,51 +1,61 @@
# -*- mode: org; -*-
#
#+TITLE: OpenFOAM-3.0.x Third-Party packages
#+AUTHOR: The OpenFOAM Foundation
#+DATE: 3rd November 2015
#+TITLE: OpenFOAM Third-Party packages
#+AUTHOR: The OpenFOAM Foundation / OpenCFD Ltd.
#+DATE: 2016-06-28
#+LINK: http://www.openfoam.org
#+OPTIONS: author:nil ^:{}
# Copyright (c) 2015 OpenFOAM Foundation.
# Copyright (c) 2014-2016 OpenFOAM Foundation.
# Copyright (c) 2016 OpenCFD Ltd.
* Description
Scripts for building third-party packages.
* Order of execution:
* Build Order:
+ makeGcc (recommended if the system gcc is < 4.7)
+ Allwmake (Builds OpenMPI, Scotch etc.)
+ makeCmake (if the system cmake version is < 2.8.8)
+ makeParaView4
*** Optional
+ AllwmakeLibccmio (Only required for conversion of STAR-CCM+ meshes)
+ Allclean (Only required to save disk space)
+ makeParaView
*** Optional Build Components:
+ makeLLVM (Replaces makeGcc in the above description
- to use clang as compiler)
+ makeCCMIO (Only required for conversion of STAR-CCM+ meshes)
+ Allclean (Only required to save disk space)
* Versions and locations to download the third party packages
*** Gcc C++ Compiler
The minimum version of gcc required is 4.5.0
+ gcc http://gcc.gnu.org/releases.html
+ gmp http://gmplib.org/
ftp://ftp.gnu.org/gnu/gmp/gmp-5.1.2.tar.bz2
ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2
+ mpfr http://www.mpfr.org/
ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.2.tar.bz2
ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.bz2
+ mpc http://www.multiprecision.org/
http://www.multiprecision.org/mpc/download/mpc-1.0.1.tar.gz
ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
*** Parallel Processing
+ OpenMPI: http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.0.tar.bz2
+ Scotch/PtScotch: https://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz
***** Scotch
+ Scotch/PtScotch: https://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz
***** OpenMPI
+ OpenMPI: http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.2.tar.bz2
*** ParaView
+ cmake http://www.cmake.org/files/v3.2/cmake-3.2.1.tar.gz
+ ParaView http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz
+ cmake http://www.cmake.org/files/v3.5/cmake-3.5.2.tar.gz
+ ParaView-4.4.0 http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz
+ ParaView-5.0.1 http://www.paraview.org/files/v5.0/ParaView-v5.0.1-source.tar.gz
but may need patching to compile (See [[Notes]]).
*** CGAL
+ CGAL https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.7/CGAL-4.7.tar.xz
+ boost http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.bz2/download
+ CGAL https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.8/CGAL-4.8.tar.xz
+ CGAL https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.8.1/CGAL-4.8.1.tar.xz
+ boost https://sourceforge.net/projects/boost/files/boost/1.61.0/boost_1_61_0.tar.bz2/download
*** Miscellaneous
+ FFTW http://www.fftw.org/fftw-3.3.4.tar.gz
+ libccmio http://portal.nersc.gov/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz
* Notes
*** Building ParaView-4.3.1/4.4.0
The ParaView-4.3.1/4.4.0 source-pack provided by KitWare will not build and
install correctly without a minor correction: lines 653-656 must be removed
or commented from file
/ThirdParty-3.0.0/ParaView-4.?.?/Qt/Components/CMakeLists.txt/ after
unpacking and renaming the ParaView-4.?.? directory. This is because the
file ui_pqExportStateWizard.h referred to in the lines 653-656:
*** Building ParaView-4.3.1/4.4.0/5.0.0/5.0.1
The ParaView-4.3.1/4.4.0/5.0.0 source-pack provided by KitWare will not
build and install correctly without a minor correction: lines 653-656
(650-653 in ParaView-5.0.0, 659-662 in ParaView-5.0.1) must be removed or
commented from file
/ThirdParty-???/ParaView-[45].?.?/Qt/Components/CMakeLists.txt/ after
unpacking and renaming the ParaView-[45].?.? directory. This is because the
file ui_pqExportStateWizard.h referred to in
#+begin_src C
if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
@ -55,12 +65,28 @@
does not exist and cannot be installed causing the build and installation to
fail.
Additionally for ParaView-4.4.0 there is a bug in the STL reader which can
be patched by running the following command from within the ThirdParty-???
directory:
+ wget https://raw.githubusercontent.com/Kitware/VTK/40937e934308e5009e80769dc0c451ee4f157749/IO/Geometry/vtkSTLReader.cxx -O ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx
See also http://www.openfoam.org/mantisbt/view.php?id=1887
Additionally for ParaView-4.4.0 there is a bug in the STL reader.
(see http://www.openfoam.org/mantisbt/view.php?id=1887).
For ParaView-4.4.0 and ParaView-5.0.1,
the necessary patches are supplied with the ThirdParty repository
(see the etc/patches directory) and are applied when building paraview.
*** Building ParaView-5.0.1 with gcc-6.1.0
***** Add support for gcc-6.?.?
The following cmake files
+ ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake
+ ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake
specifically limit the gcc versions supported.
To add support gcc-6.?.? replace the '[345]' with '[3456]'.
This patch is also supplied with the ThirdParty repository and
applied when building paraview.
***** SciberQuestToolKit
The SciberQuestToolKit plugin fails to compile with gcc-6.1.0 and causes
the compilation of ParaView to halt. The easiest solution is to delete
the ParaView-5.0.1/Plugins/SciberQuestToolKit directory.
*** Building ParaView-4.1.0
On Ubuntu 14.10 and higher, OpenSuSE 13.2 and probably other recent
GNU/Linux distributions there is an issue in the GL libraries requiring a

543
README_scotch Normal file
View File

@ -0,0 +1,543 @@
OpenFOAM uses shared object libraries from the Scotch/PT-Scotch software:
https://www.labri.fr/perso/pelegrin/scotch/
The software is licensed under the CeCILL-C Free Software Licence
Agreement, a copy of which is reproduced below.
Please note the limitation of both the Licensor's warranty and liability
as set forth in Articles 8 and 9 of the Agreement.
If only the object libraries of Scotch are provided, the full source code
can be obtained from:
http://gforge.inria.fr/projects/scotch/
Home page of the SCOTCH project repository.
http://gforge.inria.fr/frs/?group_id=248
File download section of the SCOTCH project repository,
where source tarballs can be downloaded from.
http://gforge.inria.fr/scm/?group_id=248
Source code repository of the SCOTCH project.
http://gforge.inria.fr/docman/?group_id=248
Documentation regarding the SCOTCH project.
---
CeCILL-C FREE SOFTWARE LICENSE AGREEMENT
Notice
This Agreement is a Free Software license agreement that is the result
of discussions between its authors in order to ensure compliance with
the two main principles guiding its drafting:
* firstly, compliance with the principles governing the distribution
of Free Software: access to source code, broad rights granted to
users,
* secondly, the election of a governing law, French law, with which
it is conformant, both as regards the law of torts and
intellectual property law, and the protection that it offers to
both authors and holders of the economic rights over software.
The authors of the CeCILL-C (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
license are:
Commissariat <20> l'Energie Atomique - CEA, a public scientific, technical
and industrial research establishment, having its principal place of
business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
Centre National de la Recherche Scientifique - CNRS, a public scientific
and technological establishment, having its principal place of business
at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
Institut National de Recherche en Informatique et en Automatique -
INRIA, a public scientific and technological establishment, having its
principal place of business at Domaine de Voluceau, Rocquencourt, BP
105, 78153 Le Chesnay cedex, France.
Preamble
The purpose of this Free Software license agreement is to grant users
the right to modify and re-use the software governed by this license.
The exercising of this right is conditional upon the obligation to make
available to the community the modifications made to the source code of
the software so as to contribute to its evolution.
In consideration of access to the source code and the rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors only have limited liability.
In this respect, the risks associated with loading, using, modifying
and/or developing or reproducing the software by the user are brought to
the user's attention, given its Free Software status, which may make it
complicated to use, with the result that its use is reserved for
developers and experienced professionals having in-depth computer
knowledge. Users are therefore encouraged to load and test the
suitability of the software as regards their requirements in conditions
enabling the security of their systems and/or data to be ensured and,
more generally, to use and operate it in the same conditions of
security. This Agreement may be freely reproduced and published,
provided it is not altered, and that no provisions are either added or
removed herefrom.
This Agreement may apply to any or all software for which the holder of
the economic rights decides to submit the use thereof to its provisions.
Article 1 - DEFINITIONS
For the purpose of this Agreement, when the following expressions
commence with a capital letter, they shall have the following meaning:
Agreement: means this license agreement, and its possible subsequent
versions and annexes.
Software: means the software in its Object Code and/or Source Code form
and, where applicable, its documentation, "as is" when the Licensee
accepts the Agreement.
Initial Software: means the Software in its Source Code and possibly its
Object Code form and, where applicable, its documentation, "as is" when
it is first distributed under the terms and conditions of the Agreement.
Modified Software: means the Software modified by at least one
Integrated Contribution.
Source Code: means all the Software's instructions and program lines to
which access is required so as to modify the Software.
Object Code: means the binary files originating from the compilation of
the Source Code.
Holder: means the holder(s) of the economic rights over the Initial
Software.
Licensee: means the Software user(s) having accepted the Agreement.
Contributor: means a Licensee having made at least one Integrated
Contribution.
Licensor: means the Holder, or any other individual or legal entity, who
distributes the Software under the Agreement.
Integrated Contribution: means any or all modifications, corrections,
translations, adaptations and/or new functions integrated into the
Source Code by any or all Contributors.
Related Module: means a set of sources files including their
documentation that, without modification to the Source Code, enables
supplementary functions or services in addition to those offered by the
Software.
Derivative Software: means any combination of the Software, modified or
not, and of a Related Module.
Parties: mean both the Licensee and the Licensor.
These expressions may be used both in singular and plural form.
Article 2 - PURPOSE
The purpose of the Agreement is the grant by the Licensor to the
Licensee of a non-exclusive, transferable and worldwide license for the
Software as set forth in Article 5 hereinafter for the whole term of the
protection granted by the rights over said Software.
Article 3 - ACCEPTANCE
3.1 The Licensee shall be deemed as having accepted the terms and
conditions of this Agreement upon the occurrence of the first of the
following events:
* (i) loading the Software by any or all means, notably, by
downloading from a remote server, or by loading from a physical
medium;
* (ii) the first time the Licensee exercises any of the rights
granted hereunder.
3.2 One copy of the Agreement, containing a notice relating to the
characteristics of the Software, to the limited warranty, and to the
fact that its use is restricted to experienced users has been provided
to the Licensee prior to its acceptance as set forth in Article 3.1
hereinabove, and the Licensee hereby acknowledges that it has read and
understood it.
Article 4 - EFFECTIVE DATE AND TERM
4.1 EFFECTIVE DATE
The Agreement shall become effective on the date when it is accepted by
the Licensee as set forth in Article 3.1.
4.2 TERM
The Agreement shall remain in force for the entire legal term of
protection of the economic rights over the Software.
Article 5 - SCOPE OF RIGHTS GRANTED
The Licensor hereby grants to the Licensee, who accepts, the following
rights over the Software for any or all use, and for the term of the
Agreement, on the basis of the terms and conditions set forth hereinafter.
Besides, if the Licensor owns or comes to own one or more patents
protecting all or part of the functions of the Software or of its
components, the Licensor undertakes not to enforce the rights granted by
these patents against successive Licensees using, exploiting or
modifying the Software. If these patents are transferred, the Licensor
undertakes to have the transferees subscribe to the obligations set
forth in this paragraph.
5.1 RIGHT OF USE
The Licensee is authorized to use the Software, without any limitation
as to its fields of application, with it being hereinafter specified
that this comprises:
1. permanent or temporary reproduction of all or part of the Software
by any or all means and in any or all form.
2. loading, displaying, running, or storing the Software on any or
all medium.
3. entitlement to observe, study or test its operation so as to
determine the ideas and principles behind any or all constituent
elements of said Software. This shall apply when the Licensee
carries out any or all loading, displaying, running, transmission
or storage operation as regards the Software, that it is entitled
to carry out hereunder.
5.2 RIGHT OF MODIFICATION
The right of modification includes the right to translate, adapt,
arrange, or make any or all modifications to the Software, and the right
to reproduce the resulting software. It includes, in particular, the
right to create a Derivative Software.
The Licensee is authorized to make any or all modification to the
Software provided that it includes an explicit notice that it is the
author of said modification and indicates the date of the creation thereof.
5.3 RIGHT OF DISTRIBUTION
In particular, the right of distribution includes the right to publish,
transmit and communicate the Software to the general public on any or
all medium, and by any or all means, and the right to market, either in
consideration of a fee, or free of charge, one or more copies of the
Software by any means.
The Licensee is further authorized to distribute copies of the modified
or unmodified Software to third parties according to the terms and
conditions set forth hereinafter.
5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
The Licensee is authorized to distribute true copies of the Software in
Source Code or Object Code form, provided that said distribution
complies with all the provisions of the Agreement and is accompanied by:
1. a copy of the Agreement,
2. a notice relating to the limitation of both the Licensor's
warranty and liability as set forth in Articles 8 and 9,
and that, in the event that only the Object Code of the Software is
redistributed, the Licensee allows effective access to the full Source
Code of the Software at a minimum during the entire period of its
distribution of the Software, it being understood that the additional
cost of acquiring the Source Code shall not exceed the cost of
transferring the data.
5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
When the Licensee makes an Integrated Contribution to the Software, the
terms and conditions for the distribution of the resulting Modified
Software become subject to all the provisions of this Agreement.
The Licensee is authorized to distribute the Modified Software, in
source code or object code form, provided that said distribution
complies with all the provisions of the Agreement and is accompanied by:
1. a copy of the Agreement,
2. a notice relating to the limitation of both the Licensor's
warranty and liability as set forth in Articles 8 and 9,
and that, in the event that only the object code of the Modified
Software is redistributed, the Licensee allows effective access to the
full source code of the Modified Software at a minimum during the entire
period of its distribution of the Modified Software, it being understood
that the additional cost of acquiring the source code shall not exceed
the cost of transferring the data.
5.3.3 DISTRIBUTION OF DERIVATIVE SOFTWARE
When the Licensee creates Derivative Software, this Derivative Software
may be distributed under a license agreement other than this Agreement,
subject to compliance with the requirement to include a notice
concerning the rights over the Software as defined in Article 6.4.
In the event the creation of the Derivative Software required modification
of the Source Code, the Licensee undertakes that:
1. the resulting Modified Software will be governed by this Agreement,
2. the Integrated Contributions in the resulting Modified Software
will be clearly identified and documented,
3. the Licensee will allow effective access to the source code of the
Modified Software, at a minimum during the entire period of
distribution of the Derivative Software, such that such
modifications may be carried over in a subsequent version of the
Software; it being understood that the additional cost of
purchasing the source code of the Modified Software shall not
exceed the cost of transferring the data.
5.3.4 COMPATIBILITY WITH THE CeCILL LICENSE
When a Modified Software contains an Integrated Contribution subject to
the CeCILL license agreement, or when a Derivative Software contains a
Related Module subject to the CeCILL license agreement, the provisions
set forth in the third item of Article 6.4 are optional.
Article 6 - INTELLECTUAL PROPERTY
6.1 OVER THE INITIAL SOFTWARE
The Holder owns the economic rights over the Initial Software. Any or
all use of the Initial Software is subject to compliance with the terms
and conditions under which the Holder has elected to distribute its work
and no one shall be entitled to modify the terms and conditions for the
distribution of said Initial Software.
The Holder undertakes that the Initial Software will remain ruled at
least by this Agreement, for the duration set forth in Article 4.2.
6.2 OVER THE INTEGRATED CONTRIBUTIONS
The Licensee who develops an Integrated Contribution is the owner of the
intellectual property rights over this Contribution as defined by
applicable law.
6.3 OVER THE RELATED MODULES
The Licensee who develops a Related Module is the owner of the
intellectual property rights over this Related Module as defined by
applicable law and is free to choose the type of agreement that shall
govern its distribution under the conditions defined in Article 5.3.3.
6.4 NOTICE OF RIGHTS
The Licensee expressly undertakes:
1. not to remove, or modify, in any manner, the intellectual property
notices attached to the Software;
2. to reproduce said notices, in an identical manner, in the copies
of the Software modified or not;
3. to ensure that use of the Software, its intellectual property
notices and the fact that it is governed by the Agreement is
indicated in a text that is easily accessible, specifically from
the interface of any Derivative Software.
The Licensee undertakes not to directly or indirectly infringe the
intellectual property rights of the Holder and/or Contributors on the
Software and to take, where applicable, vis-<2D>-vis its staff, any and all
measures required to ensure respect of said intellectual property rights
of the Holder and/or Contributors.
Article 7 - RELATED SERVICES
7.1 Under no circumstances shall the Agreement oblige the Licensor to
provide technical assistance or maintenance services for the Software.
However, the Licensor is entitled to offer this type of services. The
terms and conditions of such technical assistance, and/or such
maintenance, shall be set forth in a separate instrument. Only the
Licensor offering said maintenance and/or technical assistance services
shall incur liability therefor.
7.2 Similarly, any Licensor is entitled to offer to its licensees, under
its sole responsibility, a warranty, that shall only be binding upon
itself, for the redistribution of the Software and/or the Modified
Software, under terms and conditions that it is free to decide. Said
warranty, and the financial terms and conditions of its application,
shall be subject of a separate instrument executed between the Licensor
and the Licensee.
Article 8 - LIABILITY
8.1 Subject to the provisions of Article 8.2, the Licensee shall be
entitled to claim compensation for any direct loss it may have suffered
from the Software as a result of a fault on the part of the relevant
Licensor, subject to providing evidence thereof.
8.2 The Licensor's liability is limited to the commitments made under
this Agreement and shall not be incurred as a result of in particular:
(i) loss due the Licensee's total or partial failure to fulfill its
obligations, (ii) direct or consequential loss that is suffered by the
Licensee due to the use or performance of the Software, and (iii) more
generally, any consequential loss. In particular the Parties expressly
agree that any or all pecuniary or business loss (i.e. loss of data,
loss of profits, operating loss, loss of customers or orders,
opportunity cost, any disturbance to business activities) or any or all
legal proceedings instituted against the Licensee by a third party,
shall constitute consequential loss and shall not provide entitlement to
any or all compensation from the Licensor.
Article 9 - WARRANTY
9.1 The Licensee acknowledges that the scientific and technical
state-of-the-art when the Software was distributed did not enable all
possible uses to be tested and verified, nor for the presence of
possible defects to be detected. In this respect, the Licensee's
attention has been drawn to the risks associated with loading, using,
modifying and/or developing and reproducing the Software which are
reserved for experienced users.
The Licensee shall be responsible for verifying, by any or all means,
the suitability of the product for its requirements, its good working
order, and for ensuring that it shall not cause damage to either persons
or properties.
9.2 The Licensor hereby represents, in good faith, that it is entitled
to grant all the rights over the Software (including in particular the
rights set forth in Article 5).
9.3 The Licensee acknowledges that the Software is supplied "as is" by
the Licensor without any other express or tacit warranty, other than
that provided for in Article 9.2 and, in particular, without any warranty
as to its commercial value, its secured, safe, innovative or relevant
nature.
Specifically, the Licensor does not warrant that the Software is free
from any error, that it will operate without interruption, that it will
be compatible with the Licensee's own equipment and software
configuration, nor that it will meet the Licensee's requirements.
9.4 The Licensor does not either expressly or tacitly warrant that the
Software does not infringe any third party intellectual property right
relating to a patent, software or any other property right. Therefore,
the Licensor disclaims any and all liability towards the Licensee
arising out of any or all proceedings for infringement that may be
instituted in respect of the use, modification and redistribution of the
Software. Nevertheless, should such proceedings be instituted against
the Licensee, the Licensor shall provide it with technical and legal
assistance for its defense. Such technical and legal assistance shall be
decided on a case-by-case basis between the relevant Licensor and the
Licensee pursuant to a memorandum of understanding. The Licensor
disclaims any and all liability as regards the Licensee's use of the
name of the Software. No warranty is given as regards the existence of
prior rights over the name of the Software or as regards the existence
of a trademark.
Article 10 - TERMINATION
10.1 In the event of a breach by the Licensee of its obligations
hereunder, the Licensor may automatically terminate this Agreement
thirty (30) days after notice has been sent to the Licensee and has
remained ineffective.
10.2 A Licensee whose Agreement is terminated shall no longer be
authorized to use, modify or distribute the Software. However, any
licenses that it may have granted prior to termination of the Agreement
shall remain valid subject to their having been granted in compliance
with the terms and conditions hereof.
Article 11 - MISCELLANEOUS
11.1 EXCUSABLE EVENTS
Neither Party shall be liable for any or all delay, or failure to
perform the Agreement, that may be attributable to an event of force
majeure, an act of God or an outside cause, such as defective
functioning or interruptions of the electricity or telecommunications
networks, network paralysis following a virus attack, intervention by
government authorities, natural disasters, water damage, earthquakes,
fire, explosions, strikes and labor unrest, war, etc.
11.2 Any failure by either Party, on one or more occasions, to invoke
one or more of the provisions hereof, shall under no circumstances be
interpreted as being a waiver by the interested Party of its right to
invoke said provision(s) subsequently.
11.3 The Agreement cancels and replaces any or all previous agreements,
whether written or oral, between the Parties and having the same
purpose, and constitutes the entirety of the agreement between said
Parties concerning said purpose. No supplement or modification to the
terms and conditions hereof shall be effective as between the Parties
unless it is made in writing and signed by their duly authorized
representatives.
11.4 In the event that one or more of the provisions hereof were to
conflict with a current or future applicable act or legislative text,
said act or legislative text shall prevail, and the Parties shall make
the necessary amendments so as to comply with said act or legislative
text. All other provisions shall remain effective. Similarly, invalidity
of a provision of the Agreement, for any reason whatsoever, shall not
cause the Agreement as a whole to be invalid.
11.5 LANGUAGE
The Agreement is drafted in both French and English and both versions
are deemed authentic.
Article 12 - NEW VERSIONS OF THE AGREEMENT
12.1 Any person is authorized to duplicate and distribute copies of this
Agreement.
12.2 So as to ensure coherence, the wording of this Agreement is
protected and may only be modified by the authors of the License, who
reserve the right to periodically publish updates or new versions of the
Agreement, each with a separate number. These subsequent versions may
address new issues encountered by Free Software.
12.3 Any Software distributed under a given version of the Agreement may
only be subsequently distributed under the same version of the Agreement
or a subsequent version.
Article 13 - GOVERNING LAW AND JURISDICTION
13.1 The Agreement is governed by French law. The Parties agree to
endeavor to seek an amicable solution to any disagreements or disputes
that may arise during the performance of the Agreement.
13.2 Failing an amicable solution within two (2) months as from their
occurrence, and unless emergency proceedings are necessary, the
disagreements or disputes shall be referred to the Paris Courts having
jurisdiction, by the more diligent Party.
Version 1.0 dated 2006-09-05.

View File

@ -0,0 +1,13 @@
#!/bin/sh
# simple script to generate patches
paraview=ParaView-5.0.1
for i in \
$paraview/VTK/CMake/vtkCompilerExtras.cmake \
$paraview/VTK/CMake/GenerateExportHeader.cmake \
$paraview/Qt/Components/CMakeLists.txt \
;
do
diff -uw $i.orig $i
done

View File

@ -0,0 +1,50 @@
--- ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx.orig 2015-09-11 19:59:24.000000000 +0200
+++ ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx 2016-06-19 12:59:50.769770143 +0200
@@ -448,7 +448,7 @@
done = done || (fscanf(fp,"%s", line)==EOF);
}
}
- if (!done)
+ else if (!done)
{
done = (fgets(line, 255, fp) == 0);
lineCount++;
--- ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake.orig 2016-03-28 17:07:10.000000000 +0200
+++ ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake 2016-06-11 15:10:14.820958942 +0200
@@ -32,7 +32,7 @@
OUTPUT_VARIABLE _gcc_version_info
ERROR_VARIABLE _gcc_version_info)
- string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
+ string (REGEX MATCH "[3-6]\\.[0-9]\\.[0-9]*"
_gcc_version "${_gcc_version_info}")
if(NOT _gcc_version)
string (REGEX REPLACE ".*\\(GCC\\).*([34]\\.[0-9]).*" "\\1.0"
--- ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake.orig 2016-03-28 17:07:10.000000000 +0200
+++ ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake 2016-06-11 15:12:16.344357746 +0200
@@ -166,7 +166,7 @@
execute_process(COMMAND ${CMAKE_C_COMPILER} ARGS --version
OUTPUT_VARIABLE _gcc_version_info
ERROR_VARIABLE _gcc_version_info)
- string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
+ string(REGEX MATCH "[3-6]\\.[0-9]\\.[0-9]*"
_gcc_version "${_gcc_version_info}")
# gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
# patch level, handle this here:
--- ParaView-5.0.1/Qt/Components/CMakeLists.txt.orig 2016-06-13 09:27:27.827849525 +0200
+++ ParaView-5.0.1/Qt/Components/CMakeLists.txt 2016-06-13 09:29:28.599318445 +0200
@@ -656,10 +656,10 @@
#the pqSGExportStateWizard has subclasses that directly access
#the UI file, and currently we don't have a clean way to break this hard
#dependency, so for no we install this ui file.
-if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
- DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
-endif()
+#OPENFOAM patch#if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
+#OPENFOAM patch# install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
+#OPENFOAM patch# DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
+#OPENFOAM patch#endif()
#IF (NOT PV_INSTALL_NO_DEVELOPMENT)
# # Headers

View File

@ -0,0 +1,39 @@
--- ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake.orig 2016-03-28 17:07:10.000000000 +0200
+++ ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake 2016-06-11 15:10:14.820958942 +0200
@@ -32,7 +32,7 @@
OUTPUT_VARIABLE _gcc_version_info
ERROR_VARIABLE _gcc_version_info)
- string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
+ string (REGEX MATCH "[3-6]\\.[0-9]\\.[0-9]*"
_gcc_version "${_gcc_version_info}")
if(NOT _gcc_version)
string (REGEX REPLACE ".*\\(GCC\\).*([34]\\.[0-9]).*" "\\1.0"
--- ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake.orig 2016-03-28 17:07:10.000000000 +0200
+++ ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake 2016-06-11 15:12:16.344357746 +0200
@@ -166,7 +166,7 @@
execute_process(COMMAND ${CMAKE_C_COMPILER} ARGS --version
OUTPUT_VARIABLE _gcc_version_info
ERROR_VARIABLE _gcc_version_info)
- string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
+ string(REGEX MATCH "[3-6]\\.[0-9]\\.[0-9]*"
_gcc_version "${_gcc_version_info}")
# gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
# patch level, handle this here:
--- ParaView-5.0.1/Qt/Components/CMakeLists.txt.orig 2016-06-13 09:27:27.827849525 +0200
+++ ParaView-5.0.1/Qt/Components/CMakeLists.txt 2016-06-13 09:29:28.599318445 +0200
@@ -656,10 +656,10 @@
#the pqSGExportStateWizard has subclasses that directly access
#the UI file, and currently we don't have a clean way to break this hard
#dependency, so for no we install this ui file.
-if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
- DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
-endif()
+#OPENFOAM patch#if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
+#OPENFOAM patch# install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
+#OPENFOAM patch# DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
+#OPENFOAM patch#endif()
#IF (NOT PV_INSTALL_NO_DEVELOPMENT)
# # Headers

View File

@ -0,0 +1,17 @@
--- ParaView-5.1.0/Qt/Components/CMakeLists.txt.orig 2016-06-13 09:27:27.827849525 +0200
+++ ParaView-5.1.0/Qt/Components/CMakeLists.txt 2016-06-13 09:29:28.599318445 +0200
@@ -656,10 +656,10 @@
#the pqSGExportStateWizard has subclasses that directly access
#the UI file, and currently we don't have a clean way to break this hard
#dependency, so for no we install this ui file.
-if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
- DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
-endif()
+#OPENFOAM patch#if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
+#OPENFOAM patch# install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
+#OPENFOAM patch# DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
+#OPENFOAM patch#endif()
#IF (NOT PV_INSTALL_NO_DEVELOPMENT)
# # Headers

10
etc/patches/scotch_6.0.4 Normal file
View File

@ -0,0 +1,10 @@
--- scotch_6.0.4/src/libscotch/common.h.orig 2015-03-01 10:14:02.000000000 +0100
+++ scotch_6.0.4/src/libscotch/common.h 2016-06-16 09:23:00.314985888 +0200
@@ -306,6 +306,8 @@
ThreadLaunchStartFunc stafptr; /*+ Pointer to start routine +*/
ThreadLaunchJoinFunc joifptr; /*+ Pointer to join routine +*/
ThreadBarrier barrdat; /*+ Barrier data structure +*/
+#else
+ int thrdnbr; /* dummy for non-threaded */
#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
} ThreadGroupHeader;

View File

@ -69,17 +69,16 @@ do
;;
-f | -force)
forceOpt=true
shift
;;
[1-9]* | qt-[1-9]*)
qtVERSION="${1%%/}";
qtVERSION="${qtVERSION#qt-}"
shift
;;
*)
usage "unknown option/argument: '$*'"
die "unknown option/argument: '$1'"
;;
esac
shift
done
#------------------------------------------------------------------------------

View File

@ -2,8 +2,8 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
# \\/ M anipulation |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -32,14 +32,14 @@
# buildBASE, installBASE defined from tools/ThirdPartyFunctions
#
# where things are or should be put
# Where things are or should be put
# ParaView_VERSION and ParaView_MAJOR should already have been set
#
# ParaView_SOURCE_DIR : location of the original sources
# ParaView_BINARY_DIR : location of the build
# ParaView_DIR : location of the installed program
#
setDirs()
setParaViewDirs()
{
ParaView_SOURCE_DIR=$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
@ -51,10 +51,10 @@ setDirs()
exit 1
}
# ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION-$OBJ_ADD
# ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION${OBJ_ADD:+-$OBJ_ADD}
ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION
# ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION-$OBJ_ADD
# ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION${OBJ_ADD:+-$OBJ_ADD}
ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION
export ParaView_SOURCE_DIR ParaView_BINARY_DIR ParaView_DIR
@ -63,17 +63,27 @@ setDirs()
echo "ParaView_SOURCE_DIR=$ParaView_SOURCE_DIR"
echo "ParaView_BINARY_DIR=$ParaView_BINARY_DIR"
echo "ParaView_DIR=$ParaView_DIR"
# Forcefully override the .git path for the ParaView source code directory
export GIT_DIR=$ParaView_SOURCE_DIR/.git
}
#
# set ParaView_VERSION and adjust ParaView_MAJOR accordingly
# Set ParaView_VERSION and adjust ParaView_MAJOR accordingly
#
setVersion()
# $1 can contain something something like 4.4.0, paraview-4.4.0, ParaView-4.0.0
#
setParaViewVersion()
{
[ "$#" -ge 1 ] && ParaView_VERSION="${1##paraview-}"
[ $# -gt 0 ] || {
echo "Error: function setParaViewVersion() called without an argument"
exit 1
}
# the major version is "<digits>.<digits>"
ParaView_VERSION="${1##*-}"
# The major version is "<digits>.<digits>"
ParaView_MAJOR=$(echo $ParaView_VERSION | \
sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/')
@ -84,58 +94,27 @@ setVersion()
#------------------------------------------------------------------------------
#
# extract and echo date stamp information from
# VTK/Utilities/kwsys/kwsysDateStamp.cmake
# since the order of the entries is already correct, can use simple sed script
#
echoDateStamp()
{
(
set -- $(
sed -ne 's/^SET(KWSYS_DATE_STAMP_[A-Z]*\([ 0-9]*\)).*$/\1/p' \
$ParaView_SOURCE_DIR/VTK/Utilities/kwsys/kwsysDateStamp.cmake
)
IFS='-'
echo "date-stamp: $*"
)
}
#
# extract version information from
# CMakeLists.txt
# since the order of the entries is already correct, can use simple sed script
#
getVersion()
{
(
set -- $(
sed -ne 's/^SET(PARAVIEW_VERSION_[A-Z]*\([ 0-9]*\)).*$/\1/p' \
$ParaView_SOURCE_DIR/CMakeLists.txt
)
IFS='.'
echo "$*"
)
}
#
# compare version information
# Compare version information (specified vs what is found in CMakeLists.txt)
# Parse this type of content:
# set (PARAVIEW_VERSION_FULL "3.98.1")
#
checkVersion()
{
local ver=$(getVersion)
local ver=$(
sed -ne 's/^ *set *( *PARAVIEW_VERSION_FULL[ "]*\([.0-9]*\).*$/\1/ip' \
$ParaView_SOURCE_DIR/CMakeLists.txt
)
if [ "$ParaView_VERSION" != "$ver" ]
then
echo "MISMATCH!"
echo " specified $ParaView_VERSION"
echo " found $ver"
echo " found ${ver:-NONE}"
fi
}
#
# set CMake cache variables
# Set CMake cache variables
#
addCMakeVariable()
{
@ -148,20 +127,27 @@ addCMakeVariable()
#
# verbose makefiles
# Verbose makefiles
#
addVerbosity()
{
[ "$withVERBOSE" = true ] && addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
if [ "${withVERBOSE:=false}" = true ]
then
addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
fi
}
#
# define options for mpi support
# Define options for mpi support
#
addMpiSupport()
{
[ "${withMPI:=false}" = true ] || return
if [ "${withMPI:=false}" != true ]
then
return
fi
OBJ_ADD="$OBJ_ADD-mpi"
addCMakeVariable "PARAVIEW_USE_MPI=ON VTK_USE_MPI=ON"
@ -170,18 +156,22 @@ addMpiSupport()
#
# define options for python support
# Define options for python support
#
addPythonSupport()
{
[ "${withPYTHON:=false}" = true ] || return
if [ "${withPYTHON:=false}" != true ]
then
return
fi
OBJ_ADD="$OBJ_ADD-py"
if pythonBin=$(which python 2>/dev/null)
then
if [ -n "$PYTHON_LIBRARY" ]
then
# check $PYTHON_LIBRARY if it has been set
# Check $PYTHON_LIBRARY if it has been set
if [ ! -e "$PYTHON_LIBRARY" ]
then
echo "*** Error: libpython not found at location specified " \
@ -192,9 +182,9 @@ addPythonSupport()
PYTHON_LIBRARY=$(ldd $pythonBin | \
sed -ne '/libpython/s/.* => \(.*\) (.*/\1/p')
[ -e "$PYTHON_LIBRARY" ] || {
echo "*** Error: Unable to determine path to python library."
}
[ -e "$PYTHON_LIBRARY" ] || {
echo "*** Error: Unable to determine path to python library."
}
fi
[ -e "$PYTHON_LIBRARY" ] || {
@ -208,7 +198,7 @@ addPythonSupport()
pythonMajor=$(echo $PYTHON_LIBRARY | sed 's/.*libpython\(.*\)\.so.*/\1/')
pythonInclude=/usr/include/python$pythonMajor
# note - we could also allow for a PYTHON_INCLUDE variable ...
# Note - we could also allow for a PYTHON_INCLUDE variable ...
[ -d "$pythonInclude" ] || {
echo " No python headers found in $pythonInclude/"
echo " Please install python headers or deactivate "
@ -238,17 +228,20 @@ addPythonSupport()
#
# define options for mesa support
# Define options for mesa support
#
addMesaSupport()
{
[ "${withMESA:=false}" = true ] || return
if [ "${withMESA:=false}" != true ]
then
return
fi
if [ -d "$MESA_INCLUDE" -a -f "$MESA_LIBRARY" ]
then
OBJ_ADD="$OBJ_ADD-mesa"
addCMakeVariable "VTK_OPENGL_HAS_OSMESA=ON"
addCMakeVariable "VTK_OPENGL_HAS_OSMESA:BOOL=ON"
addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE"
addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY"
@ -266,69 +259,33 @@ addMesaSupport()
addQtSupport()
{
QtVersion=none
[ "${withQT:=false}" = true ] || return
if [ "${withQT:=false}" != true ]
then
return
fi
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON"
unset qmakeExe
if [ -n "$QMAKE_PATH" ]
then
if [ -d "$QMAKE_PATH" ]
then
if [ -x "$QMAKE_PATH/qmake" ]
then
qmakeExe=$QMAKE_PATH/qmake
elif [ -x "$QMAKE_PATH/bin/qmake" ]
then
qmakeExe=$QMAKE_PATH/bin/qmake
fi
elif [ -x "$QMAKE_PATH" ]
then
qmakeExe=$QMAKE_PATH
fi
if [ -n "$qmakeExe" ]
then
# use absolute path
if [ "${qmakeExe#/}" = "$qmakeExe" ]
then
qmakeExe="$(cd ${qmakeExe%/qmake} 2>/dev/null && pwd)/qmake"
fi
else
echo
echo "qmake not found under specified QMAKE_PATH"
echo " QMAKE_PATH=$QMAKE_PATH"
echo "leaving unspecified"
echo
fi
fi
# default to using qmake from the path
if [ -n "$qmakeExe" ]
then
addCMakeVariable "QT_QMAKE_EXECUTABLE:FILEPATH=$qmakeExe"
else
qmakeExe=qmake
fi
local qmake=$(findQtMake)
# Check qmake can be found
if type $qmakeExe >/dev/null 2>&1
if type $qmake >/dev/null 2>&1
then
# Check the Qt version selected
# parse -> "Using Qt version X.Y.Z in ..."
QtVersion=$($qmakeExe -query QT_VERSION)
QtVersion=$($qmake -query QT_VERSION)
# split Major.Minor.Revision - could also use IFS hacking
# Split Major.Minor.Revision - could also use IFS hacking
set -- $(echo "$QtVersion" | sed -e 's/\./ /g')
QtMajor=$1
QtMinor=$2
if [ $QtMajor -lt 4 ] || [ $QtMajor -eq 4 -a $QtMinor -lt 5 ]
if [ $QtMajor -ne 4 -o $QtMajor -eq 4 -a $QtMinor -lt 5 ]
then
echo "*** Error: Qt version provided < 4.5"
echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.5 "
echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.5 and < 5.0"
echo "*** e.g."
echo "*** -qmake /usr/local/qt-4.6.2/bin/qmake"
echo "*** -qmake $installBASE/qt-4.6.2/bin/qmake"
@ -342,47 +299,13 @@ addQtSupport()
#
# configure via cmake, but don't actually build anything
# Configure via cmake, but don't actually build anything
#
configParaView()
{
unset cmakeExe
if [ -n "$CMAKE_PATH" ]
then
if [ -d "$CMAKE_PATH" ]
then
if [ -x "$CMAKE_PATH/cmake" ]
then
cmakeExe=$CMAKE_PATH/cmake
elif [ -x "$CMAKE_PATH/bin/cmake" ]
then
cmakeExe=$CMAKE_PATH/bin/cmake
fi
elif [ -x "$CMAKE_PATH" ]
then
cmakeExe=$CMAKE_PATH
fi
local cmake=$(findCMake)
if [ -n "$cmakeExe" ]
then
# use absolute path
if [ "${cmakeExe#/}" = "$cmakeExe" ]
then
cmakeExe="$(cd ${cmakeExe%/cmake} 2>/dev/null && pwd)/cmake"
fi
else
echo
echo "cmake not found under specified CMAKE_PATH"
echo " CMAKE_PATH=$CMAKE_PATH"
echo "leaving unspecified"
echo
fi
fi
# default to using cmake from the path
[ -n "$cmakeExe" ] || cmakeExe=cmake
# remove any existing build folder and recreate
# Remove any existing build folder and recreate
if [ -d $ParaView_BINARY_DIR ]
then
echo "removing old build directory"
@ -391,23 +314,22 @@ configParaView()
fi
mkdir -p $ParaView_BINARY_DIR
addCMakeVariable "CMAKE_BUILD_TYPE:STRING=$buildType"
cd $ParaView_BINARY_DIR || exit 1 # change to build folder
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
echo "----"
echo "Configuring paraview-$ParaView_VERSION (major version: $ParaView_MAJOR)"
echo " MPI support : ${withMPI:-false}"
echo " Python support : ${withPYTHON:-false}"
echo " MESA support : ${withMESA:-false}"
echo " GL2 rendering : false"
echo " Qt dev support : ${withQT:-false}"
echo " Source : $ParaView_SOURCE_DIR"
echo " Build : $ParaView_BINARY_DIR"
echo " Target : $ParaView_DIR"
echo " Build type : $buildType"
echo " Cmake : $cmake"
echo "----"
echo
echo "$cmakeExe" \
echo "$cmake" \
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
$CMAKE_VARIABLES \
$ParaView_SOURCE_DIR
@ -415,8 +337,8 @@ configParaView()
echo "----"
echo
# run cmake to create Makefiles
$cmakeExe \
# Run cmake to create Makefiles
$cmake -Wno-dev \
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
$CMAKE_VARIABLES \
$ParaView_SOURCE_DIR
@ -424,40 +346,53 @@ configParaView()
#
# invoke make
# Invoke make
# also link bin/ to lib/paraview-* for development without installation
#
makeParaView()
{
cd $ParaView_BINARY_DIR || exit 1 # change to build folder
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
echo " Starting make"
time make -j $WM_NCOMPPROCS
echo " Done make"
# remove lib if it is a link
# Remove lib if it is a link
# (how this was previously handled before 'make install' worked)
[ -L lib ] && rm lib 2>/dev/null
if [ -L lib ]
then
rm lib 2>/dev/null
fi
}
#
# install the program
# Install the program
#
installParaView()
{
cd $ParaView_BINARY_DIR || exit 1 # change to build folder
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
echo " Installing ParaView to $ParaView_DIR"
make install
# hack for missing files after install of version 3.14.1
echo "Copying missing files to install folder"
CMAKE_SRC_DIR=$ParaView_SOURCE_DIR/CMake
CMAKE_INSTALL_DIR=$ParaView_DIR/lib/paraview-$ParaView_MAJOR/CMake
cp -f $ParaView_SOURCE_DIR/ParaViewUse.cmake $CMAKE_INSTALL_DIR
cp -f $CMAKE_SRC_DIR/generate_proxydocumentation.cmake $CMAKE_INSTALL_DIR
cp -f $CMAKE_SRC_DIR/smxml_to_xml.xsl $CMAKE_INSTALL_DIR
cp -f $CMAKE_SRC_DIR/xml_to_html.xsl $CMAKE_INSTALL_DIR
cp -f $CMAKE_SRC_DIR/xml_to_wiki.xsl.in $CMAKE_INSTALL_DIR
cp -f $CMAKE_SRC_DIR/generate_qhp.cmake $CMAKE_INSTALL_DIR
unset CMAKE_SRC_DIR CMAKE_INSTALL_DIR
# --- end hack
cat<< INFO
---
Installation complete for paraview-$ParaView_VERSION
Set environment variables:
export ParaView_DIR=$ParaView_DIR
export PATH=\$ParaView_DIR/bin:\$PATH
export PV_PLUGIN_PATH=\$FOAM_LIBBIN/paraview-$ParaView_MAJOR
Now update the environment by running:
wmREFRESH
---
INFO
}
@ -465,23 +400,27 @@ INFO
#------------------------------------------------------------------------------
# clear the referenced variables before using any of the functions
# Clear the referenced variables before using any of the functions
unset withMPI withVERBOSE
unset withQT QMAKE_PATH
unset withMESA MESA_INCLUDE MESA_LIBRARY
unset withPYTHON PYTHON_INCLUDE PYTHON_LIBRARY
unset CMAKE_VARIABLES
unset OBJ_ADD
unset buildType
# start with these general settings
# Start with these general settings
addCMakeVariable "VTK_USE_TK:BOOL=OFF"
addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON VTK_USE_RPATH:BOOL=OFF"
addCMakeVariable "CMAKE_BUILD_TYPE:STRING=Release"
# include development files in "make install"
addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON"
# Include development files in "make install"
addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT:BOOL=ON"
# don't build test tree
# Don't build test tree
addCMakeVariable "BUILD_TESTING:BOOL=OFF"
# remove dependency on WebKit
# addCMakeVariable VTK_QT_USE_WEBKIT:BOOL=OFF
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

@ -2,8 +2,8 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
# \\/ M anipulation |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -32,14 +32,14 @@
# buildBASE, installBASE defined from tools/ThirdPartyFunctions
#
# where things are or should be put
# Where things are or should be put
# ParaView_VERSION and ParaView_MAJOR should already have been set
#
# ParaView_SOURCE_DIR : location of the original sources
# ParaView_BINARY_DIR : location of the build
# ParaView_DIR : location of the installed program
#
setDirs()
setParaViewDirs()
{
ParaView_SOURCE_DIR=$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
@ -51,10 +51,10 @@ setDirs()
exit 1
}
# ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION-$OBJ_ADD
# ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION${OBJ_ADD:+-$OBJ_ADD}
ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION
# ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION-$OBJ_ADD
# ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION${OBJ_ADD:+-$OBJ_ADD}
ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION
export ParaView_SOURCE_DIR ParaView_BINARY_DIR ParaView_DIR
@ -63,17 +63,27 @@ setDirs()
echo "ParaView_SOURCE_DIR=$ParaView_SOURCE_DIR"
echo "ParaView_BINARY_DIR=$ParaView_BINARY_DIR"
echo "ParaView_DIR=$ParaView_DIR"
# Forcefully override the .git path for the ParaView source code directory
export GIT_DIR=$ParaView_SOURCE_DIR/.git
}
#
# set ParaView_VERSION and adjust ParaView_MAJOR accordingly
# Set ParaView_VERSION and adjust ParaView_MAJOR accordingly
#
setVersion()
# $1 can contain something something like 4.4.0, paraview-4.4.0, ParaView-4.0.0
#
setParaViewVersion()
{
[ "$#" -ge 1 ] && ParaView_VERSION="${1##paraview-}"
[ $# -gt 0 ] || {
echo "Error: function setParaViewVersion() called without an argument"
exit 1
}
# the major version is "<digits>.<digits>"
ParaView_VERSION="${1##*-}"
# The major version is "<digits>.<digits>"
ParaView_MAJOR=$(echo $ParaView_VERSION | \
sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/')
@ -84,58 +94,27 @@ setVersion()
#------------------------------------------------------------------------------
#
# extract and echo date stamp information from
# VTK/Utilities/kwsys/kwsysDateStamp.cmake
# since the order of the entries is already correct, can use simple sed script
#
echoDateStamp()
{
(
set -- $(
sed -ne 's/^SET(KWSYS_DATE_STAMP_[A-Z]*\([ 0-9]*\)).*$/\1/p' \
$ParaView_SOURCE_DIR/VTK/Utilities/kwsys/kwsysDateStamp.cmake
)
IFS='-'
echo "date-stamp: $*"
)
}
#
# extract version information from
# CMakeLists.txt
# since the order of the entries is already correct, can use simple sed script
#
getVersion()
{
(
set -- $(
sed -ne 's/^SET(PARAVIEW_VERSION_[A-Z]*\([ 0-9]*\)).*$/\1/p' \
$ParaView_SOURCE_DIR/CMakeLists.txt
)
IFS='.'
echo "$*"
)
}
#
# compare version information
# Compare version information (specified vs what is found in CMakeLists.txt)
# Parse this type of content:
# set (PARAVIEW_VERSION_FULL "5.0.1")
#
checkVersion()
{
local ver=$(getVersion)
local ver=$(
sed -ne 's/^ *set *( *PARAVIEW_VERSION_FULL[ "]*\([.0-9]*\).*$/\1/ip' \
$ParaView_SOURCE_DIR/CMakeLists.txt
)
if [ "$ParaView_VERSION" != "$ver" ]
then
echo "MISMATCH!"
echo " specified $ParaView_VERSION"
echo " found $ver"
echo " found ${ver:-NONE}"
fi
}
#
# set CMake cache variables
# Set CMake cache variables
#
addCMakeVariable()
{
@ -148,40 +127,54 @@ addCMakeVariable()
#
# verbose makefiles
# Verbose makefiles
#
addVerbosity()
{
[ "$withVERBOSE" = true ] && addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
if [ "${withVERBOSE:=false}" = true ]
then
addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
fi
}
#
# define options for mpi support
# Define options for mpi support
#
addMpiSupport()
{
[ "${withMPI:=false}" = true ] || return
if [ "${withMPI:=false}" != true ]
then
return
fi
OBJ_ADD="$OBJ_ADD-mpi"
addCMakeVariable "PARAVIEW_USE_MPI=ON VTK_USE_MPI=ON"
addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS"
if [ "${MPI_MAX_PROCS:=0}" -gt 1 ]
then
addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS"
fi
}
#
# define options for python support
# Define options for python support
#
addPythonSupport()
{
[ "${withPYTHON:=false}" = true ] || return
if [ "${withPYTHON:=false}" != true ]
then
return
fi
OBJ_ADD="$OBJ_ADD-py"
if pythonBin=$(which python 2>/dev/null)
then
if [ -n "$PYTHON_LIBRARY" ]
then
# check $PYTHON_LIBRARY if it has been set
# Check $PYTHON_LIBRARY if it has been set
if [ ! -e "$PYTHON_LIBRARY" ]
then
echo "*** Error: libpython not found at location specified " \
@ -192,9 +185,9 @@ addPythonSupport()
PYTHON_LIBRARY=$(ldd $pythonBin | \
sed -ne '/libpython/s/.* => \(.*\) (.*/\1/p')
[ -e "$PYTHON_LIBRARY" ] || {
echo "*** Error: Unable to determine path to python library."
}
[ -e "$PYTHON_LIBRARY" ] || {
echo "*** Error: Unable to determine path to python library."
}
fi
[ -e "$PYTHON_LIBRARY" ] || {
@ -208,8 +201,8 @@ addPythonSupport()
pythonMajor=$(echo $PYTHON_LIBRARY | sed 's/.*libpython\(.*\)\.so.*/\1/')
pythonInclude=/usr/include/python$pythonMajor
# note - we could also allow for a PYTHON_INCLUDE variable ...
[ -d "$pythonInclude" ] || {
# Note - we could also allow for a PYTHON_INCLUDE variable ...
[ -d "$pythonInclude" -a -f "$pythonInclude/Python.h" ] || {
echo " No python headers found in $pythonInclude/"
echo " Please install python headers or deactivate "
echo " python support by not using the -python option"
@ -217,7 +210,7 @@ addPythonSupport()
}
addCMakeVariable "PARAVIEW_ENABLE_PYTHON=ON"
addCMakeVariable "PYTHON_INCLUDE_PATH=$pythonInclude"
addCMakeVariable "PYTHON_INCLUDE_DIRS=$pythonInclude"
addCMakeVariable "PYTHON_LIBRARY=$PYTHON_LIBRARY"
echo "----"
@ -238,17 +231,20 @@ addPythonSupport()
#
# define options for mesa support
# Define options for mesa support
#
addMesaSupport()
{
[ "${withMESA:=false}" = true ] || return
if [ "${withMESA:=false}" != true ]
then
return
fi
if [ -d "$MESA_INCLUDE" -a -f "$MESA_LIBRARY" ]
then
OBJ_ADD="$OBJ_ADD-mesa"
addCMakeVariable "VTK_OPENGL_HAS_OSMESA=ON"
addCMakeVariable "VTK_OPENGL_HAS_OSMESA:BOOL=ON"
addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE"
addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY"
@ -263,72 +259,54 @@ addMesaSupport()
}
#
# new rendering backend
#
addGL2Support()
{
if [ "${withGL2:=false}" = true ]
then
addCMakeVariable "VTK_RENDERING_BACKEND=OpenGL2"
fi
}
addQtSupport()
{
QtVersion=none
[ "${withQT:=false}" = true ] || return
if [ "${withQT:=false}" != true ]
then
return
fi
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON"
unset qmakeExe
if [ -n "$QMAKE_PATH" ]
local qmake=$(findQtMake)
# From somewhere other than in the path
if [ "${qmake:=qmake}" != qmake ]
then
if [ -d "$QMAKE_PATH" ]
then
if [ -x "$QMAKE_PATH/qmake" ]
then
qmakeExe=$QMAKE_PATH/qmake
elif [ -x "$QMAKE_PATH/bin/qmake" ]
then
qmakeExe=$QMAKE_PATH/bin/qmake
fi
elif [ -x "$QMAKE_PATH" ]
then
qmakeExe=$QMAKE_PATH
fi
if [ -n "$qmakeExe" ]
then
# use absolute path
if [ "${qmakeExe#/}" = "$qmakeExe" ]
then
qmakeExe="$(cd ${qmakeExe%/qmake} 2>/dev/null && pwd)/qmake"
fi
else
echo
echo "qmake not found under specified QMAKE_PATH"
echo " QMAKE_PATH=$QMAKE_PATH"
echo "leaving unspecified"
echo
fi
addCMakeVariable "QT_QMAKE_EXECUTABLE:FILEPATH=$qmake"
fi
# default to using qmake from the path
if [ -n "$qmakeExe" ]
then
addCMakeVariable "QT_QMAKE_EXECUTABLE:FILEPATH=$qmakeExe"
else
qmakeExe=qmake
fi
# Check qmake can be found
if type $qmakeExe >/dev/null 2>&1
if type $qmake >/dev/null 2>&1
then
# Check the Qt version selected
# parse -> "Using Qt version X.Y.Z in ..."
QtVersion=$($qmakeExe -query QT_VERSION)
QtVersion=$($qmake -query QT_VERSION)
# split Major.Minor.Revision - could also use IFS hacking
# Split Major.Minor.Revision - could also use IFS hacking
set -- $(echo "$QtVersion" | sed -e 's/\./ /g')
QtMajor=$1
QtMinor=$2
if [[ ($QtMajor -lt 4) || ($QtMajor -eq 4 && $QtMinor -lt 5) ]]
if [ $QtMajor -lt 4 -o $QtMajor -eq 4 -a $QtMinor -lt 5 ]
then
echo "*** Error: Qt version provided < 4.5"
echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.5 "
echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.5"
echo "*** e.g."
echo "*** -qmake /usr/local/qt-4.6.2/bin/qmake"
echo "*** -qmake $installBASE/qt-4.6.2/bin/qmake"
@ -342,47 +320,22 @@ addQtSupport()
#
# configure via cmake, but don't actually build anything
# Apply source-code patch if possible
#
patchParaView()
{
applyPatch "paraview-$ParaView_VERSION" "$ParaView_SOURCE_DIR"
}
#
# Configure via cmake, but don't actually build anything
#
configParaView()
{
unset cmakeExe
if [ -n "$CMAKE_PATH" ]
then
if [ -d "$CMAKE_PATH" ]
then
if [ -x "$CMAKE_PATH/cmake" ]
then
cmakeExe=$CMAKE_PATH/cmake
elif [ -x "$CMAKE_PATH/bin/cmake" ]
then
cmakeExe=$CMAKE_PATH/bin/cmake
fi
elif [ -x "$CMAKE_PATH" ]
then
cmakeExe=$CMAKE_PATH
fi
local cmake=$(findCMake)
if [ -n "$cmakeExe" ]
then
# use absolute path
if [ "${cmakeExe#/}" = "$cmakeExe" ]
then
cmakeExe="$(cd ${cmakeExe%/cmake} 2>/dev/null && pwd)/cmake"
fi
else
echo
echo "cmake not found under specified CMAKE_PATH"
echo " CMAKE_PATH=$CMAKE_PATH"
echo "leaving unspecified"
echo
fi
fi
# default to using cmake from the path
[ -n "$cmakeExe" ] || cmakeExe=cmake
# remove any existing build folder and recreate
# Remove any existing build folder and recreate
if [ -d $ParaView_BINARY_DIR ]
then
echo "removing old build directory"
@ -391,20 +344,25 @@ configParaView()
fi
mkdir -p $ParaView_BINARY_DIR
cd $ParaView_BINARY_DIR || exit 1 # change to build folder
addCMakeVariable "CMAKE_BUILD_TYPE:STRING=$buildType"
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
echo "----"
echo "Configuring paraview-$ParaView_VERSION (major version: $ParaView_MAJOR)"
echo " MPI support : ${withMPI:-false}"
echo " Python support : ${withPYTHON:-false}"
echo " MESA support : ${withMESA:-false}"
echo " GL2 rendering : ${withGL2:-false}"
echo " Qt dev support : ${withQT:-false}"
echo " Source : $ParaView_SOURCE_DIR"
echo " Build : $ParaView_BINARY_DIR"
echo " Target : $ParaView_DIR"
echo " Build type : $buildType"
echo " Cmake : $cmake"
echo "----"
echo
echo "$cmakeExe" \
echo "$cmake" \
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
$CMAKE_VARIABLES \
$ParaView_SOURCE_DIR
@ -412,8 +370,8 @@ configParaView()
echo "----"
echo
# run cmake to create Makefiles
$cmakeExe \
# Run cmake to create Makefiles
$cmake \
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
$CMAKE_VARIABLES \
$ParaView_SOURCE_DIR
@ -421,53 +379,43 @@ configParaView()
#
# invoke make
# Invoke make
# also link bin/ to lib/paraview-* for development without installation
#
makeParaView()
{
cd $ParaView_BINARY_DIR || exit 1 # change to build folder
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
echo " Starting make"
time make -j $WM_NCOMPPROCS
echo " Done make"
# remove lib if it is a link
# Remove lib if it is a link
# (how this was previously handled before 'make install' worked)
[ -L lib ] && rm lib 2>/dev/null
if [ -L lib ]
then
rm lib 2>/dev/null
fi
}
#
# install the program
# Install the program
#
installParaView()
{
cd $ParaView_BINARY_DIR || exit 1 # change to build folder
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
echo " Installing ParaView to $ParaView_DIR"
make install
# hack for missing files after install of version 3.14.1
echo "Copying missing files to install folder"
CMAKE_SRC_DIR=$ParaView_SOURCE_DIR/CMake
CMAKE_INSTALL_DIR=$ParaView_DIR/lib/paraview-$ParaView_MAJOR/CMake
cp -f $ParaView_SOURCE_DIR/ParaViewUse.cmake $CMAKE_INSTALL_DIR
cp -f $CMAKE_SRC_DIR/generate_proxydocumentation.cmake $CMAKE_INSTALL_DIR
cp -f $CMAKE_SRC_DIR/smxml_to_xml.xsl $CMAKE_INSTALL_DIR
cp -f $CMAKE_SRC_DIR/xml_to_html.xsl $CMAKE_INSTALL_DIR
cp -f $CMAKE_SRC_DIR/xml_to_wiki.xsl.in $CMAKE_INSTALL_DIR
cp -f $CMAKE_SRC_DIR/generate_qhp.cmake $CMAKE_INSTALL_DIR
unset CMAKE_SRC_DIR CMAKE_INSTALL_DIR
# --- end hack
cat<< INFO
---
Installation complete for paraview-$ParaView_VERSION
Set environment variables:
ParaView_DIR=$ParaView_DIR
export ParaView_DIR=$ParaView_DIR
export PATH=\$ParaView_DIR/bin:\$PATH
export PV_PLUGIN_PATH=\$FOAM_LIBBIN/paraview-$ParaView_MAJOR
You may need to update the OpenFOAM environment by running:
wmREFRESH
---
INFO
}
@ -475,27 +423,23 @@ INFO
#------------------------------------------------------------------------------
# clear the referenced variables before using any of the functions
# Clear the referenced variables before using any of the functions
unset withMPI withVERBOSE
unset withQT QMAKE_PATH
unset withMESA MESA_INCLUDE MESA_LIBRARY
unset withPYTHON PYTHON_INCLUDE PYTHON_LIBRARY
unset CMAKE_VARIABLES
unset OBJ_ADD
unset buildType
# start with these general settings
addCMakeVariable "VTK_USE_TK:BOOL=OFF"
# Start with these general settings
addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON VTK_USE_RPATH:BOOL=OFF"
addCMakeVariable "CMAKE_BUILD_TYPE:STRING=Release"
# include development files in "make install"
addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT:BOOL=ON"
# Include development files in "make install"
addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON"
# don't build test tree
# Don't build test tree
addCMakeVariable "BUILD_TESTING:BOOL=OFF"
# remove dependency on WebKit
# addCMakeVariable VTK_QT_USE_WEBKIT:BOOL=OFF
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

@ -2,8 +2,8 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
# \\/ M anipulation |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -31,29 +31,198 @@
# Define WM_NCOMPPROCS always.
#------------------------------------------------------------------------------
# define the normal build and prefix directories
# Define the normal build and prefix directories
buildBASE=$WM_THIRD_PARTY_DIR/build/$WM_ARCH$WM_COMPILER
installBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
#
# mostly building without wmake
# Mostly building without wmake
# - disable wmakeScheduler variables
# - restrict WM_NCOMPPROCS to local number of cores
# - use max number of cores for building
#
unset WM_HOSTS WM_SCHEDULER
export WM_NCOMPPROCS=$(egrep "^processor" /proc/cpuinfo 2>/dev/null | wc -l)
if [ $WM_NCOMPPROCS -le 1 ]
if [ -r /proc/cpuinfo ]
then
WM_NCOMPPROCS=$(egrep "^processor" /proc/cpuinfo | wc -l)
else
WM_NCOMPPROCS=1
elif [ $WM_NCOMPPROCS -ge 8 ]
then
WM_NCOMPPROCS=8
fi
export WM_NCOMPPROCS
# echo "Building on $WM_NCOMPPROCS cores"
#
# download file $1 from url $2 into download/ directory
# If WM_CONTINUE_ON_ERROR not set activate the shell option "stop on error"
#
if [ -z "${WM_CONTINUE_ON_ERROR}" ]
then
set -e
fi
# Report error and exit
die()
{
exec 1>&2
echo
echo "Error: see '${0##*/} -help' for usage"
while [ "$#" -ge 1 ]; do echo " $1"; shift; done
echo
exit 1
}
# Test if it matches "*-none"
_foamIsNone()
{
test "${1##*-}" = none
}
# Test if it matches "*-system"
_foamIsSystem()
{
test "${1##*-}" = system
}
#
# try to locate cmake according to the CMAKE_PATH
# or just use what is found in the path
#
findCMake()
{
local candidate
local foundExe
if [ -n "$CMAKE_PATH" ]
then
# check as directory
if [ -d "$CMAKE_PATH" ]
then
for candidate in \
$CMAKE_PATH/cmake \
$CMAKE_PATH/bin/cmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
# check as file, include ThirdParty installation in the search
if [ -z "$foundExe" ]
then
for candidate in \
$CMAKE_PATH \
$installBASE/$CMAKE_PATH/bin/cmake \
$installBASE/cmake-$CMAKE_PATH/bin/cmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
if [ -n "$foundExe" ]
then
# Use absolute path
if [ "${foundExe#/}" = "$foundExe" ]
then
foundExe="$(cd ${foundExe%/cmake} 2>/dev/null && pwd)/cmake"
fi
echo "$foundExe"
return 0
else
cat << NOT_FOUND 1>&2
'cmake' not found under specified CMAKE_PATH
CMAKE_PATH=$CMAKE_PATH
reverting to using command from path
NOT_FOUND
fi
fi
# Default is cmake from the path
echo cmake
}
#
# try to locate qmake according to the QMAKE_PATH
# or just use what is found in the path
#
findQtMake()
{
local candidate
local foundExe
if [ -n "$QMAKE_PATH" ]
then
# check as directory
if [ -d "$QMAKE_PATH" ]
then
for candidate in \
$QMAKE_PATH/qmake \
$QMAKE_PATH/bin/qmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
# check as file, include ThirdParty installation in the search
if [ -z "$foundExe" ]
then
for candidate in \
$QMAKE_PATH \
$installBASE/$QMAKE_PATH/bin/qmake \
$installBASE/qt-$QMAKE_PATH/bin/qmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
if [ -n "$foundExe" ]
then
# Use absolute path
if [ "${foundExe#/}" = "$foundExe" ]
then
foundExe="$(cd ${foundExe%/qmake} 2>/dev/null && pwd)/qmake"
fi
echo "$foundExe"
return 0
else
cat << NOT_FOUND 1>&2
'qmake' not found under specified QMAKE_PATH
QMAKE_PATH=$QMAKE_PATH
reverting to using command from path
NOT_FOUND
fi
fi
# Default is qmake from the path
echo qmake
}
#
# Download file $1 from url $2 into download/ directory
#
downloadFile()
{
@ -62,8 +231,8 @@ downloadFile()
return 1
}
file="$1"
url="$2"
local file="$1"
local url="$2"
if [ ! -e download/$file ]
then
@ -75,10 +244,10 @@ downloadFile()
#
# copy Make/{files,options} from wmakeFiles/PACKAGE
# Copy Make/{files,options} from etc/wmakeFiles/PACKAGE
#
# $1 = PACKAGE
# $2 (optional) TARGET DIRECTORY
# $2 = TARGET DIRECTORY (optional)
cpMakeFiles()
{
set +x
@ -88,8 +257,8 @@ cpMakeFiles()
return 1
}
pkg=$1
dst=${2:-.}
local pkg=$1
local dst="${2:-.}"
echo "cpMakeFiles" $pkg $dst
wmakeFiles=$WM_THIRD_PARTY_DIR/etc/wmakeFiles/$pkg
@ -119,4 +288,41 @@ cpMakeFiles()
}
# ----------------------------------------------------------------- end-of-file
#
# Apply source-code patch if possible.
# Patches are taken from etc/patches/PACKAGE
#
# $1 = PACKAGE
# $2 = TARGET DIRECTORY (optional)
applyPatch()
{
[ "$#" -eq 1 -o "$#" -eq 2 ] || {
echo "applyPatch called with incorrect number of arguments ($#): $@"
return 1
}
local pkg="$1"
local dst="${2:-.}"
local patch="$WM_THIRD_PARTY_DIR/etc/patches/$pkg"
local sentinel="PATCHED_DURING_OPENFOAM_BUILD"
if [ -r "$patch" ]
then
(
cd $dst || exit 1
if [ -f "$sentinel" ]
then
echo "patch for $pkg was already applied"
else
echo "apply patch for $pkg"
touch "$sentinel"
patch -p1 < $patch 2>&1 | tee $sentinel
fi
)
else
echo "no patch found for $pkg"
fi
}
#------------------------------------------------------------------------------

204
etc/tools/vtkFunctions Normal file
View File

@ -0,0 +1,204 @@
#---------------------------------*- sh -*-------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
# This file is part 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/>.
#
# File
# etc/tools/vtkFunctions
#
# Description
# VTK (library) make/install helper functions.
# To be loaded *after* etc/tools/ParaViewFunctions
#
#------------------------------------------------------------------------------
# buildBASE, installBASE defined from tools/ThirdPartyFunctions
#
# Where things are or should be put
# VTK_VERSION and VTK_MAJOR should already have been set
#
# VTK_SOURCE_DIR : location of the original sources
# VTK_BINARY_DIR : location of the build
# VTK_DIR : location of the installed program
#
setVtkDirs()
{
VTK_SOURCE_DIR=$WM_THIRD_PARTY_DIR/VTK-$VTK_VERSION
[ -d "$VTK_SOURCE_DIR" ] || {
echo "did not find VTK-$VTK_VERSION in these directories:"
echo " WM_THIRD_PARTY_DIR=$WM_THIRD_PARTY_DIR"
echo
echo "abort build"
exit 1
}
# VTK_BINARY_DIR=$buildBASE/VTK-$VTK_VERSION${OBJ_ADD:+-$OBJ_ADD}
VTK_BINARY_DIR=$buildBASE/VTK-$VTK_VERSION
# VTK_DIR=$installBASE/VTK-$VTK_VERSION${OBJ_ADD:+-$OBJ_ADD}
VTK_DIR=$installBASE/VTK-$VTK_VERSION
export VTK_SOURCE_DIR VTK_BINARY_DIR VTK_DIR
echo
echo "VTK_SOURCE_DIR=$VTK_SOURCE_DIR"
echo "VTK_BINARY_DIR=$VTK_BINARY_DIR"
echo "VTK_DIR=$VTK_DIR"
# Forcefully override the .git path for the VTK source code directory
export GIT_DIR=$ParaView_SOURCE_DIR/.git
}
#
# Set VTK_VERSION and adjust VTK_MAJOR accordingly
#
# $1 can contain something something like 4.4.0, vtk-4.4.0, VTK-4.0.0
#
setVtkVersion()
{
[ $# -gt 0 ] || {
echo "Error: function setVtkVersion() called without an argument"
exit 1
}
VTK_VERSION="${1##*-}"
# The major version is "<digits>.<digits>"
VTK_MAJOR=$(echo $VTK_VERSION | \
sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/')
export VTK_VERSION VTK_MAJOR
}
#------------------------------------------------------------------------------
#
# Apply source-code patch if possible
#
patchVTK()
{
applyPatch "vtk-$VTK_VERSION" "$VTK_SOURCE_DIR"
}
#
# Configure via cmake, but don't actually build anything
#
configVTK()
{
local cmake=$(findCMake)
# Remove any existing build folder and recreate
if [ -d $VTK_BINARY_DIR ]
then
echo "removing old build directory"
echo " $VTK_BINARY_DIR"
rm -rf $VTK_BINARY_DIR
fi
mkdir -p $VTK_BINARY_DIR
addCMakeVariable "CMAKE_BUILD_TYPE:STRING=$buildType"
cd $VTK_BINARY_DIR || exit 1 # change to build folder
echo "----"
echo "Configuring VTK-$VTK_VERSION"
echo " MESA support : ${withMESA:-false}"
echo " Source : $VTK_SOURCE_DIR"
echo " Build : $VTK_BINARY_DIR"
echo " Target : $VTK_DIR"
echo " Build type : $buildType"
echo " Cmake : $cmake"
echo "----"
echo
echo "$cmake" \
-DCMAKE_INSTALL_PREFIX:PATH=$VTK_DIR \
$CMAKE_VARIABLES \
$VTK_SOURCE_DIR
echo
echo "----"
echo
# Run cmake to create Makefiles
$cmake \
-DCMAKE_INSTALL_PREFIX:PATH=$VTK_DIR \
$CMAKE_VARIABLES \
$VTK_SOURCE_DIR
}
#
# Invoke make
# also link bin/ to lib/paraview-* for development without installation
#
makeVTK()
{
cd $VTK_BINARY_DIR || exit 1 # change to build folder
echo " Starting make"
time make -j $WM_NCOMPPROCS
echo " Done make"
# Remove lib if it is a link
# (how this was previously handled before 'make install' worked)
if [ -L lib ]
then
rm lib 2>/dev/null
fi
}
#
# Install the program
#
installVTK()
{
cd $VTK_BINARY_DIR || exit 1 # Change to build folder
echo " Installing VTK to $VTK_DIR"
make install
cat<< INFO
---
Installation complete for vtk-$VTK_VERSION
VTK_DIR=$VTK_DIR
---
INFO
}
#------------------------------------------------------------------------------
# Clear the referenced variables before using any of the functions
unset CMAKE_VARIABLES
# Start with these general settings
addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON VTK_USE_RPATH:BOOL=OFF"
# Don't build test tree
addCMakeVariable "BUILD_TESTING:BOOL=OFF"
#------------------------------------------------------------------------------

View File

@ -0,0 +1,27 @@
/* NOTE: make any changes to this file in etc/wmakeFiles/ */
adf = libadf
$(adf)/ADF_fortran_2_c.c
$(adf)/ADF_interface.c
$(adf)/ADF_internals.c
ccmio = libccmio
$(ccmio)/ccmio.c
$(ccmio)/ccmiocore.c
$(ccmio)/ccmioprivate.c
$(ccmio)/ccmioutility.c
$(ccmio)/ccmioversion.c
/*
* the cgns library is not used by ccmio
* retain for documentation purposes only
*
cgns = libcgns
$(cgns)/adf_cond.c
$(cgns)/adf_ftoc.c
$(cgns)/cgns_error.c
$(cgns)/cgns_internals.c
$(cgns)/cgnslib.c
*/
LIB = $(FOAM_EXT_LIBBIN)/libccmio

View File

@ -0,0 +1,3 @@
/* NOTE: make any changes to this file in etc/wmakeFiles/ */
/* EXE_INC = */

View File

@ -0,0 +1,33 @@
# openfoam notes:
# WM_CFLAGS, WM_LDFLAGS contain "-m32 -fPIC" etc
# WM_LABEL_SIZE == 64 for 'long' instead of 'int' for OpenFOAM labels
# compiled without pthread
EXE =
LIB = .so
OBJ = .o
MAKE = make
AR = gcc
ARFLAGS = $(WM_CFLAGS) -shared -o
CAT = cat
CCS = gcc
CCP = mpicc
CCD = mpicc
CFLAGS = $(WM_CFLAGS) -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict
# 32-bit vs. 64-bit labels
ifeq ($(WM_LABEL_SIZE),64)
CFLAGS += -DINTSIZE64
endif
CLIBFLAGS = -shared
LDFLAGS = -Xlinker --no-as-needed $(WM_LDFLAGS) -lz -lm -lrt
CP = cp
LEX = flex -Pscotchyy -olex.yy.c
LN = ln
MKDIR = mkdir
MV = mv
RANLIB = echo
YACC = bison -pscotchyy -y -b y

View File

@ -1,21 +0,0 @@
EXE =
LIB = .so
OBJ = .o
MAKE = make
AR = gcc
ARFLAGS = -m32 -shared -o
CAT = cat
CCS = gcc
CCP = mpicc
CCD = mpicc
CFLAGS = -m32 -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict
CLIBFLAGS = -shared -fPIC
LDFLAGS = -Xlinker --no-as-needed -L$MPI_ARCH_PATH/lib -m32 -lz -lm -lrt
CP = cp
LEX = flex -Pscotchyy -olex.yy.c
LN = ln
MKDIR = mkdir
MV = mv
RANLIB = echo
YACC = bison -pscotchyy -y -b y

View File

@ -1,21 +0,0 @@
EXE =
LIB = .so
OBJ = .o
MAKE = make
AR = gcc
ARFLAGS = -shared -o
CAT = cat
CCS = gcc
CCP = mpicc
CCD = mpicc
CFLAGS = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict
CLIBFLAGS = -shared -fPIC
LDFLAGS = -Xlinker --no-as-needed -lz -lm -lrt
CP = cp
LEX = flex -Pscotchyy -olex.yy.c
LN = ln
MKDIR = mkdir
MV = mv
RANLIB = echo
YACC = bison -pscotchyy -y -b y

View File

@ -1,21 +0,0 @@
EXE =
LIB = .so
OBJ = .o
MAKE = make
AR = gcc
ARFLAGS = -shared -o
CAT = cat
CCS = gcc
CCP = mpicc
CCD = mpicc
CFLAGS = -O3 -DINTSIZE64 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict
CLIBFLAGS = -shared -fPIC
LDFLAGS = -Xlinker --no-as-needed -lz -lm -lrt
CP = cp
LEX = flex -Pscotchyy -olex.yy.c
LN = ln
MKDIR = mkdir
MV = mv
RANLIB = echo
YACC = bison -pscotchyy -y -b y

217
makeADIOS Executable file
View File

@ -0,0 +1,217 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
# This file is part 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
# makeADIOS
#
# Description
# Build script for ADIOS (and MXML)
#
#------------------------------------------------------------------------------
adiosPACKAGE=adios-git
mxmlPACKAGE=mxml-2.9
#------------------------------------------------------------------------------
# run from third-party directory only
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
echo " The environment variables are inconsistent with the installation."
echo " Check the OpenFOAM entries in your dot-files and source them."
exit 1
}
. etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
usage() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: ${0##*/} [OPTION] [adios-VERSION] [mxml-VERSION]
options:
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
-help
* Build ADIOS+MXML
$adiosPACKAGE
$mxmlPACKAGE
USAGE
exit 1
}
#------------------------------------------------------------------------------
# ensure configure gets the correct C/C++ compiler
[ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
# parse options
while [ "$#" -gt 0 ]
do
case "$1" in
-h | -help)
usage
;;
-gcc)
export CC=gcc # use gcc/g++
export CXX=g++
;;
adios-[1-9]* | adios-git)
adiosPACKAGE="${1%%/}"
;;
mxml-[1-9]*)
mxmlPACKAGE="${1%%/}"
;;
*)
die "unknown option/argument: '$1'"
;;
esac
shift
done
#------------------------------------------------------------------------------
MXML_ARCH_PATH=$installBASE/$mxmlPACKAGE
ADIOS_ARCH_PATH=$installBASE/$adiosPACKAGE
# build MXML - not needed with more recent ADIOS
if false
then
echo
echo ========================================
echo "Build mxml library $mxmlPACKAGE"
echo
if [ -f $MXML_ARCH_PATH/include/mxml.h \
-a -r $FOAM_EXT_LIBBIN/libmxml.so ]
then
echo " MXML header in $MXML_ARCH_PATH/include"
echo " MXML libs in $FOAM_EXT_LIBBIN"
echo
else
(
# use mxml packaged with adios (if possible)
# or revert to top-level
sourceDIR=$WM_THIRD_PARTY_DIR/$adiosPACKAGE/src/mxml/$mxmlPACKAGE
[ -d "$sourceDIR" ] || sourceDIR=$WM_THIRD_PARTY_DIR/$mxmlPACKAGE
cd $sourceDIR || exit 1
# Remove any existing build folder and recreate
\rm -rf $buildDIR 2>/dev/null
mkdir -p $buildDIR
[ -e Makefile ] && make clean 2>/dev/null # for safety
mkdir -p $FOAM_EXT_LIBBIN 2>/dev/null
# handle non-gcc compilers
unset configEnv
if [ "${WM_CC:-gcc}" != gcc ]
then
export CC=$WM_CC
export CCS=$WM_CC
fi
# installs into lib64/
cd $buildDIR && \
$sourceDIR/configure --prefix=$MXML_ARCH_PATH \
&& make -j $WM_NCOMPPROCS all \
&& make install \
&& echo "Built: $mxmlPACKAGE" \
&& rsync -a $MXML_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/*.so* $FOAM_EXT_LIBBIN/
) || {
echo "Error building: $mxmlPACKAGE"
}
fi
fi
# build ADIOS
echo
echo ========================================
echo "Build adios library $adiosPACKAGE"
echo
# Needs future adjustment for shared library, for mpi-specific library location
if [ -f $ADIOS_ARCH_PATH/include/adios.h \
-a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libadios.so ]
then
echo " ADIOS header in $ADIOS_ARCH_PATH/include"
echo " ADIOS libs in $FOAM_EXT_LIBBIN"
echo
else
(
# configuration options:
# Start with GridEngine support - builds without external libraries
unset configOpt
# Add InfiniBand support
ibDir=/usr/local/ofed
if [ -d "$ibDir/include" ]
then
configOpt="$configOpt --with-infiniband=$ibDir"
fi
## $configOpt="$configOpt --with-hdf5=..."
# for externally compiled MXML
# configOpt="$configOpt --with-mxml=$MXML_ARCH_PATH"
# end of configuration options
# ----------------------------
sourceDIR=$WM_THIRD_PARTY_DIR/$adiosPACKAGE
buildDIR=$buildBASE/$adiosPACKAGE
cd $sourceDIR || exit 1
export GIT_DIR=$sourceDIR/.git
# Remove any existing build folder and recreate
\rm -rf $buildDIR 2>/dev/null
mkdir -p $buildDIR
[ -e Makefile ] && make clean 2>/dev/null # for safety
[ -f configure ] || {
echo "no configure for $adiosPACKAGE ... trying autogen"
./autogen.sh
}
# installs into lib64/
cd $buildDIR && \
CC=mpicc CXX=mpicxx CFLAGS="-fPIC" $sourceDIR/configure \
--prefix=$ADIOS_ARCH_PATH \
--disable-fortran \
--with-pic \
--without-fastbit \
$configOpt \
&& make -j $WM_NCOMPPROCS all \
&& make install \
&& echo "Built: $adiosPACKAGE" \
&& rsync -a --no-r $ADIOS_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/ $FOAM_EXT_LIBBIN/$FOAM_MPI/
) || {
echo "Error building: $adiosPACKAGE"
}
fi
# ----------------------------------------------------------------- end-of-file

139
makeCCMIO Executable file
View File

@ -0,0 +1,139 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
# This file is part 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
# makeCCMIO
#
# Description
# Build CD-adapco's ccmio library
#
#------------------------------------------------------------------------------
# Get version info
. $WM_PROJECT_DIR/etc/config.sh/functions
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/ccmio)
ccmioPACKAGE=${ccmio_version:-libccmio-2.6.1}
targetType=lib
#------------------------------------------------------------------------------
# run from third-party directory only
cd ${0%/*} || exit 1
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
echo " The environment variables are inconsistent with the installation."
echo " Check the OpenFOAM entries in your dot-files and source them."
exit 1
}
[ -n "$FOAM_EXT_LIBBIN" ] || {
echo "Error: FOAM_EXT_LIBBIN not set"
echo " Check the OpenFOAM entries in your dot-files and source them."
exit 1
}
. etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
usage()
{
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
/bin/cat<<USAGE
Usage: ${0##*/} [OPTION] [lib|libso] [libccmio-VERSION]
options:
-help
* Compile the proprietary libccmio library
$ccmioPACKAGE
Users wishing to make use of the library should contact cd-adapco
(Siemens PLM) for possible download and terms of use.
After obtaining the $ccmioPACKAGE library, place in folder
$WM_THIRD_PARTY_DIR/$ccmioPACKAGE/
prior to running this script.
USAGE
exit 1
}
# Parse options
while [ "$#" -gt 0 ]
do
case "$1" in
-h | -help)
usage
;;
lib|libso)
targetType="$1"
;;
libccmio-[1-9]*)
ccmioPACKAGE="${1%%/}"
;;
*)
die "unknown option/argument: '$1'"
;;
esac
shift
done
# assert: directory must be available
[ -d "${ccmioPACKAGE}" ] || die "missing source directory '$ccmioPACKAGE'"
#------------------------------------------------------------------------------
CCMIO_ARCH_PATH=$installBASE/$ccmioPACKAGE
#
# Build LIBCCMIO
#
echo "---------------"
(
cd $ccmioPACKAGE || exit 1
incDIR=$CCMIO_ARCH_PATH/include/libccmio
libDIR=$CCMIO_ARCH_PATH/lib
mkdir -p $incDIR 2>/dev/null
mkdir -p $libDIR 2>/dev/null
cpMakeFiles libccmio 2>/dev/null
set +x
if wmake $targetType
then
# make headers available:
/bin/cp -pv libccmio/ccmio*.h $incDIR
# relocate static libraries to sub-directory:
if [ "$targetType" = lib ]
then
/bin/mv -v $FOAM_EXT_LIBBIN/libccmio.a $libDIR
fi
fi
)
#------------------------------------------------------------------------------

246
makeCGAL
View File

@ -3,8 +3,8 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
# \\/ M anipulation |
# \\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -34,18 +34,22 @@
# simply specify a 'system' version. For example,
# makeCGAL boost-system gmp-system
#
# Mixing system and ThirdParty for gmp/mpfr is not supported.
#
#------------------------------------------------------------------------------
set -x
cgalPACKAGE=CGAL-4.7
boostPACKAGE=boost-system
gmpPACKAGE=gmp-system
mpfrPACKAGE=mpfr-system
# Get CGAL, boost and gmp/mpfr versions
. $WM_PROJECT_DIR/etc/config.sh/functions
unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL)
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler)
boostPACKAGE=${boost_version:-boost-system}
gmpPACKAGE=${gmp_version:-gmp-system}
mpfrPACKAGE=${mpfr_version:-mpfr-system}
cgalPACKAGE=$cgal_version
#------------------------------------------------------------------------------
# run from third-party directory only
# Run from third-party directory only
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
echo " The environment variables are inconsistent with the installation."
@ -54,77 +58,97 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
}
. etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
Script="${0##*/}"
usage() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: ${0##*/} [OPTION] [CGAL-VERSION] [boost-VERSION] [gmp-VERSION] [mpfr-VERSION]
usage: $Script [OPTION] [CGAL-VERSION] [boost-VERSION] [gmp-VERSION] [mpfr-VERSION]
options:
-gcc force g++ instead of the value from \$WM_CXX
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
-system use system versions for boost/gmp/mpfr
-help
* build CGAL with
$cgalPACKAGE
${cgalPACKAGE:-'unspecified CGAL version'}
$boostPACKAGE
$gmpPACKAGE
$mpfrPACKAGE
Normally builds against ThirdParty boost and gmp/mpfr when possible.
To override this behaviour (and use the system boost and/o gmp/mpfr),
To override this behaviour (and use the system boost and/or gmp/mpfr),
simply specify a 'system' version. For example,
${0##*/} boost-system gmp-system
Note: mixing system and ThirdParty for gmp/mpfr is not supported.
$Script boost-system gmp-system
USAGE
exit 1
}
#------------------------------------------------------------------------------
# ensure CMake gets the correct C++ compiler
# Ensure CMake gets the correct C/C++ compiler
[ -n "$WM_CC" ] && export CC="$WM_CCX"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
# parse options
# Parse options
while [ "$#" -gt 0 ]
do
case "$1" in
-h | -help)
usage
;;
'')
# discard empty arguments
;;
-gcc)
export CXX=g++ # use g++
shift
export CC=gcc # use gcc/g++
export CXX=g++
;;
gmp-[4-9]* | gmp-sys*)
-sys*)
gmpPACKAGE="gmp-system"
mpfrPACKAGE="mpfr-system"
boostPACKAGE="boost-system"
;;
gmp-[4-9]* | gmp-system)
gmpPACKAGE="${1%%/}"
shift
;;
mpfr-[2-9]* | mpfr-sys*)
mpfr-[2-9]* | mpfr-system)
mpfrPACKAGE="${1%%/}"
shift
;;
CGAL-[0-9]*)
cgalPACKAGE="${1%%/}"
shift
;;
boost-[0-9]* | boost_[0-9]* | boost-sys* )
boost-[0-9]* | boost_[0-9]* | boost-system )
boostPACKAGE="${1%%/}"
shift
;;
*)
usage "unknown option/argument: '$*'"
die "unknown option/argument: '$1'"
;;
esac
shift
done
[ -n "$cgalPACKAGE" ] || die "The cgal-VERSION was not specified"
# nothing to build
if _foamIsNone "$boostPACKAGE"
then
echo "Using boost-none (skip ThirdParty build of BOOST/CGAL)"
exit 0
fi
if _foamIsNone "$cgalPACKAGE"
then
echo "Using cgal-none (skip ThirdParty build of CGAL)"
exit 0
fi
#------------------------------------------------------------------------------
#
# Build Boost
# For 64-bit
# - Third-Party builds into 'lib'
# - system is normally built into 'lib64'
#
# BOOST_SOURCE_DIR : location of the original sources
@ -135,12 +159,19 @@ if [ -d "$BOOST_ARCH_PATH" ]
then
boostInc="$BOOST_ARCH_PATH/include"
boostLib="$BOOST_ARCH_PATH/lib"
elif [ -d "$BOOST_SOURCE_DIR" ]
elif _foamIsSystem $BOOST_ARCH_PATH
then
echo "Using boost-system (skip ThirdParty build of BOOST)"
boostInc="/usr/include"
boostLib="/usr/lib$WM_COMPILER_LIB_ARCH"
else
echo "Starting build: boost"
echo
boostInc="$BOOST_ARCH_PATH/include"
boostLib="$BOOST_ARCH_PATH/lib"
echo "Starting build: boost"
(
cd $BOOST_SOURCE_DIR || exit 1
@ -156,33 +187,47 @@ then
echo "Error building: boost"
exit 1
}
else
boostInc="/usr/include"
fi
# for completeness:
# 64-bit needs lib64, but 32-bit needs lib (not lib32)
if [ "$WM_ARCH_OPTION" = 64 ]
then
boostLib="/usr/lib$WM_ARCH_OPTION"
else
boostLib="/usr/lib"
fi
# nothing left to build
if _foamIsSystem "$cgalPACKAGE"
then
echo "Using cgal-system (skip ThirdParty build of CGAL)"
exit 0
fi
# retrieve boost version:
# Retrieve boost version:
if [ -f "$boostInc/boost/version.hpp" ]
then
BOOST_VERSION_NO=`sed -ne 's/^#define *BOOST_VERSION *\([0-9][0-9]*\).*$/\1/p' $boostInc/boost/version.hpp`
BOOST_VERSION=$(sed -ne 's/^ *# *define *BOOST_VERSION *\([0-9][0-9]*\).*$/\1/p' $boostInc/boost/version.hpp)
else
echo "Boost does not appear to be installed"
echo
echo "ERROR: boost does not appear to be installed, but is required to build CGAL"
echo " Change your settings, or disable entirely (with cgal-system, cgal-none, boost-none)"
echo "stopping build"
echo
exit 1
fi
#------------------------------------------------------------------------------
cat<<SUMMARY
CGAL configuration
------------------
CGAL = $cgalPACKAGE
BOOST = $boostPACKAGE
GMP = $gmpPACKAGE
MPFR = $mpfrPACKAGE
------------------
SUMMARY
#------------------------------------------------------------------------------
#
# Build CGAL
# For 64-bit
# - Third-Party builds into 'lib'
# - system is normally built into 'lib64'
#
# CGAL_SOURCE_DIR : location of the original sources
# CGAL_BINARY_DIR : location of the build
@ -200,8 +245,69 @@ installBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH
GMP_ARCH_PATH=$installBASE/$gmpPACKAGE
MPFR_ARCH_PATH=$installBASE/$mpfrPACKAGE
#
# build information recorded for later use
#
buildInfoFile=$CGAL_ARCH_PATH/share/openfoam-build
recordCGALinfo()
{
CGAL_VERSION=$(sed -ne 's/^ *# *define *CGAL_VERSION_NR *\([0-9][0-9]*\).*$/\1/p' $CGAL_ARCH_PATH/include/CGAL/version.h 2>/dev/null)
cat<<BUILD_INFO > $buildInfoFile
CGAL=${CGAL_ARCH_PATH##*/}
BOOST=${BOOST_ARCH_PATH##*/}
GMP=${GMP_ARCH_PATH##*/}
MPFR=${MPFR_ARCH_PATH##*/}
CGAL_VERSION=$CGAL_VERSION
BOOST_VERSION=$BOOST_VERSION
BUILD_INFO
}
# compare expected vs what is extracted as KEY=... in text
# $1 = key
# $2 = expected
# $3 = text to extract from
infoValueEq()
{
local val=$(echo "${3:-unset}" | sed -ne "s/^$1=//p")
if [ "$2" = "$val" ]
then
:
else
echo " $1=$2, previous build had $1='${val:-not-found}'"
return 1
fi
}
# needs build
cgalIsCurrent()
{
local info=$(cat $buildInfoFile 2>/dev/null)
[ -n "$info" ] || return 1
echo "checking information from existing build ..."
echo " ${CGAL_ARCH_PATH}"
infoValueEq CGAL "${CGAL_ARCH_PATH##*/}" "$info" || return 1
infoValueEq BOOST "${BOOST_ARCH_PATH##*/}" "$info" || return 1
infoValueEq GMP "${GMP_ARCH_PATH##*/}" "$info" || return 1
infoValueEq MPFR "${MPFR_ARCH_PATH##*/}" "$info" || return 1
infoValueEq BOOST_VERSION "${BOOST_VERSION}" "$info" || return 1
return 0
}
if cgalIsCurrent
then
echo " ${CGAL_ARCH_PATH##*/} build appears to be up-to-date - skipping"
echo
exit 0
fi
(
# remove any existing build folder and recreate
# Remove any existing build folder and recreate
if [ -d $CGAL_BINARY_DIR ]
then
echo "removing old build directory"
@ -212,9 +318,9 @@ MPFR_ARCH_PATH=$installBASE/$mpfrPACKAGE
cd $CGAL_BINARY_DIR || exit 1
unset configBoost configGmpMpfr
unset configBoost configGmp configMpfr
echo "----"
echo "Configuring $cgalPACKAGE with boost $BOOST_VERSION_NO"
echo "Configuring $cgalPACKAGE with boost $BOOST_VERSION"
echo " Source : $CGAL_SOURCE_DIR"
echo " Build : $CGAL_BINARY_DIR"
echo " Target : $CGAL_DIR"
@ -230,7 +336,7 @@ MPFR_ARCH_PATH=$installBASE/$mpfrPACKAGE
-DBoost_THREAD_LIBRARY_RELEASE=$boostLib/libboost_thread.so
-DBoost_SYSTEM_LIBRARY=$boostLib/libboost_system.so
-DBoost_SYSTEM_LIBRARY_RELEASE=$boostLib/libboost_system.so
-DBoost_VERSION=$BOOST_VERSION_NO
-DBoost_VERSION=$BOOST_VERSION
CMAKE_OPTIONS
)
else
@ -241,22 +347,32 @@ CMAKE_OPTIONS
)
fi
if [ -d "$GMP_ARCH_PATH" -a -d "$MPFR_ARCH_PATH" ]
if [ -d "$GMP_ARCH_PATH" ]
then
echo " ThirdParty : gmp/mpfr"
configGmpMpfr=$(cat <<CMAKE_OPTIONS
echo " ThirdParty : gmp"
configGmp=$(cat <<CMAKE_OPTIONS
-DGMP_INCLUDE_DIR=$GMP_ARCH_PATH/include
-DGMP_LIBRARIES_DIR=$GMP_ARCH_PATH/lib
-DGMP_LIBRARIES=$GMP_ARCH_PATH/lib/libgmp.so
-DGMP_LIBRARIES_DIR=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
-DGMP_LIBRARIES=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libgmp.so
-DGMPXX_INCLUDE_DIR=$GMP_ARCH_PATH/include
-DGMPXX_LIBRARIES=$GMP_ARCH_PATH/lib/libgmpxx.so
-DMPFR_INCLUDE_DIR=$MPFR_ARCH_PATH/include
-DMPFR_LIBRARIES_DIR=$MPFR_ARCH_PATH/lib
-DMPFR_LIBRARIES=$MPFR_ARCH_PATH/lib/libmpfr.so
-DGMPXX_LIBRARIES=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libgmpxx.so
CMAKE_OPTIONS
)
else
echo " system : gmp/mpfr"
echo " system : gmp"
fi
if [ -d "$MPFR_ARCH_PATH" ]
then
echo " ThirdParty : mpfr"
configMpfr=$(cat <<CMAKE_OPTIONS
-DMPFR_INCLUDE_DIR=$MPFR_ARCH_PATH/include
-DMPFR_LIBRARIES_DIR=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
-DMPFR_LIBRARIES=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpfr.so
CMAKE_OPTIONS
)
else
echo " system : mpfr"
fi
echo "----"
@ -264,7 +380,8 @@ CMAKE_OPTIONS
cmake \
-DCMAKE_INSTALL_PREFIX=$CGAL_ARCH_PATH \
-DCMAKE_BUILD_TYPE=Release \
$configBoost $configGmpMpfr \
-DWITH_CGAL_Qt5=OFF \
$configBoost $configGmp $configMpfr \
$CGAL_SOURCE_DIR \
&& make -j $WM_NCOMPPROCS \
&& make install || exit 1
@ -284,7 +401,10 @@ CMAKE_OPTIONS
fi
done
# record our build-status
recordCGALinfo
echo "Done CGAL"
)
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

@ -4,7 +4,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
# \\/ M anipulation |
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -29,7 +29,8 @@
# Build script for cmake
#
#------------------------------------------------------------------------------
cmakePACKAGE=cmake-3.2.1
# Special purpose script, no default cmake version.
unset cmakePACKAGE
#------------------------------------------------------------------------------
# run from third-party directory only
@ -49,20 +50,20 @@ usage() {
usage: ${0##*/} [OPTION] [cmake-VERSION]
options:
-gcc force g++ instead of the value from \$WM_CXX
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
-help
* build cmake
$cmakePACKAGE
${cmakePACKAGE:-'unspecified version'}
USAGE
exit 1
}
#------------------------------------------------------------------------------
# ensure CMake gets the correct C++ compiler
# ensure CMake gets the correct C/CC++ compiler
[ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
[ -n "$WM_CC" ] && export CC="$WM_CC"
# parse options
while [ "$#" -gt 0 ]
@ -72,29 +73,29 @@ do
usage
;;
-gcc)
export CC=gcc # use gcc
export CXX=g++ # use g++
shift
export CC=gcc # use gcc/g++
export CXX=g++
;;
cmake-[1-9]*)
cmakePACKAGE="${1%%/}"
shift
;;
*)
usage "unknown option/argument: '$*'"
die "unknown option/argument: '$1'"
;;
esac
shift
done
[ -n "$cmakePACKAGE" ] || die "The cmake-VERSION was not specified"
#------------------------------------------------------------------------------
prefixDIR=$installBASE/$cmakePACKAGE
CMAKE_ARCH_PATH=$installBASE/$cmakePACKAGE
#
# Build CMAKE
#
echo "---------------"
if [ -d "$prefixDIR" -a -r "$prefixDIR/bin/cmake" ]
if [ -d "$CMAKE_ARCH_PATH" -a -r "$CMAKE_ARCH_PATH/bin/cmake" ]
then
echo "Already built: $cmakePACKAGE"
else
@ -110,7 +111,7 @@ else
mkdir -p $buildDIR
cd $buildDIR
$sourceDIR/bootstrap --prefix=$prefixDIR \
$sourceDIR/bootstrap --prefix=$CMAKE_ARCH_PATH \
&& time make -j $WM_NCOMPPROCS \
&& make install \
&& echo "Built: $cmakePACKAGE"
@ -120,4 +121,4 @@ else
}
fi
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

173
makeFFTW Executable file
View File

@ -0,0 +1,173 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
# This file is part 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
# makeFFTW
#
# Description
# Build script for FFTW
#
#------------------------------------------------------------------------------
# Get FFTW versions
. $WM_PROJECT_DIR/etc/config.sh/functions
unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/FFTW)
fftwPACKAGE=${fftw_version:-fftw-system}
#------------------------------------------------------------------------------
# Run from third-party directory only
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
echo " The environment variables are inconsistent with the installation."
echo " Check the OpenFOAM entries in your dot-files and source them."
exit 1
}
. etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
Script="${0##*/}"
usage() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: $Script [OPTION] [fftw-VERSION]
options:
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
-help
* build FFTW with
${fftwPACKAGE:-'unspecified FFTW version'}
USAGE
exit 1
}
#------------------------------------------------------------------------------
# ensure configure gets the correct C/C++ compiler
[ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
# Parse options
while [ "$#" -gt 0 ]
do
case "$1" in
-h | -help)
usage
;;
'')
# discard empty arguments
;;
-gcc)
export CC=gcc # use gcc/g++
export CXX=g++
;;
fftw-[0-9]* | fftw_[0-9]* | fftw-system )
fftwPACKAGE="${1%%/}"
;;
*)
die "unknown option/argument: '$1'"
;;
esac
shift
done
[ -n "$fftwPACKAGE" ] || die "The fftw-VERSION was not specified"
# nothing to build
if _foamIsNone "$fftwPACKAGE"
then
echo "Using fftw-none (skip ThirdParty build of FFTW)"
exit 0
fi
if _foamIsSystem "$fftwPACKAGE"
then
echo "Using fftw-system (skip ThirdParty build of FFTW)"
exit 0
fi
#------------------------------------------------------------------------------
#
# Build FFTW
# For 64-bit
# - FFTW itself will normally build into 'lib64',
# but provide --libdir on configure to be 100% certain
# - Third-Party builds into 'lib64'
# - system is normally built into 'lib64'
#
# FFTW_SOURCE_DIR : location of the original sources
FFTW_ARCH_PATH=$installBASE/$fftwPACKAGE
FFTW_SOURCE_DIR=$WM_THIRD_PARTY_DIR/$fftwPACKAGE
if [ -r "$FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libfftw3.so" ]
then
echo "Already has FFTW shared library"
else
echo "Starting build: FFTW ($fftwPACKAGE)"
echo
(
# configuration options:
unset configOpt
# Single-precision needed?
if [ "${WM_PRECISION_OPTION}" = SP ]
then
configOpt="$configOpt --enable-single"
fi
# end of configuration options
# ----------------------------
buildDIR=$buildBASE/$fftwPACKAGE
cd $FFTW_SOURCE_DIR || exit 1
rm -rf $FFTW_ARCH_PATH
rm -rf $buildDIR
mkdir -p $buildDIR
cd $buildDIR
set -x
$FFTW_SOURCE_DIR/configure \
--prefix=$FFTW_ARCH_PATH \
--libdir=$FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
--enable-shared --disable-static \
--disable-fortran \
$configOpt \
&& make -j $WM_NCOMPPROCS \
&& make install \
&& echo "Built $fftwPACKAGE"
) || {
echo "Error building: FFTW"
exit 1
}
fi
#------------------------------------------------------------------------------

201
makeGcc
View File

@ -3,8 +3,8 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
# \\/ M anipulation |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -26,13 +26,32 @@
# makeGcc
#
# Description
# Build script for gmp, mpfr and gcc-[4-9].?.?
# Build script gcc and gmp, mpfr, mpc.
#
# To force building against the system gmp/mpfr/mpc libraries,
# use a corresponding '*-system' version. For example,
#
# makeGcc gmp-system
#
# or use the '-system' options to use system libraries everywhere.
#
# The WM_COMPILER value can also be used specify a known gcc version.
# For example (also compiling against system gmp/mpfr/mpc),
#
# WM_COMPILER=Gcc51 ./makeGcc -system
#
#------------------------------------------------------------------------------
gmpPACKAGE=gmp-5.1.2
mpfrPACKAGE=mpfr-3.1.2
mpcPACKAGE=mpc-1.0.1
gccPACKAGE=
# get default GCC, mpfr, gmp and mpc versions
WM_COMPILER_TYPE=ThirdParty # ensure we get the correct compiler settings
: ${WM_COMPILER:=Gcc} # this will still fail if 'Clang' was set
. $WM_PROJECT_DIR/etc/config.sh/functions
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler)
gmpPACKAGE=${gmp_version:-gmp-system}
mpfrPACKAGE=${mpfr_version:-mpfr-system}
mpcPACKAGE=${mpc_version:-mpc-system}
gccPACKAGE=$gcc_version
#------------------------------------------------------------------------------
# Run from third-party directory only
@ -44,24 +63,35 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
}
. etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
Script=${0##*/}
usage() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: ${0##*/} [gmp-VERSION] [mpfr-VERSION] [mpc-VERSION] <gcc-VERSION>
usage: $Script [OPTION] [gcc-VERSION] [gmp-VERSION] [mpfr-VERSION] [mpc-VERSION]
options:
-multilib for 64-bit systems with 32-bit support required
-no-multilib for 64-bit systems without 32-bit support (DEFAULT)
-no-threadsafe disable mpfr thread-safe (default is auto-detect)
-system use system versions for gmp/mpfr/mpc
-help
* build combinations of gmp, mpfr, mpc and gcc
$gmpPACKAGE
$mpfrPACKAGE
$mpcPACKAGE
$gccPACKAGE
${gccPACKAGE:-'unspecified GCC version'}
USAGE
exit 1
}
#------------------------------------------------------------------------------
# build 32-bit libraries on 64-bit systems (normally not needed)
optMultilib=disable
unset optThreadSafe # unset=auto
# Parse options
while [ "$#" -gt 0 ]
@ -70,34 +100,50 @@ do
-h | -help)
usage
;;
gmp-[4-9]*)
-multi*)
optMultilib=enable
;;
-no-multi*)
optMultilib=disable
;;
-no-thread*)
optThreadSafe=disable
;;
-sys*)
gmpPACKAGE="gmp-system"
mpfrPACKAGE="mpfr-system"
mpcPACKAGE="mpc-system"
;;
gmp-[4-9]* | gmp-system)
gmpPACKAGE="${1%%/}"
shift
;;
mpfr-[2-9]*)
mpfr-[2-9]* | mpfr-system)
mpfrPACKAGE="${1%%/}"
shift
;;
mpc-[0-9]*)
mpc-[0-9]* | mpc-system)
mpcPACKAGE="${1%%/}"
shift
;;
gcc-[4-9]*)
gcc-[4-9]* | gcc-system)
gccPACKAGE="${1%%/}"
shift
;;
*)
usage "unknown option/argument: '$*'"
die "unknown option/argument: '$1'"
;;
esac
shift
done
if [ -z "$gccPACKAGE" ]
then
usage "Please specify gcc-VERSION"
exit 1
fi
[ -n "$gccPACKAGE" ] || die "The gcc-VERSION was not specified"
cat<<SUMMARY
GCC configuration
------------------
GCC = $gccPACKAGE
GMP = $gmpPACKAGE
MPFR = $mpfrPACKAGE
MPC = $mpcPACKAGE
------------------
SUMMARY
# Set 32 or 64 bit ABI
case "$WM_ARCH_OPTION" in
@ -105,7 +151,7 @@ case "$WM_ARCH_OPTION" in
ABI=$WM_ARCH_OPTION
;;
*)
usage "Please set WM_ARCH_OPTION to either 32 or 64'$*'"
die "The WM_ARCH_OPTION ($WM_ARCH_OPTION) must be 32 or 64"
;;
esac
@ -120,20 +166,17 @@ GMP_ARCH_PATH=$installBASE/$gmpPACKAGE
MPFR_ARCH_PATH=$installBASE/$mpfrPACKAGE
MPC_ARCH_PATH=$installBASE/$mpcPACKAGE
# mpc is not needed for gcc older than 4.5
case "$gccPACKAGE" in
gcc-4.[0-4].*)
mpcPACKAGE=false
;;
esac
#
# ================
# Build GMP
#
# ================
echo "---------------"
if [ -d $GMP_ARCH_PATH ]
then
echo "Already built: $gmpPACKAGE"
elif _foamIsSystem $GMP_ARCH_PATH
then
echo "Using gmp-system"
else
echo "Starting build: $gmpPACKAGE"
echo
@ -151,6 +194,7 @@ else
set -x
$sourceDIR/configure ABI=$ABI \
--prefix=$GMP_ARCH_PATH \
--libdir=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
--enable-cxx \
&& make -j $WM_NCOMPPROCS \
&& make install \
@ -161,15 +205,30 @@ else
}
fi
export LD_LIBRARY_PATH="$GMP_ARCH_PATH/lib:$LD_LIBRARY_PATH"
if [ -d "$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ]
then
_foamAddLib "$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
#
configGMP=$(cat <<CONFIG_OPTIONS
--with-gmp-include=$GMP_ARCH_PATH/include
--with-gmp-lib=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
CONFIG_OPTIONS
)
else
unset configGMP
fi
# ================
# Build MPFR
#
# ================
echo "---------------"
if [ -d $MPFR_ARCH_PATH ]
then
echo "Already built: $mpfrPACKAGE"
elif _foamIsSystem $MPFR_ARCH_PATH
then
echo "Using mpfr-system"
else
echo "Starting build: $mpfrPACKAGE"
echo
@ -184,10 +243,15 @@ else
mkdir -p $buildDIR
cd $buildDIR
unset configOpt
# explicitly enable/disable thread-safe
[ -n "$optThreadSafe" ] && configOpt="--${optThreadSafe}-thread-safe"
set -x
$sourceDIR/configure ABI=$ABI \
--prefix=$MPFR_ARCH_PATH \
--with-gmp=$GMP_ARCH_PATH \
--prefix=$MPFR_ARCH_PATH \
--libdir=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
$configGMP $configOpt \
&& make -j $WM_NCOMPPROCS \
&& make install \
&& echo "Built: $mpfrPACKAGE"
@ -197,18 +261,30 @@ else
}
fi
export LD_LIBRARY_PATH="$MPFR_ARCH_PATH/lib:$LD_LIBRARY_PATH"
if [ -d "$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ]
then
_foamAddLib "$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
#
# Build mpc
#
configMPFR=$(cat <<CONFIG_OPTIONS
--with-mpfr-include=$MPFR_ARCH_PATH/include \
--with-mpfr-lib=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
CONFIG_OPTIONS
)
else
unset configMPFR
fi
# ================
# Build MPC
# ================
echo "---------------"
if [ -d $MPC_ARCH_PATH ]
then
echo "Already built: $mpcPACKAGE"
elif [ "$mpcPACKAGE" = false ]
elif _foamIsSystem $MPC_ARCH_PATH
then
echo "Skip building mpc - not needed for older gcc versions"
echo "Using mpc-system"
else
echo "Starting build: $mpcPACKAGE"
echo
@ -226,8 +302,8 @@ else
set -x
$sourceDIR/configure ABI=$ABI \
--prefix=$MPC_ARCH_PATH \
--with-gmp=$GMP_ARCH_PATH \
--with-mpfr=$MPFR_ARCH_PATH \
--libdir=$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
$configGMP $configMPFR \
&& make -j $WM_NCOMPPROCS \
&& make install \
&& echo "Built: $mpcPACKAGE"
@ -237,22 +313,34 @@ else
}
fi
if [ -d "$MPC_ARCH_PATH" ]
if [ -d "$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ]
then
export LD_LIBRARY_PATH="$MPC_ARCH_PATH/lib:$LD_LIBRARY_PATH"
_foamAddLib "$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
configMPC=$(cat <<CONFIG_OPTIONS
--with-mpc-include=$MPC_ARCH_PATH/include \
--with-mpc-lib=$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
CONFIG_OPTIONS
)
else
unset configMPC
fi
#
# ================
# Build GCC
# might need 32-bit glibc-devel headers to compile
# ================
# may need 32-bit glibc-devel headers to compile
# E.g. on ubuntu install g++-multilib
# or specify -no-multilib on the command-line
#
echo "---------------"
if [ -d $GCC_ARCH_PATH ]
then
echo "Already built: $gccPACKAGE"
elif _foamIsSystem $GCC_ARCH_PATH
then
echo "Using gcc-system"
else
echo "Starting build: $gccPACKAGE"
echo
@ -263,24 +351,23 @@ else
cd $sourceDIR || exit 1
make distclean 2>/dev/null
unset withMpc
[ -d "$MPC_ARCH_PATH" ] && withMpc="--with-mpc=$MPC_ARCH_PATH"
rm -rf $buildDIR
mkdir -p $buildDIR
cd $buildDIR
unset configOpt
# with/without multi-lib (32-bit support on 64-bit systems)
[ -n "$optMultilib" ] && configOpt="--${optMultilib}-multilib"
set -x
$sourceDIR/configure \
--prefix=$GCC_ARCH_PATH \
--with-gmp=$GMP_ARCH_PATH \
--with-mpfr=$MPFR_ARCH_PATH \
$withMpc \
--with-pkgversion=OpenFOAM \
--enable-languages=c,c++ \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--with-system-zlib \
$configGMP $configMPFR $configMPC $configOpt \
MAKEINFO=missing \
&& make -j $WM_NCOMPPROCS \
&& make install \
@ -292,4 +379,4 @@ else
fi
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

@ -69,12 +69,12 @@ do
;;
gperftools-[0-9]* | gperftools-svn*)
gperftoolsPACKAGE="${1%%/}"
shift
;;
*)
usage "unknown option/argument: '$*'"
die "unknown option/argument: '$1'"
;;
esac
shift
done
#------------------------------------------------------------------------------
@ -115,4 +115,4 @@ else
}
fi
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

@ -3,8 +3,8 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
# \\/ M anipulation |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -26,18 +26,39 @@
# makeLLVM
#
# Description
# Build script for llvm/clang etc.
# Build script for llvm, clang etc.
#
# - Checkout LLVM:
# svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm-svn
# Note
# - Ensure that you always use matching versions between llvm and clang.
# - The LLVM components reside in the LLVM tools/ subdirectory
#
# - Checkout Clang:
# cd llvm-svn/tools
# svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
# cd -
# Example, building from svn repository:
# 1) Checkout LLVM:
# svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm-svn
#
# 2) Checkout Clang, in the correct location
# cd llvm-svn/tools
# svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
# cd -
#
# Example, building from tar files (version 3.8.0)
# - Unpack LLVM:
# tar -Jvf llvm-3.8.0.src.tar.xz
# mv llvm-3.8.0.src llvm-3.8.0
#
# - Unpack Clang (also know as cfe):
# tar -Jvf cfe-3.8.0.src.tar.xz
# mv cfe-3.8.0.src llvm-3.8.0/tools/clang
#
#------------------------------------------------------------------------------
llvmPACKAGE=llvm-3.6.0
# get default llvm/clang version
WM_COMPILER_TYPE="ThirdParty" # ensure we get the correct compiler settings
WM_COMPILER=Clang # force values for 'clang'
. $WM_PROJECT_DIR/etc/config.sh/functions
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler)
llvmPACKAGE=$clang_version
#------------------------------------------------------------------------------
# run from third-party directory only
@ -49,21 +70,25 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
}
. etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
Script=${0##*/}
usage() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: ${0##*/} [llvm-VERSION]
usage: $Script [OPTION] [llvm-VERSION]
options:
-help
* build llvm/clang
$llvmPACKAGE
${llvmPACKAGE:-'unspecified LLVM version'}
USAGE
exit 1
}
#-----------------------------------------------------------------------------
# parse options
while [ "$#" -gt 0 ]
@ -74,14 +99,16 @@ do
;;
llvm-[0-9]* | llvm-svn*)
llvmPACKAGE="${1%%/}"
shift
;;
*)
usage "unknown option/argument: '$*'"
die "unknown option/argument: '$1'"
;;
esac
shift
done
[ -n "$llvmPACKAGE" ] || die "The llvm-VERSION was not specified"
#------------------------------------------------------------------------------
# build/install without compiler name
buildBASE=$WM_THIRD_PARTY_DIR/build/$WM_ARCH$WM_COMPILER_ARCH
@ -120,8 +147,9 @@ else
set -x
$sourceDIR/configure \
--prefix=$LLVM_ARCH_PATH \
--with-gcc-toolchain=`which gcc | sed s%/bin/gcc%%` \
--with-gcc-toolchain=$(which gcc | sed s%/bin/gcc%%) \
--enable-optimized \
--enable-shared \
&& make -j $WM_NCOMPPROCS \
&& make install \
&& echo "Built: $llvmPACKAGE"
@ -131,4 +159,4 @@ else
}
fi
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

200
makeMesa Executable file
View File

@ -0,0 +1,200 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
# This file is part 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
# makeMesa
#
# Description
# Build script for Mesa
#
# Note
# Building with mesa-12.0.1 failed to install an "osmesa.h" file,
# which renders it useless for off-screen VTK.
#
#------------------------------------------------------------------------------
mesaPACKAGE=mesa-11.2.2
#------------------------------------------------------------------------------
# run from third-party directory only
cd ${0%/*} || exit 1
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
echo " The environment variables are inconsistent with the installation."
echo " Check the OpenFOAM entries in your dot-files and source them."
exit 1
}
. etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
Script=${0##*/}
usage() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: $Script [OPTION] [mesa-VERSION]
options:
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
-help
* build Mesa with
${mesaPACKAGE:-'unspecified MESA version'}
USAGE
exit 1
}
#------------------------------------------------------------------------------
# ensure configure gets the correct C/C++ compiler
[ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
# Non-standard location for clang?
unset thirdPartyClang
if [ "$WM_COMPILER_TYPE" = ThirdParty -a "$WM_COMPILER" = Clang ]
then
thirdPartyClang=true
fi
# parse options
while [ "$#" -gt 0 ]
do
case "$1" in
-h | -help)
usage
;;
-gcc)
export CC=gcc # use gcc/g++
export CXX=g++
unset thirdPartyClang
;;
mesa-*)
mesaPACKAGE="${1%%/}"
;;
*)
die "unknown option/argument: '$1'"
;;
esac
shift
done
[ -n "$mesaPACKAGE" ] || die "The mesa-VERSION was not specified"
# nothing to build
if _foamIsNone "$mesaPACKAGE"
then
echo "Using mesa-none (skip ThirdParty build of MESA)"
exit 0
fi
if _foamIsSystem "$mesaPACKAGE"
then
echo "Using mesa-system (skip ThirdParty build of MESA)"
exit 0
fi
#------------------------------------------------------------------------------
# locate third-party clang as required
if [ "$thirdPartyClang" = true ]
then
thirdPartyClang=$(command -v clang) || {
echo "Error: could not properly locate clang"
exit 2
}
# root installation directory
thirdPartyClang=${thirdPartyClang%/bin/clang}
[ -d "$thirdPartyClang" ] || {
echo "Error: could not properly locate clang"
exit 2
}
fi
#------------------------------------------------------------------------------
#
# Build MESA
# For 64-bit
# - MESA itself will normally build into 'lib64'.
#
# MESA_SOURCE_DIR : location of the original sources
MESA_ARCH_PATH=$installBASE/$mesaPACKAGE
MESA_SOURCE_DIR=$WM_THIRD_PARTY_DIR/$mesaPACKAGE
(
# configuration options:
unset configOpt
if [ -d "$thirdPartyClang" ]
then
configOpt="$configOpt --with-llvm-prefix=$thirdPartyClang"
fi
# end of configuration options
# ----------------------------
buildDIR=$buildBASE/$mesaPACKAGE
cd $MESA_SOURCE_DIR || exit 1
# remove any existing build
rm -rf $MESA_ARCH_PATH
rm -rf $buildDIR
mkdir -p $buildDIR
cd $buildDIR
echo "----"
echo "Building $mesaPACKAGE"
echo " Source : $MESA_SOURCE_DIR"
echo " Target : $MESA_ARCH_PATH"
if [ -d "$thirdPartyClang" ]
then
echo " Clang : $thirdPartyClang"
fi
echo "----"
# possibly for older mesa versions (see paraview wiki)
# CXXFLAGS="-O2 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
# CFLAGS="-O2 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
## autoreconf -fi
set -x
$MESA_SOURCE_DIR/configure \
--prefix=$MESA_ARCH_PATH \
--disable-xvmc \
--disable-glx \
--disable-dri \
--disable-egl \
--enable-texture-float \
--enable-gallium-osmesa --with-gallium-drivers=swrast \
$configOpt \
&& make -j $WM_NCOMPPROCS \
&& make install \
&& echo "Built $mesaPACKAGE"
) || {
echo "Error building: MESA"
exit 1
}
# ----------------------------------------------------------------- end-of-file

View File

@ -3,8 +3,8 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
# \\/ M anipulation |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -26,12 +26,21 @@
# makeParaView
#
# Description
# Make and install paraview for version 3.14.1 and higher
# Make and install paraview 4 or 5
# - place the paraview source under $WM_THIRD_PARTY_DIR/ParaView-VERSION
# (note capitalisation)
#
#------------------------------------------------------------------------------
# run from third-party directory only
# Get ParaView_DIR location from OpenFOAM config file
. $WM_PROJECT_DIR/etc/config.sh/functions
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/paraview)
# Determine ParaView_VERSION from ParaView_DIR location:
ParaView_VERSION="${ParaView_DIR##*/}"; export ParaView_VERSION
: ${ParaView_VERSION##*-}
#------------------------------------------------------------------------------
# Run from third-party directory only
cd ${0%/*} || exit 1
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
@ -47,6 +56,7 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
# ~~~~~~~~~~~~~
# MPI support:
# use 0 or unset MPI_MAX_PROCS for no upper-limit
withMPI=false
MPI_MAX_PROCS=32
@ -55,12 +65,12 @@ MPI_MAX_PROCS=32
# If it fails, specify the path using the PYTHON_LIBRARY variable
withPYTHON=false
PYTHON_LIBRARY=""
# PYTHON_LIBRARY="/usr/lib64/libpython2.6.so.1.0"
# PYTHON_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libpython2.6.so.1.0"
# MESA graphics support:
withMESA=false
MESA_INCLUDE="/usr/include/GL"
MESA_LIBRARY="/usr/lib64/libOSMesa.so"
MESA_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
# extra QT gui support (useful for some third party apps)
withQT=true
@ -71,6 +81,10 @@ QMAKE_PATH=""
# Set the path to cmake
CMAKE_PATH=""
# New rendering backend (starting with paraview 5.0).
# Default to auto-config based on paraview version
withGL2=auto
#
# NO FURTHER EDITING BELOW THIS LINE
#
@ -78,39 +92,46 @@ CMAKE_PATH=""
Script=${0##*/}
usage() {
: ${ParaView_VERSION:=none} # some dummy value for usage information
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: $Script [OPTION] [CMAKE-OPTION]
usage: $Script [OPTION] [paraview-VERSION] [CMAKE-OPTION]
options:
-rebuild for repeated builds (-make -install) *use with caution*
-gl2 with new rendering backend (if not already enabled)
-mesa with mesa (if not already enabled)
-mpi with mpi (if not already enabled)
-mpi=NPROCS with mpi and max 'NPROCS' processes. NPROCS=0 for no
upper-limit on processes.
-python with python (if not already enabled)
-cmake PATH with the cmake version corresponding to the cmake path given
-qmake PATH with the Qt version corresponding to the qmake path given
-qt with extra Qt gui support (if not already enabled)
-qt-VER with Qt version corresponding to
\$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/qt-VER/bin/qmake
-gcc force g++ instead of the value from \$WM_CXX
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
-verbose verbose output in Makefiles
-version VER specify an alternative version (current value: $ParaView_VERSION)
-major VER specify an alternative major version for special builds
-mesa-include DIR
location of mesa headers (current value: ${MESA_INCLUDE:-none})
-buildType NAME specify the build type (default: Release)
-mesa-prefix DIR location of mesa installation (sets -mesa-include, -mesa-lib)
-mesa-include DIR location of mesa headers (current value: ${MESA_INCLUDE:-none})
-mesa-lib PATH path to mesa library (current value: ${MESA_LIBRARY:-none})
-python-lib PATH path to python library (current value: ${PYTHON_LIBRARY:-none})
-help
The -no-FEATURE option can be disable these features (if not already disabled):
The -no-FEATURE option can be used to forcibly disable these features:
mesa mpi python qt
CMake options start with a capital letter and contain an '='.
For example,
$Script BUILD_TESTING=ON PARAVIEW_GENERATE_PROXY_DOCUMENTATION=OFF
to add tests and avoid building documentation
$Script BUILD_TESTING=ON
to add tests
For finer control, the build stages can be selected or deselected individually:
-patch -no-patch
-config -no-config
-make -no-make
-install -no-install
@ -120,15 +141,22 @@ For finer control, the build stages can be selected or deselected individually:
\$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
-> \$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/paraview-$ParaView_VERSION
To make a different paraview version, simply specify on the command-line.
For example,
./makeParaview 4.4.0
Or change the \$WM_PROJECT_DIR/etc/config.sh/paraview settings.
USAGE
exit 1
}
#------------------------------------------------------------------------------
# ensure CMake gets the correct C++ compiler
# ensure CMake gets the correct C/C++ compiler
[ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
[ -n "$WM_CC" ] && export CC="$WM_CC"
#
# add options based on script name:
@ -138,14 +166,15 @@ case "$Script" in *-mpi*) withMPI=true;; esac
case "$Script" in *-python*) withPYTHON=true;; esac
case "$Script" in *-qt*) withQT=true;; esac
# set ParaView_MAJOR based on current value of ParaView_VERSION
setVersion
# Set initial ParaView_MAJOR based on current value of ParaView_VERSION
setParaViewVersion ${ParaView_VERSION:-none}
#
# various building stages
#
unset runCONFIG runMAKE runINSTALL
unset runPATCH runCONFIG runMAKE runINSTALL
runDEFAULT=true
buildType=Release
# parse options
while [ "$#" -gt 0 ]
@ -154,131 +183,166 @@ do
-h | -help)
usage
;;
[0-9]* | paraview-[0-9]* | ParaView-[0-9]*) # paraview version
setParaViewVersion "${1%%/}"
;;
[A-Z]*=*) # cmake variables
addCMakeVariable "$1"
shift
;;
-gcc)
export CXX=g++ # use g++
shift
export CC=gcc # use gcc/g++
export CXX=g++
;;
-patch) # stage 0: patch sources
runPATCH=true
unset runDEFAULT
;;
-no-patch)
runPATCH=false
;;
-config) # stage 1: config only
runCONFIG=true
unset runDEFAULT
shift
;;
-no-config)
runCONFIG=false
shift
;;
-make) # stage 2: make only
runMAKE=true
unset runDEFAULT
shift
;;
-no-make)
runMAKE=false
shift
;;
-install) # stage 3: install only
runINSTALL=true
unset runDEFAULT
shift
;;
-no-install)
runINSTALL=false
shift
;;
-rebuild) # shortcut for rebuilding
runMAKE=true
runINSTALL=true
unset runDEFAULT
shift
;;
-gl2)
withGL2=true
;;
-no-gl2)
withGL2=false
;;
-mesa)
withMESA=true
shift
;;
-no-mesa)
withMESA=false
;;
-mesa-prefix)
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
withMESA=true
MESA_INCLUDE="${2%%/}/include"
MESA_LIBRARY="${2%%/}/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
shift
;;
-mesa-include)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
MESA_INCLUDE="$2"
shift 2
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
MESA_INCLUDE="${2%%/}"
shift
;;
-mesa-lib)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
MESA_LIBRARY="$2"
shift 2
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
MESA_LIBRARY="${2%%/}"
shift
;;
-mpi)
withMPI=true
shift
;;
-mpi=[0-9]*) # mpi and max mpi processes
withMPI=true
MPI_MAX_PROCS="${1##*=}"
;;
-no-mpi)
withMPI=false
shift
;;
-python)
withPYTHON=true
shift
;;
-no-python)
withPYTHON=false
shift
;;
-python-lib)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
PYTHON_LIBRARY="$2"
shift 2
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
PYTHON_LIBRARY="${2%%/}"
shift
;;
-cmake)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
CMAKE_PATH=$2
shift 2
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
CMAKE_PATH="${2%%/}"
shift
;;
-qmake)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
QMAKE_PATH=$2
shift 2
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
QMAKE_PATH="${2%%/}"
shift
;;
-qt)
withQT=true
shift
;;
-no-qt)
withQT=false
shift
;;
-qt-[1-9]*)
QMAKE_PATH="$installBASE/${1##-}"
shift
;;
-verbose)
withVERBOSE=true
shift
;;
-version)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
setVersion "$2"
shift 2
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
setParaViewVersion "${2%%/}"
shift
;;
-major)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
export ParaView_MAJOR="$2"
shift 2
shift
;;
-buildType)
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
buildType="$2"
shift
;;
*)
usage "unknown option/argument: '$*'"
die "unknown option/argument: '$1'"
;;
esac
shift
done
[ -n "$ParaView_VERSION" ] || die "The paraview-VERSION was not specified"
# nothing to build
if _foamIsNone "$ParaView_VERSION"
then
echo "Using paraview-none (skip ThirdParty build of ParaView)"
exit 0
fi
# Version-specific adjustments
if [ "$withGL2" = auto ]
then
if [ "${ParaView_VERSION%%.*}" = 4 ]
then
withGL2=false
else
withGL2=true
fi
fi
if [ "$runDEFAULT" = true ]
then
: ${runPATCH:=true}
: ${runCONFIG:=true}
: ${runMAKE:=true}
: ${runINSTALL:=true}
@ -291,10 +355,10 @@ addVerbosity # verbose makefiles
addMpiSupport # set MPI-specific options
addPythonSupport # set Python-specific options
addMesaSupport # set MESA-specific options
addGL2Support # new rendering backend
addQtSupport # add extra Qt support
setDirs # where things are or should be put
echoDateStamp # report kitware source code date-stamp
setParaViewDirs # where things are or should be put
# Build and install
@ -303,6 +367,7 @@ cat<<SUMMARY
Build stages selected
---------------------
-patch ${runPATCH:-false}
-config ${runCONFIG:-false}
-make ${runMAKE:-false}
-install ${runINSTALL:-false}
@ -317,10 +382,12 @@ Version information
qt ${QtVersion:-none}
version ${ParaView_VERSION:-unknown}
major ${ParaView_MAJOR:-unknown}
build ${buildType:-Release}
$(checkVersion)
---------------------
SUMMARY
[ "$runPATCH" = true ] && patchParaView
[ "$runCONFIG" = true ] && configParaView
[ "$runMAKE" = true ] && makeParaView
[ "$runINSTALL" = true ] && installParaView

13
makeParaView.example Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
# An example for building particular combinations of ParaView with
# - mpi (0 = no upper-limit on processes)
# - off-screen mesa
mesa=mesa-11.2.2
./makeParaView \
-mpi=0 \
-mesa-prefix $WM_THIRD_PARTY_DIR/platforms/linux64Gcc/$mesa \
"$@"
#------------------------------------------------------------------------------

View File

@ -3,8 +3,8 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
# \\/ M anipulation |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@ -23,15 +23,24 @@
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
#
# Script
# makeParaView
# makeParaView3
#
# Description
# Make and install paraview
# Make and install paraview for version 3.14.1 and higher
# - place the paraview source under $WM_THIRD_PARTY_DIR/ParaView-VERSION
# (note capitalisation)
#
#------------------------------------------------------------------------------
# run from third-party directory only
# Get ParaView_DIR location from OpenFOAM config file
. $WM_PROJECT_DIR/etc/config.sh/functions
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/paraview)
# Determine ParaView_VERSION from ParaView_DIR location:
ParaView_VERSION="${ParaView_DIR##*/}"; export ParaView_VERSION
: ${ParaView_VERSION##*-}
#------------------------------------------------------------------------------
# Run from third-party directory only
cd ${0%/*} || exit 1
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
@ -40,7 +49,7 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
exit 1
}
. etc/tools/ThirdPartyFunctions
. etc/tools/ParaView4Functions
. etc/tools/ParaView3Functions
#------------------------------------------------------------------------------
#
# USER OPTIONS:
@ -55,12 +64,12 @@ MPI_MAX_PROCS=32
# If it fails, specify the path using the PYTHON_LIBRARY variable
withPYTHON=false
PYTHON_LIBRARY=""
# PYTHON_LIBRARY="/usr/lib64/libpython2.6.so.1.0"
# PYTHON_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libpython2.6.so.1.0"
# MESA graphics support:
withMESA=false
MESA_INCLUDE="/usr/include/GL"
MESA_LIBRARY="/usr/lib64/libOSMesa.so"
MESA_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
# extra QT gui support (useful for some third party apps)
withQT=true
@ -78,10 +87,12 @@ CMAKE_PATH=""
Script=${0##*/}
usage() {
: ${ParaView_VERSION:=none} # some dummy value for usage information
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: $Script [OPTION] [CMAKE-OPTION]
usage: $Script [OPTION] [paraview-VERSION] [CMAKE-OPTION]
options:
-rebuild for repeated builds (-make -install) *use with caution*
-mesa with mesa (if not already enabled)
@ -92,23 +103,22 @@ options:
-qt with extra Qt gui support (if not already enabled)
-qt-VER with Qt version corresponding to
\$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/qt-VER/bin/qmake
-gcc force g++ instead of the value from \$WM_CXX
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
-verbose verbose output in Makefiles
-version VER specify an alternative version (current value: $ParaView_VERSION)
-major VER specify an alternative major version for special builds
-mesa-include DIR
location of mesa headers (current value: ${MESA_INCLUDE:-none})
-mesa-include DIR location of mesa headers (current value: ${MESA_INCLUDE:-none})
-mesa-lib PATH path to mesa library (current value: ${MESA_LIBRARY:-none})
-python-lib PATH path to python library (current value: ${PYTHON_LIBRARY:-none})
-help
The -no-FEATURE option can be disable these features (if not already disabled):
The -no-FEATURE option can be used to forcibly disable these features:
mesa mpi python qt
CMake options start with a capital letter and contain an '='.
For example,
$Script BUILD_TESTING=ON
to add tests
$Script BUILD_TESTING=ON PARAVIEW_GENERATE_PROXY_DOCUMENTATION=OFF
to add tests and avoid building documentation
For finer control, the build stages can be selected or deselected individually:
-config -no-config
@ -120,15 +130,22 @@ For finer control, the build stages can be selected or deselected individually:
\$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
-> \$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/paraview-$ParaView_VERSION
To make a different paraview version, simply specify on the command-line.
For example,
./makeParaview 3.14.1
Or change the \$WM_PROJECT_DIR/etc/config.sh/paraview settings.
USAGE
exit 1
}
#------------------------------------------------------------------------------
# ensure CMake gets the correct C++ compiler
# ensure CMake gets the correct C/C++ compiler
[ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
[ -n "$WM_CC" ] && export CC="$WM_CC"
#
# add options based on script name:
@ -138,15 +155,14 @@ case "$Script" in *-mpi*) withMPI=true;; esac
case "$Script" in *-python*) withPYTHON=true;; esac
case "$Script" in *-qt*) withQT=true;; esac
# set ParaView_MAJOR based on current value of ParaView_VERSION
setVersion
# Set initial ParaView_MAJOR based on current value of ParaView_VERSION
setParaViewVersion ${ParaView_VERSION:-none}
#
# various building stages
#
unset runCONFIG runMAKE runINSTALL
runDEFAULT=true
buildType=Release
# parse options
while [ "$#" -gt 0 ]
@ -155,133 +171,122 @@ do
-h | -help)
usage
;;
[0-9]* | paraview-[0-9]* | ParaView-[0-9]*) # paraview version
setParaViewVersion "${1%%/}"
;;
[A-Z]*=*) # cmake variables
addCMakeVariable "$1"
shift
;;
-gcc)
export CXX=g++ # use g++
shift
export CC=gcc # use gcc/g++
export CXX=g++
;;
-config) # stage 1: config only
runCONFIG=true
unset runDEFAULT
shift
;;
-no-config)
runCONFIG=false
shift
;;
-make) # stage 2: make only
runMAKE=true
unset runDEFAULT
shift
;;
-no-make)
runMAKE=false
shift
;;
-install) # stage 3: install only
runINSTALL=true
unset runDEFAULT
shift
;;
-no-install)
runINSTALL=false
shift
;;
-rebuild) # shortcut for rebuilding
runMAKE=true
runINSTALL=true
unset runDEFAULT
shift
;;
-mesa)
withMESA=true
shift
;;
-no-mesa)
withMESA=false
shift
;;
-mesa-include)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
MESA_INCLUDE="$2"
shift 2
shift
;;
-mesa-lib)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
MESA_LIBRARY="$2"
shift 2
shift
;;
-mpi)
withMPI=true
shift
;;
-no-mpi)
withMPI=false
shift
;;
-python)
withPYTHON=true
shift
;;
-no-python)
withPYTHON=false
shift
;;
-python-lib)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
PYTHON_LIBRARY="$2"
shift 2
shift
;;
-cmake)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
CMAKE_PATH=$2
shift 2
shift
;;
-qmake)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
QMAKE_PATH=$2
shift 2
shift
;;
-qt)
withQT=true
shift
;;
-no-qt)
withQT=false
shift
;;
-qt-[1-9]*)
QMAKE_PATH="$installBASE/${1##-}"
shift
;;
-verbose)
withVERBOSE=true
shift
;;
-version)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
setVersion "$2"
shift 2
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
setParaViewVersion "${2%%/}"
shift
;;
-major)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
export ParaView_MAJOR="$2"
shift 2
;;
-buildType)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
buildType="$2"
shift 2
shift
;;
*)
usage "unknown option/argument: '$*'"
die "unknown option/argument: '$1'"
;;
esac
shift
done
[ -n "$ParaView_VERSION" ] || die "The paraview-VERSION was not specified"
# nothing to build
if _foamIsNone "$ParaView_VERSION"
then
echo "Using paraview-none (skip ThirdParty build of ParaView)"
exit 0
fi
if [ "$runDEFAULT" = true ]
then
@ -299,8 +304,7 @@ addPythonSupport # set Python-specific options
addMesaSupport # set MESA-specific options
addQtSupport # add extra Qt support
setDirs # where things are or should be put
echoDateStamp # report kitware source code date-stamp
setParaViewDirs # where things are or should be put
# Build and install
@ -323,7 +327,6 @@ Version information
qt ${QtVersion:-none}
version ${ParaView_VERSION:-unknown}
major ${ParaView_MAJOR:-unknown}
build ${buildType:-Release}
$(checkVersion)
---------------------
SUMMARY
@ -334,4 +337,5 @@ SUMMARY
echo
echo Done
#------------------------------------------------------------------------------

16
makeQt
View File

@ -50,7 +50,7 @@ usage() {
usage: ${0##*/} [OPTION] [VERSION]
options:
-gcc force g++ instead of the value from \$WM_CXX
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
-help
* build $qtTYPE, version $qtVERSION
@ -58,12 +58,12 @@ options:
USAGE
exit 1
}
#------------------------------------------------------------------------------
# ensure configure gets the correct C++ compiler
# ensure configure gets the correct C/C++ compiler
[ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
# parse options
while [ "$#" -gt 0 ]
do
@ -72,18 +72,18 @@ do
usage
;;
-gcc)
export CXX=g++ # use g++
shift
export CC=gcc # use gcc/g++
export CXX=g++
;;
[1-9]* | qt-[1-9]*)
qtVERSION="${1%%/}";
qtVERSION="${qtVERSION#qt-}"
shift
;;
*)
usage "unknown option/argument: '$*'"
die "unknown option/argument: '$1'"
;;
esac
shift
done
#------------------------------------------------------------------------------

323
makeVTK Executable file
View File

@ -0,0 +1,323 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
# This file is part 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
# makeVTK
#
# Description
# Make and install VTK
# - place the VTK source under $WM_THIRD_PARTY_DIR/VTK-VERSION
#
# To use the VTK source from the ParaView source tree, simply make an
# appropriate link first. For example,
#
# ln -s ParaView-5.1.0/VTK VTK-7.1.0
#
#------------------------------------------------------------------------------
# run from third-party directory only
cd ${0%/*} || exit 1
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
echo " The environment variables are inconsistent with the installation."
echo " Check the OpenFOAM entries in your dot-files and source them."
exit 1
}
. etc/tools/ThirdPartyFunctions
. etc/tools/ParaViewFunctions
. etc/tools/vtkFunctions
#------------------------------------------------------------------------------
#
# USER OPTIONS:
# ~~~~~~~~~~~~~
# MPI support:
# use 0 or unset MPI_MAX_PROCS for no upper-limit
withMPI=false
unset MPI_MAX_PROCS
# MESA graphics support:
withMESA=false
MESA_INCLUDE="/usr/include/GL"
MESA_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
# Set the path to cmake
CMAKE_PATH=""
# New rendering backend (starting with vtk 7?).
# Default to auto-config based on VTK version
withGL2=auto
#
# NO FURTHER EDITING BELOW THIS LINE
#
#-----------------------------------------------------------------------------
Script=${0##*/}
usage() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: $Script [OPTION] [vtk-VERSION] [CMAKE-OPTION]
options:
-rebuild for repeated builds (-make -install) *use with caution*
-gl2 with new rendering backend (if not already enabled)
-mesa with mesa (if not already enabled)
-mpi with mpi (if not already enabled)
-mpi=NPROCS with mpi and max 'NPROCS' processes. NPROCS=0 for no
upper-limit on processes.
-osmesa with off-screen mesa only
-cmake PATH with the cmake version corresponding to the cmake path given
-gcc force g++ instead of the value from \$WM_CXX
-verbose verbose output in Makefiles
-version VER specify an alternative version (current value: $VTK_VERSION)
-buildType NAME specify the build type (default: Release)
-mesa-prefix DIR location of mesa installation
-mesa-include DIR location of mesa headers (current value: ${MESA_INCLUDE:-none})
-mesa-lib PATH path to mesa library (current value: ${MESA_LIBRARY:-none})
-help
The -no-FEATURE option can be disable these features (if not already disabled):
mesa mpi
CMake options start with a capital letter and contain an '='.
For example,
$Script BUILD_TESTING=ON
to add tests and avoid building documentation
For finer control, the build stages can be selected or deselected individually:
-config -no-config
-make -no-make
-install -no-install
* Make and install VTK-$VTK_VERSION located under
\$WM_THIRD_PARTY_DIR/VTK-$VTK_VERSION
-> \$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/VTK-$VTK_VERSION
USAGE
exit 1
}
#------------------------------------------------------------------------------
# ensure CMake gets the correct C/C++ compiler
[ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
#
# various building stages
#
unset runPATCH runCONFIG runMAKE runINSTALL
runDEFAULT=true
buildType=Release
withOSMESA=false
# parse options
while [ "$#" -gt 0 ]
do
case "$1" in
-h | -help)
usage
;;
[0-9]* | vtk-[0-9]* | VTK-[0-9]*) # VTK version
setVtkVersion "${1%%/}"
;;
[A-Z]*=*) # cmake variables
addCMakeVariable "$1"
;;
-gcc)
export CC=gcc # use gcc/g++
export CXX=g++
;;
-config) # stage 1: config only
runCONFIG=true
unset runDEFAULT
;;
-no-config)
runCONFIG=false
;;
-make) # stage 2: make only
runMAKE=true
unset runDEFAULT
;;
-no-make)
runMAKE=false
;;
-install) # stage 3: install only
runINSTALL=true
unset runDEFAULT
;;
-no-install)
runINSTALL=false
;;
-rebuild) # shortcut for rebuilding
runMAKE=true
runINSTALL=true
unset runDEFAULT
;;
-gl2)
withGL2=true
;;
-no-gl2)
withGL2=false
;;
-mesa)
withMESA=true
;;
-osmesa)
withMESA=true
withOSMESA=true
;;
-no-mesa)
withMESA=false
withOSMESA=false
;;
-mesa-prefix)
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
withMESA=true
MESA_INCLUDE="${2%%/}/include"
MESA_LIBRARY="${2%%/}/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
shift
;;
-mesa-include)
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
MESA_INCLUDE="${2%%/}"
shift
;;
-mesa-lib)
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
MESA_LIBRARY="${2%%/}"
shift
;;
-mpi)
withMPI=true
;;
-mpi=[0-9]*) # mpi and max mpi processes
withMPI=true
MPI_MAX_PROCS="${1##*=}"
;;
-no-mpi)
withMPI=false
;;
-cmake)
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
CMAKE_PATH="${2%%/}"
shift
;;
-verbose)
withVERBOSE=true
;;
-version)
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
setVtkVersion "${2%%/}"
VTK_VERSION="${2%%/}"
shift
;;
-buildType)
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
buildType="$2"
shift
;;
*)
die "unknown option/argument: '$1'"
;;
esac
shift
done
[ -n "$VTK_VERSION" ] || die "The vtk-VERSION was not specified"
# Version-specific adjustments
if [ "$withGL2" = auto ]
then
if [ "${VTK_VERSION%%.*}" -lt 7 ]
then
withGL2=false
else
withGL2=true
fi
fi
if [ "$runDEFAULT" = true ]
then
: ${runPATCH:=true}
: ${runCONFIG:=true}
: ${runMAKE:=true}
: ${runINSTALL:=true}
fi
# Set configure options
#~~~~~~~~~~~~~~~~~~~~~~
addVerbosity # verbose makefiles
addMpiSupport # set MPI-specific options
addMesaSupport # set MESA-specific options
addGL2Support # new rendering backend
# set off-screen only options
if [ "$withOSMESA" = true ]
then
addCMakeVariable "VTK_USE_X:BOOL=OFF"
addCMakeVariable "OPENGL_INCLUDE_DIR=$MESA_INCLUDE"
addCMakeVariable "OPENGL_xmesa_INCLUDE_DIR=$MESA_INCLUDE"
addCMakeVariable "OPENGL_gl_LIBRARY=$MESA_LIBRARY"
addCMakeVariable "OPENGL_glu_LIBRARY=$MESA_LIBRARY"
fi
setVtkDirs # where things are or should be put
# Build and install
# ~~~~~~~~~~~~~~~~~
cat<<SUMMARY
Build stages selected
---------------------
-patch ${runPATCH:-false}
-config ${runCONFIG:-false}
-make ${runMAKE:-false}
-install ${runINSTALL:-false}
---------------------
Features selected
mesa ${withMESA:-false}
mpi ${withMPI:-false}
---------------------
Version information
version ${VTK_VERSION:-unknown}
build ${buildType:-Release}
---------------------
SUMMARY
[ "$runPATCH" = true ] && patchVTK
[ "$runCONFIG" = true ] && configVTK
[ "$runMAKE" = true ] && makeVTK
[ "$runINSTALL" = true ] && installVTK
echo
echo Done
#------------------------------------------------------------------------------

14
makeVTK.example Executable file
View File

@ -0,0 +1,14 @@
#!/bin/sh
# An example for building particular combinations of VTK with
# - off-screen mesa
vtk=vtk-7.1.0
mesa=mesa-11.2.2
./makeVTK \
$vtk \
-osmesa \
-mesa-prefix $WM_THIRD_PARTY_DIR/platforms/linux64Gcc/$mesa \
"$@"
#------------------------------------------------------------------------------