All ThirdParty build-related stuff moved there.

This commit is contained in:
Mark Olesen
2009-07-24 23:10:15 +02:00
parent b1a3bcc9a9
commit 91157af10c
15 changed files with 76 additions and 1376 deletions

View File

@ -6,7 +6,7 @@ set -x
( cd wmake/src && make ) ( cd wmake/src && make )
# build ThirdParty sources # build ThirdParty sources
$WM_PROJECT_DIR/bin/tools/AllwmakeThirdParty $WM_THIRD_PARTY_DIR/Allwmake
# build OpenFOAM libraries and applications # build OpenFOAM libraries and applications
src/Allwmake src/Allwmake

19
README
View File

@ -22,8 +22,8 @@
If the user wishes to run OpenFOAM in 32/64-bit mode they should consult the If the user wishes to run OpenFOAM in 32/64-bit mode they should consult the
section "Running OpenFOAM in 32-bit mode". section "Running OpenFOAM in 32-bit mode".
*** Qt (from http://trolltech.com/products/qt) ** Qt (from http://trolltech.com/products/qt)
The ParaView 3.3 visualisation package requires that Qt version 4.3.x MUST The ParaView 3.6 visualisation package requires that Qt version 4.3.x MUST
be installed on the system. Earlier or more recent versions (4.2.x or be installed on the system. Earlier or more recent versions (4.2.x or
4.4.x) will NOT work. To check whether Qt4 is installed, and the version, 4.4.x) will NOT work. To check whether Qt4 is installed, and the version,
type: type:
@ -85,7 +85,7 @@
+ source $HOME/.cshrc + source $HOME/.cshrc
*** Installation in alternative locations ** Installation in alternative locations
OpenFOAM may also be installed in alternative locations. However, the OpenFOAM may also be installed in alternative locations. However, the
installation directory should be network available (e.g., NFS) if parallel installation directory should be network available (e.g., NFS) if parallel
calculations are planned. calculations are planned.
@ -154,14 +154,15 @@
+ icoFoam + icoFoam
+ paraFoam + paraFoam
* Compiling Paraview 3.3 and the PV3FoamReader module * Compiling Paraview 3 and the PV3FoamReader module
A version of Qt 4.3.x must be installed to compile ParaView. The compilation A version of Qt 4.3.x must be installed to compile ParaView. The
is a fairly simple process using the supplied buildParaView script that compilation is a fairly simple process using the makeParaView script
has worked in our tests with other packages supplied in the ThirdParty (found in ThirdParty directory) that has worked in our tests with other
directory, namely cmake-2.6.4 and gcc-4.3.3. Execute the following: packages supplied in the ThirdParty directory, namely cmake-2.6.4 and
gcc-4.3.3. Execute the following:
+ cd $WM_THIRD_PARTY_DIR + cd $WM_THIRD_PARTY_DIR
+ rm -rf paraview-3.6/platforms + rm -rf paraview-3.6/platforms
+ buildParaView + ./makeParaView
The PV3FoamReader module is an OpenFOAM utility that can be compiled in the The PV3FoamReader module is an OpenFOAM utility that can be compiled in the

View File

@ -6,7 +6,7 @@ cd ${0%/*} || exit 1 # run from this directory
set -x set -x
# build libccmio and create lnInclude directory # build libccmio and create lnInclude directory
$WM_PROJECT_DIR/bin/tools/AllwmakeLibccmio $WM_THIRD_PARTY_DIR/AllwmakeLibccmio
# if the library built properly, the headers should exist too # if the library built properly, the headers should exist too
if [ -e $FOAM_LIBBIN/libccmio.so ] if [ -e $FOAM_LIBBIN/libccmio.so ]

View File

@ -1,225 +0,0 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# buildParaView
#
# Description
# Build and install paraview
# - run from folder above paraview source folder or place the
# paraview source under $WM_THIRD_PARTY_DIR
#
#------------------------------------------------------------------------------
. $WM_PROJECT_DIR/bin/tools/buildParaViewFunctions
# User options:
# ~~~~~~~~~~~~~
# MPI support:
withMPI=false
MPI_MAX_PROCS=32
# Python support:
# note: script will try to determine the appropriate python library.
# If it fails, specify the path using the PYTHON_LIBRARY variable
withPYTHON=false
PYTHON_LIBRARY=""
# PYTHON_LIBRARY="/usr/lib64/libpython2.6.so.1.0"
# MESA graphics support:
withMESA=false
MESA_INCLUDE="/usr/include/GL"
MESA_LIBRARY="/usr/lib64/libOSMesa.so"
# extra QT gui support (useful for re-using the installation for engrid)
withQTSUPPORT=true
# Set the path to the Qt-4.3.? qmake if the system Qt is other than this version
QMAKE_PATH=""
#
# No further editing below this line
#------------------------------------------------------------------------------
Script=${0##*/}
usage() {
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: $Script [OPTION]
options:
-rebuild for repeated builds (-make -install) *use with caution*
-mpi with mpi (if not already enabled)
-python with python (if not already enabled)
-mesa with mesa (if not already enabled)
-qt with extra Qt gui support (if not already enabled)
-verbose verbose output in Makefiles
-version VER specify an alternative version (default: $ParaView_VERSION)
-help
For finer control, the build stages can be also selected individually
(mutually exclusive)
-config
-make
-makedoc
-install
-envpath alter absolute paths in CMake files to use env variables
Build and install paraview-$ParaView_VERSION
- run from folder above the ParaView source folder or place the ParaView
source under \$WM_THIRD_PARTY_DIR ($WM_THIRD_PARTY_DIR)
USAGE
exit 1
}
#------------------------------------------------------------------------------
#
# add options based on script name:
#
case "$Script" in *-mpi*) withMPI=true;; esac
case "$Script" in *-python*) withPYTHON=true;; esac
case "$Script" in *-mesa*) withMESA=true;; esac
case "$Script" in *-qt*) withQTSUPPORT=true;; esac
#
# various building stages
#
runCONFIG=true
runMAKE=true
runMAKEDOC=true
runINSTALL=true
runENVPATH=true
# parse options
while [ "$#" -gt 0 ]
do
case "$1" in
-h | -help)
usage
;;
-config) # stage 1: config only
runCONFIG=true
runMAKE=false
runMAKEDOC=false
runINSTALL=false
shift
;;
-make) # stage 2: make only
runCONFIG=false
runMAKE=true
runMAKEDOC=false
runINSTALL=false
shift
;;
-makedoc) # stage 3: generate html documentation
runCONFIG=false
runMAKE=false
runMAKEDOC=true
runINSTALL=false
shift
;;
-install) # stage 4: install only
runCONFIG=false
runMAKE=false
runMAKEDOC=false
runINSTALL=true
shift
;;
-envpath) # stage 5: change cmake files to use env variables
runCONFIG=false
runMAKE=false
runMAKEDOC=false
runINSTALL=false
runENVPATH=true
shift
;;
-rebuild) # shortcut for rebuilding
runCONFIG=false
runMAKE=true
runMAKEDOC=false
runINSTALL=true
shift
;;
-mpi)
withMPI=true
shift
;;
-python)
withPYTHON=true
shift
;;
-mesa)
withMESA=true
shift
;;
-qt)
withQTSUPPORT=true
shift
;;
-qmake)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
export QMAKE_PATH=$2
shift 2
;;
-verbose)
withVERBOSE=true
shift
;;
-version)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
export ParaView_VERSION=$2
shift 2
;;
*)
usage "unknown option/argument: '$*'"
;;
esac
done
# Set configure options
#~~~~~~~~~~~~~~~~~~~~~~
addVerbosity # verbose makefiles
addMpiSupport # set MPI-specific options
addPythonSupport # set Python-specific options
addMesaSupport # set MESA-specific options
addQtSupport # add extra Qt support
getPaths # discover where things are or should be put
# Build and install
# ~~~~~~~~~~~~~~~~~
[ $runCONFIG = true ] && configParaView
[ $runMAKE = true ] && makeParaView
[ $runMAKEDOC = true ] && makeDocs
[ $runINSTALL = true ] && installParaView
[ $runENVPATH = true ] && fixCMakeFiles
echo "done"
#------------------------------------------------------------------------------

View File

@ -1 +0,0 @@
buildParaView

View File

@ -31,7 +31,8 @@
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if [ $# -ne 0 ]; then if [ $# -ne 0 ]
then
echo "Usage : ${0##*/}" echo "Usage : ${0##*/}"
echo "" echo ""
echo "Build the tags files for all the .C and .H files" echo "Build the tags files for all the .C and .H files"
@ -39,9 +40,20 @@ if [ $# -ne 0 ]; then
exit 1 exit 1
fi fi
cd $WM_PROJECT_DIR
for cmd in etags ectags
do
type $cmd >/dev/null 2>&1 || {
echo "${0##*/} cannot build tag files: '$cmd' command not found"
exit
}
done
cd $WM_PROJECT_DIR || exit
mkdir .tags 2>/dev/null mkdir .tags 2>/dev/null
etagsCmd="etags --declarations -l c++ -o .tags/etags -" etagsCmd="etags --declarations -l c++ -o .tags/etags -"
#etagsDefCmd="etags -l c++ -o .tags/etagsDef -" #etagsDefCmd="etags -l c++ -o .tags/etagsDef -"
#etagsDecCmd="etags --declarations -l c++ -o .tags/etagsDec -" #etagsDecCmd="etags --declarations -l c++ -o .tags/etagsDec -"

View File

@ -1,50 +0,0 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# AllwcleanThirdParty
#
# Description
# Distribution clean script for ThirdParty
#
# Still somewhat incomplete
#------------------------------------------------------------------------------
[ -d "$WM_THIRD_PARTY_DIR" ] || {
echo "no \$WM_THIRD_PARTY_DIR=$WM_THIRD_PARTY_DIR"
exit 1
}
cd $WM_THIRD_PARTY_DIR || exit 1 # run from third-party directory
set -x
rm -rf gcc-4.3.3/build
rm -rf gmp-4.2.4/build
rm -rf mpfr-2.4.1/build
( cd metis-5.0pre2 && make distclean )
( cd openmpi-1.3.3 && make distclean )
( cd paraview-3.6.1 && make distclean )
# ----------------------------------------------------------------- end-of-file

View File

@ -1,70 +0,0 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2007 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 2 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, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# AllwmakeLibccmio
#
# Description
# Get and build CD-adapco's ccmio library
#
#------------------------------------------------------------------------------
packageDir=libccmio-2.6.1
[ -d "$WM_THIRD_PARTY_DIR" ] || {
echo "no \$WM_THIRD_PARTY_DIR=$WM_THIRD_PARTY_DIR"
exit 1
}
cd $WM_THIRD_PARTY_DIR || exit 1 # run from third-party directory
set -x
if [ ! -d ${packageDir} ]
then
if [ ! -e ${packageDir}.tar.gz ]
then
wget --no-check-certificate \
https://wci.llnl.gov/codes/visit/3rd_party/${packageDir}.tar.gz
fi
if [ -e ${packageDir}.tar.gz ]
then
tar -xzf ${packageDir}.tar.gz
else
echo "no ${packageDir}.tar.gz to unpack"
fi
fi
if [ -d ${packageDir} -a ! -d ${packageDir}/Make ]
then
cp -r wmakeFiles/libccmio ${packageDir}/Make
fi
if [ -d ${packageDir}/Make ]
then
wmake libso ${packageDir}
fi
# ----------------------------------------------------------------- end-of-file

View File

@ -1,194 +0,0 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# AllwmakeThirdParty
#
# Description
# Build script for ThirdParty sources
#
#------------------------------------------------------------------------------
[ -d "$WM_THIRD_PARTY_DIR" ] || {
echo "no \$WM_THIRD_PARTY_DIR=$WM_THIRD_PARTY_DIR"
exit 1
}
cd $WM_THIRD_PARTY_DIR || exit 1 # run from third-party directory
set -x
# export WM settings in a form that GNU configure recognizes
[ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
[ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS"
[ -n "$WM_CXXFLAGS" ] && export CXXFLAGS="$WM_CXXFLAGS"
[ -n "$WM_LDFLAGS" ] && export LDFLAGS="$WM_LDFLAGS"
wmake libso zlib-1.2.3
( cd malloc && ./Allwmake )
#
# compile specific mpi libraries
#
case "$WM_MPLIB" in
OPENMPI)
if [ -r $MPI_ARCH_PATH/lib/libmpi.so ]
then
echo "have $WM_MPLIB shared library"
elif [ -r $MPI_ARCH_PATH/lib/libmpi.a ]
then
echo "have $WM_MPLIB static library"
else
(
cd $MPI_HOME || exit
make distclean
rm -rf $MPI_ARCH_PATH
unset mpiWith
# as of version 1.3, enable GridEngine
if [ -n "$SGE_ROOT" ]
then
mpiWith="$mpiWith --with-sge"
fi
# Infiniband support
# if [ -d /usr/local/ofed -a -d /usr/local/ofed/lib64 ]
# then
# mpiWith="$mpiWith --with-openib=/usr/local/ofed"
# mpiWith="$mpiWith --with-openib-libdir=/usr/local/ofed/lib64"
# fi
./configure \
--prefix=$MPI_ARCH_PATH \
--disable-mpirun-prefix-by-default \
--disable-orterun-prefix-by-default \
--enable-shared --disable-static \
--disable-mpi-f77 --disable-mpi-f90 --disable-mpi-cxx \
--disable-mpi-profile \
$mpiWith \
;
make
make install
make distclean
)
fi
;;
MPICH)
if [ -r $MPI_ARCH_PATH/lib/libmpich.so ]
then
echo "have $WM_MPLIB shared library"
elif [ -r $MPI_ARCH_PATH/lib/libmpich.a ]
then
echo "have $WM_MPLIB static library"
else
(
cd $MPI_HOME || exit
make distclean
rm -rf $MPI_ARCH_PATH
rm util/machines/machines.*
./configure \
--without-mpe \
--disable-f77 \
--disable-f90 \
--disable-f90modules \
--disable-c++ \
--disable-mpedbg \
--disable-devdebug \
--disable-debug \
--enable-sharedlib=$MPI_ARCH_PATH/lib \
--with-device=ch_p4 \
-prefix=$MPI_ARCH_PATH
make
make install
make distclean
if [ -r $MPI_ARCH_PATH ]
then
cd $MPI_ARCH_PATH/bin
for file in *
do
sed s%$MPI_ARCH_PATH%'$MPI_ARCH_PATH'%g $file > temp.$$
mv temp.$$ $file
chmod 0755 $file
done
cd $MPI_ARCH_PATH/lib
if [ -r libmpich.so.1.0 ]
then
rm *.so
ln -s libmpich.so.1.0 libmpich.so
fi
fi
)
fi
;;
esac
# Build Scotch decomposition
(
cd scotch_5.1 || exit
wmake libso src/libscotch
wmake libso src/libscotchmetis
)
# Build Metis decomposition
(
cd metis-5.0pre2 || exit
wmake libso GKlib
wmake libso libmetis
)
# Build parMetis. Requires MPI!
if [ -d "$MPI_ARCH_PATH" ]
then
(
cd ParMetis-3.1 || exit
wmake libso METISLib
wmake libso ParMETISLib
)
fi
# Build ParMGridGen
wmake libso ParMGridGen-1.0/MGridGen/IMlib
wmake libso ParMGridGen-1.0/MGridGen/Lib
set +x
echo
echo ==============================
echo done ThirdParty Allwmake
echo ==============================
echo
# ----------------------------------------------------------------- end-of-file

View File

@ -1,445 +0,0 @@
#---------------------------------*- sh -*-------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# buildParaViewFunctions
#
# Description
# ParaView build/install helper functions
#
#------------------------------------------------------------------------------
# ParaView_INST_DIR : location of the original sources
# ParaView_DIR : location of the build (for the ParaViewConfig.cmake)
# and the installed program
#
# set CMake cache variables
#
addCMakeVariable()
{
while [ -n "$1" ]
do
CMAKE_VARIABLES="$CMAKE_VARIABLES -D$1"
shift
done
}
#
# verbose makefiles
#
addVerbosity()
{
[ "$withVERBOSE" = true ] && addCMakeVariable CMAKE_VERBOSE_MAKEFILE=TRUE
}
#
# define options for mpi support
#
addMpiSupport()
{
[ "${withMPI:=false}" = true ] || return
OBJ_ADD="$OBJ_ADD-mpi"
addCMakeVariable PARAVIEW_USE_MPI=ON VTK_USE_MPI=ON
addCMakeVariable MPI_INCLUDE_PATH=$MPI_ARCH_PATH/include
addCMakeVariable MPI_LIBRARY=$MPI_ARCH_PATH/lib/libmpi.so
addCMakeVariable VTK_MPIRUN_EXE=$MPI_ARCH_PATH/bin/mpirun
addCMakeVariable VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS
}
#
# define options for python support
#
addPythonSupport()
{
[ "${withPYTHON:=false}" = true ] || return
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
if [ ! -e "$PYTHON_LIBRARY" ]
then
echo "*** Error: libpython not found at location specified " \
"by PYTHON_LIBRARY=$PYTHON_LIBRARY"
fi
else
# Try to get $PYTHON_LIBRARY from dynamically linked binary
PYTHON_LIBRARY=$(ldd $pythonBin | \
sed -ne '/libpython/s/.* => \(.*\) (.*/\1/p')
if [ ! -e "$PYTHON_LIBRARY" ]
then
echo "*** Error: Unable to determine path to python library."
fi
fi
[ -e "$PYTHON_LIBRARY" ] || {
echo " Please set the variable PYTHON_LIBRARY to the full"
echo " path to (and including) libpython, or deactivate"
echo " python support by setting withPYTHON=false"
exit 1
}
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" ] || {
echo " No python headers found in $pythonInclude/"
echo " Please install python headers or deactivate "
echo " python support by setting withPYTHON=false"
exit 1
}
addCMakeVariable PARAVIEW_ENABLE_PYTHON=ON
addCMakeVariable PYTHON_INCLUDE_PATH=$pythonInclude
addCMakeVariable PYTHON_LIBRARY=$PYTHON_LIBRARY
echo "----"
echo "Python information:"
echo " executable : $pythonBin"
echo " version : $pythonMajor"
echo " include path : $pythonInclude"
echo " library : $PYTHON_LIBRARY"
unset pythonBin pythonInclude pythonMajor
else
echo "*** Error: python not found"
echo "*** Deactivate python support by setting withPYTHON=false"
exit 1
fi
}
#
# define options for mesa support
#
addMesaSupport()
{
[ "${withMESA:=false}" = true ] || return
if [ -d "$MESA_INCLUDE" -a -f "$MESA_LIBRARY" ]
then
OBJ_ADD="$OBJ_ADD-mesa"
addCMakeVariable VTK_OPENGL_HAS_OSMESA=ON
addCMakeVariable OSMESA_INCLUDE_DIR=$MESA_INCLUDE
addCMakeVariable OSMESA_LIBRARY=$MESA_LIBRARY
else
echo "*** Error: no MESA information found"
echo "*** Deactivate MESA support by setting withMESA=false, or"
echo "*** correct the paths given by:"
echo "*** - MESA_INCLUDE ($MESA_INCLUDE)"
echo "*** - MESA_LIBRARY ($MESA_LIBRARY)"
exit 1
fi
}
addQtSupport()
{
[ "${withQTSUPPORT:=false}" = true ] || return
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON"
qmakeExe=qmake
if [ -n "$QMAKE_PATH" ]
then
if [ -x "$QMAKE_PATH" ]
then
qmakeExe=$QMAKE_PATH
addCMakeVariable QT_QMAKE_EXECUTABLE:FILEPATH=$QMAKE_PATH
else
echo
echo "specified QMAKE_PATH does not exist on this machine"
echo " QMAKE_PATH=$QMAKE_PATH"
echo "leaving unspecified"
echo
fi
fi
# Check qmake can be found
if [ `which $qmakeExe` ]
then
# Check the Qt version selected
QtVersion=`$qmakeExe -v | grep Using | sed "s/.* version \(.\..\).*/\1/"`
QtMajor=`echo $QtVersion | sed "s/\(.\)\../\1/"`
QtMinor=`echo $QtVersion | sed "s/.\.\(.\)/\1/"`
if [ $QtMajor -lt 4 -o $QtMinor -lt 3 ]
then
echo "*** Error: Qt version provided < 4.3"
echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.3 "
echo "*** e.g."
echo "*** -qmake /usr/local/Trolltech/Qt-4.3.5/bin/qmake"
echo "*** -qmake $WM_THIRD_PARTY_DIR/qt-x11-opensource-src-4.3.5/platforms/$WM_OPTIONS/bin/qmake"
exit 1
fi
else
echo "*** Error: cannot find qmake either at \$QMAKE_PATH or in current \$PATH"
exit 1
fi
}
#
# discover where things are or should be put
#
getPaths()
{
# set paraview environment
for i in $PWD $WM_THIRD_PARTY_DIR
do
ParaView_INST_DIR=$i/paraview-$ParaView_VERSION
[ -d $ParaView_INST_DIR ] && break
done
if [ ! -d "$ParaView_INST_DIR" ]
then
# last chance: maybe already in the paraview directory
if [ "${PWD##*/}" = "paraview-$ParaView_VERSION" ]
then
ParaView_INST_DIR=$PWD
fi
[ -d "$ParaView_INST_DIR" ] || {
echo "did not find paraview-$ParaView_VERSION in these directories:"
echo " PWD=$PWD"
echo " WM_THIRD_PARTY_DIR=$WM_THIRD_PARTY_DIR"
echo
echo "abort build"
exit 1
}
fi
# set the major version "<digits>.<digits>"
ParaView_MAJOR_VERSION=$(echo $ParaView_VERSION | \
sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/')
# ParaView_DIR=$ParaView_INST_DIR/platforms/$WM_ARCH$WM_COMPILER$OBJ_ADD
ParaView_DIR=$ParaView_INST_DIR/platforms/$WM_ARCH$WM_COMPILER
echo "ParaView_DIR=$ParaView_DIR"
}
#
# configure via cmake, but don't actually build anything
#
configParaView()
{
# remove any existing build folder and recreate
if [ -d $ParaView_DIR ]
then
echo "removing old build/install directory"
rm -rf $ParaView_DIR
fi
mkdir -p $ParaView_DIR
cd $ParaView_DIR
echo "----"
echo "Configuring paraview-$ParaView_VERSION (major version: $ParaView_MAJOR_VERSION)"
echo " MPI support : ${withMPI:-false}"
echo " Python support : ${withPYTHON:-false}"
echo " MESA support : ${withMESA:-false}"
echo " Qt dev support : ${withQTSUPPORT:-false}"
echo " Source : $ParaView_INST_DIR"
echo " Target : $ParaView_DIR"
echo "----"
echo
echo cmake \
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
$CMAKE_VARIABLES \
../..
echo
echo "----"
echo
# run cmake to create Makefiles
cmake \
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
$CMAKE_VARIABLES \
../..
}
#
# invoke make
# also link bin/ to lib/paraview-* for development without installation
#
makeParaView()
{
cd $ParaView_DIR || exit 1 # change to build folder
echo " Starting make"
if [ -r /proc/cpuinfo ]
then
WM_NCOMPPROCS=$(egrep "^processor" /proc/cpuinfo | wc -l)
[ $WM_NCOMPPROCS -le 8 ] || WM_NCOMPPROCS=8
time make -j $WM_NCOMPPROCS
else
time make
fi
echo " Done make"
echo " For quicker development, linking lib/paraview-$ParaView_MAJOR_VERSION/ -> bin/"
rm -rf lib/paraview-$ParaView_MAJOR_VERSION
mkdir lib 2>/dev/null
( cd lib && ln -s ../bin paraview-$ParaView_MAJOR_VERSION )
}
#
# adjust hard-links (internal function)
# Note: use loop with grep to avoid touching too many files
#
fixHardLinks()
{
envName=$1
string=$2
shift 2
echo "-- Replacing path hard links for \$$envName"
for fileSpec
do
echo -n " $fileSpec: "
for i in $(find . -type f -iname "$fileSpec")
do
if grep -q "$string" $i
then
echo -n "#"
sed -i "s,$string,\$ENV{$envName},g" $i
fi
done
echo
done
}
#
# replace absolute paths with environment variables
# This triggers a partial (or even a full) rebuild, but might let us
# find our files later if we relocate the build
#
fixCMakeFiles()
{
cd $ParaView_DIR || exit 1 # change to build folder
# Replace path with env variable: ParaView_DIR
fixHardLinks ParaView_DIR "$ParaView_DIR" '*.cmake'
# Replace path with env variable: ParaView_INST_DIR
fixHardLinks ParaView_INST_DIR "$ParaView_INST_DIR" '*.cmake'
# Replace path with env variable: MPI_ARCH_PATH
if [ "${withMPI:=false}" = true ]
then
fixHardLinks MPI_ARCH_PATH "$MPI_ARCH_PATH" '*.cmake'
fi
# Replace path with env variable: CMAKE_HOME
if [ -r "$CMAKE_HOME" ]
then
fixHardLinks CMAKE_HOME "$CMAKE_HOME" '*cmake*'
fi
# Replace path with env variable: WM_COMPILER_DIR
# (include cmake.check_cache)
# This triggers a complete rebuild (with cmake-2.6.2), but is likely
# needed when redistributing files
fixHardLinks WM_COMPILER_DIR "$WM_COMPILER_DIR" '*cmake*'
}
#
# make html documentation (mostly just for the readers/writers)
#
makeDocs()
{
cd $ParaView_DIR || exit 1 # change to build folder
echo " Creating html documentation"
make HTMLDocumentation
}
#
# actually install the program
#
installParaView()
{
cd $ParaView_DIR || exit 1 # change to build folder
echo " Installing ParaView to $ParaView_DIR"
echo "disabled 'make install' for now, just use links"
# about.txt may be missing
paraviewLibDir="$ParaView_DIR/lib/paraview-$ParaView_MAJOR_VERSION"
if [ -d "$paraviewLibDir" -a ! -e "$paraviewLibDir/about.txt" ]
then
echo "paraview-$ParaView_MAJOR_VERSION installed - $(date)" > $paraviewLibDir/about.txt
fi
cat<< INFO
---
Installation complete
Set environment variables:
export ParaView_INST_DIR=$ParaView_INST_DIR
export ParaView_DIR=$ParaView_DIR
export PV_PLUGIN_PATH=$FOAM_LIBBIN
export PATH=\$ParaView_DIR/bin:\$PATH
---
INFO
}
# clear all the variables used before using any of the functions
unset withMPI withQTSUPPORT withVERBOSE
unset withMESA MESA_INCLUDE MESA_LIBRARY
unset withPYTHON PYTHON_INCLUDE PYTHON_LIBRARY
unset CMAKE_VARIABLES
unset OBJ_ADD
# start with these general settings
addCMakeVariable VTK_USE_TK=FALSE
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
# ----------------------------------------------------------------- end-of-file

View File

@ -1,142 +0,0 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# makeGcc
#
# Description
# Build script for gmp, mpfr and gcc-4.3.? and gcc-4.4.?
#
#------------------------------------------------------------------------------
gmpVERSION=gmp-4.2.4
mpfrVERSION=mpfr-2.4.1
gccVERSION="$1"
usage() {
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
usage: ${0##*/} <gcc-4.?.?> ...
* build gmp, mpfr and gcc-4.3.? and gcc-4.4.?
USAGE
exit 1
}
[ "$#" -eq 1 ] || usage "gcc version not provided"
#
# Set the number of cores to build on
#
WM_NCOMPPROCS=1
if [ -r /proc/cpuinfo ]
then
WM_NCOMPPROCS=$(egrep "^processor" /proc/cpuinfo | wc -l)
[ $WM_NCOMPPROCS -le 8 ] || WM_NCOMPPROCS=8
fi
echo "Building on " $WM_NCOMPPROCS " cores"
GCC_DIR=$WM_THIRD_PARTY_DIR/$gccVERSION
GMP_DIR=$WM_THIRD_PARTY_DIR/$gmpVERSION
MPFR_DIR=$WM_THIRD_PARTY_DIR/$mpfrVERSION
GCCROOT=${GCC_DIR}/platforms/$WM_ARCH$WM_COMPILER_ARCH
GMPROOT=${GMP_DIR}/platforms/$WM_ARCH$WM_COMPILER_ARCH
MPFRROOT=${MPFR_DIR}/platforms/$WM_ARCH$WM_COMPILER_ARCH
#
# Bulid GMP
#
if [ ! -d $GMPROOT ]
then
(
cd $GMP_DIR \
&& make distclean \
&& mkdir $GMP_DIR/build \
&& cd $GMP_DIR/build \
&& ../configure ABI=$ABI --prefix=$GMPROOT \
&& make -j $WM_NCOMPPROCS \
&& make install
echo " Finished building gmp."
)
else
echo " gmp already built."
fi
export LD_LIBRARY_PATH="$GMPROOT/lib:$LD_LIBRARY_PATH"
#
# Build MPFR
#
if [ ! -d $MPFRROOT ]
then
(
cd $MPFR_DIR \
&& make distclean \
&& mkdir $MPFR_DIR/build \
&& cd $MPFR_DIR/build \
&& ../configure ABI=$ABI --prefix=$MPFRROOT --with-gmp=$GMPROOT \
&& make -j $WM_NCOMPPROCS \
&& make install
echo " Finished building mpfr."
)
else
echo " mprf already built."
fi
export LD_LIBRARY_PATH="$MPFRROOT/lib:$LD_LIBRARY_PATH"
#
# Build GCC
#
if [ ! -d $GCCROOT ]
then
(
cd $GCC_DIR \
&& make distclean \
&& mkdir $GCC_DIR/build \
&& cd $GCC_DIR/build \
&& ../configure --enable-languages=c,c++ --with-pkgversion='OpenFOAM' \
--enable-__cxa_atexit --enable-libstdcxx-allocator=new \
--with-system-zlib --prefix=$GCCROOT \
--with-mpfr=$MPFRROOT --with-gmp=$GMPROOT \
&& make -j $WM_NCOMPPROCS \
&& make install
echo " Finished building gcc."
)
else
echo " gcc already built."
fi
# ----------------------------------------------------------------- end-of-file

View File

@ -1,73 +0,0 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# makeQT
#
# Description
# Build script for Qt-4.3.5
#
#------------------------------------------------------------------------------
QT_VERSION=4.3.5
QT_HOME=${WM_THIRD_PARTY_DIR}/qt-x11-opensource-src-${QT_VERSION}
QT_ARCH_PATH=${QT_HOME}/platforms/${WM_OPTIONS}
if [ ! -d $QT_ARCH_PATH ]
then
cd $QT_HOME || {
echo "no Qt sources found"
exit 1
}
make distclean
rm -rf $QT_ARCH_PATH
./configure \
--prefix=$QT_ARCH_PATH \
-nomake demos \
-nomake examples
if [ -r /proc/cpuinfo ]
then
WM_NCOMPPROCS=$(egrep "^processor" /proc/cpuinfo | wc -l)
[ $WM_NCOMPPROCS -le 8 ] || WM_NCOMPPROCS=8
echo "Building on " $WM_NCOMPPROCS " cores"
time make -j $WM_NCOMPPROCS
else
time make
fi
make install
echo " Finished building Qt-$QT_VERSION"
else
echo " Qt-$QT_VERSION already built."
fi
# ----------------------------------------------------------------- end-of-file

View File

@ -1,78 +0,0 @@
#---------------------------------*- sh -*-------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# thirdPartyGetFunctions
#
# Description
# Functions for managing the third-party packages
#
#------------------------------------------------------------------------------
#
# get, unpack and change to third party directory
# - call from within a sub-shell, since it uses 'cd'
#
getUnpack() {
[ "$#" -eq 1 ] || {
echo "getUnpack called with incorrect arguments $@"
return 1
}
d=$(foamThirdParty -dir $1 2>/dev/null) || {
echo "nothing know about '$1'"
return 1
}
foamThirdParty -get -unpack $1 && [ -d "$d" ] || return 1
[ -d "$d" ] && chmod -R ugo+rX $d 2>/dev/null
echo $d
}
#
# copy Make/{files,options} from wmakeFiles/PACKAGE
#
cpMakeFiles() {
[ "$#" -eq 2 ] || {
echo "cpMakeFiles called with incorrect arguments $@"
return 1
}
pkg=$1
dst=$2
for i in $(cd wmakeFiles/$pkg && find . -type f)
do
d=$(dirname $i)
b=$(basename $i)
mkdir -p $dst/$d/Make 2>/dev/null
[ -e $dst/$d/Make/$b ] || cp wmakeFiles/$pkg/$i $dst/$d/Make/$b
done
}
# ----------------------------------------------------------------- end-of-file

View File

@ -1,35 +0,0 @@
# A brief listing of some third party sources
# --------------------------------------------------------------------------
# compiler
gcc http://gcc.gnu.org/gcc-4.3/
mpfr http://www.mpfr.org/
gmp http://gmplib.org/
# --------------------------------------------------------------------------
# Parallel processing
openmpi http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.3.tar.bz2
metis http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.0pre2.tar.gz
ParMetis http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/ParMetis-3.1.tar.gz
ParMGridGen http://www-users.cs.umn.edu/~moulitsa/download/ParMGridGen-1.0.tar.gz
mpich ftp://ftp.mcs.anl.gov/pub/mpi/old/mpich-1.2.4.tar.gz
scotch http://gforge.inria.fr/frs/download.php/22247/scotch_5.1.6.tar.gz
# --------------------------------------------------------------------------
# Allocation
hoard http://www.cs.umass.edu/%7Eemery/hoard/hoard-3.7.1/hoard-371.tar.gz
-> Note: the code needs minor patching
fbsdmalloc http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/lib/libc/stdlib/malloc.c?rev=1.171
# --------------------------------------------------------------------------
# Misc
cmake http://www.cmake.org/files/v2.6/cmake-2.6.4.tar.gz#
paraview http://www.paraview.org/files/v3.6/paraview-3.6.1.tar.gz
libccmio https://wci.llnl.gov/codes/visit/3rd_party/libccmio-2.6.1.tar.gz
zlib http://www.zlib.net/zlib-1.2.3.tar.gz
# --------------------------------------------------------------------------