mirror of
https://develop.openfoam.com/Development/ThirdParty-common.git
synced 2025-12-08 06:57:50 +00:00
Merge branch 'develop' into 'master'
Merge develop into master for v1706 release Closes #16 and #15 See merge request !4
This commit is contained in:
39
Allclean
39
Allclean
@ -4,7 +4,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -26,26 +26,24 @@
|
||||
# Allclean
|
||||
#
|
||||
# Description
|
||||
# Clean script for third-party applications and libraries
|
||||
# Clean script for ThirdParty applications and libraries
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
# . etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
Script=${0##*/}
|
||||
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
Usage: $Script [OPTION] [<platform> [ ... <platformN> ]]
|
||||
Usage: ${0##*/} [OPTION] [<platform> [ ... <platformN> ]]
|
||||
options:
|
||||
-all remove all platforms directories.
|
||||
-current clean the current platform ($WM_OPTIONS).
|
||||
@ -60,14 +58,18 @@ USAGE
|
||||
}
|
||||
|
||||
# Print help message
|
||||
if [ "$1" = "-h" -o "$1" = "-help" ]; then
|
||||
if [ "$1" = "-h" -o "$1" = "-help" ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Clean various packages via 'distclean'
|
||||
for i in openmpi-* ADIOS-* metis-*
|
||||
for i in \
|
||||
openmpi-* metis-* adios-* ADIOS-* gperftools-* qt-* \
|
||||
gmp-* mpfr-* mpc-* gcc-* llvm-* \
|
||||
;
|
||||
do
|
||||
[ -d "$i" ] && (
|
||||
echo
|
||||
@ -105,12 +107,6 @@ fi
|
||||
#
|
||||
# Clean platforms directories
|
||||
#
|
||||
if [ "$#" -ge 1 ]
|
||||
then
|
||||
echo
|
||||
echo "Clean platforms/sub-directories"
|
||||
fi
|
||||
|
||||
removePlatform()
|
||||
{
|
||||
local platform="$1"
|
||||
@ -125,6 +121,11 @@ removePlatform()
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$#" -ge 1 ]
|
||||
then
|
||||
echo
|
||||
echo "Clean platforms/sub-directories"
|
||||
fi
|
||||
|
||||
# Optionally cleanup platforms specified from the arguments
|
||||
while [ "$#" -ge 1 ]
|
||||
|
||||
261
Allwmake
261
Allwmake
@ -4,7 +4,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -28,29 +28,30 @@
|
||||
# Description
|
||||
# Build script for ThirdParty
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
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."
|
||||
echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set for ThirdParty"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
# Export WM settings in a form that GNU configure recognizes
|
||||
# Compiler/linker settings for CMake/configure
|
||||
[ -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"
|
||||
|
||||
useGccFlag $@ # Scan arguments for a '-gcc' option
|
||||
|
||||
warnBuildIssues()
|
||||
{
|
||||
@ -74,139 +75,19 @@ echo
|
||||
echo ========================================
|
||||
echo Start ThirdParty Allwmake
|
||||
echo ========================================
|
||||
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo Build MPI libraries if required
|
||||
echo " $MPI_ARCH_PATH"
|
||||
case "$WM_MPLIB" in
|
||||
OPENMPI)
|
||||
if [ -r $MPI_ARCH_PATH/lib${WM_COMPILER_LIB_ARCH}/libmpi.so ]
|
||||
then
|
||||
echo " have $WM_MPLIB shared library ($FOAM_MPI)"
|
||||
echo
|
||||
elif [ -r $MPI_ARCH_PATH/lib${WM_COMPILER_LIB_ARCH}/libmpi.a ]
|
||||
then
|
||||
echo " have $WM_MPLIB static library ($FOAM_MPI)"
|
||||
echo
|
||||
else
|
||||
(
|
||||
# configuration options:
|
||||
# Start with GridEngine support - builds without external libraries
|
||||
configOpt="--with-sge"
|
||||
|
||||
# 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
|
||||
|
||||
# end of configuration options
|
||||
# ----------------------------
|
||||
mpiPACKAGE="${MPI_ARCH_PATH##*/}"
|
||||
sourceDIR=$sourceBASE/$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 \
|
||||
--libdir=$MPI_ARCH_PATH/lib${WM_COMPILER_LIB_ARCH} \
|
||||
--enable-mpi-fortran=none \
|
||||
--disable-mpi-profile \
|
||||
$configOpt \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $mpiPACKAGE"
|
||||
) || {
|
||||
echo "Error building: $mpiPACKAGE"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
(OPENMPI | MPICH)
|
||||
./make$WM_MPLIB -test "$MPI_ARCH_PATH" || ./make$WM_MPLIB
|
||||
;;
|
||||
|
||||
MPICH)
|
||||
if [ -r $MPI_ARCH_PATH/lib/libmpich.so ]
|
||||
then
|
||||
echo " have $WM_MPLIB shared library ($FOAM_MPI)"
|
||||
echo
|
||||
elif [ -r $MPI_ARCH_PATH/lib/libmpich.a ]
|
||||
then
|
||||
echo " have $WM_MPLIB static library ($FOAM_MPI)"
|
||||
echo
|
||||
else
|
||||
(
|
||||
# WARNING: unmaintained build code:
|
||||
# ---------------------------------
|
||||
mpiPACKAGE="${MPI_ARCH_PATH##*/}"
|
||||
sourceDIR=$sourceBASE/$mpiPACKAGE
|
||||
cd $sourceDIR || exit 1
|
||||
|
||||
set -x
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
rm -rf $MPI_ARCH_PATH
|
||||
rm -rf util/machines/machines.*
|
||||
|
||||
./configure \
|
||||
--prefix=$MPI_ARCH_PATH \
|
||||
--without-mpe \
|
||||
--disable-f77 \
|
||||
--disable-f90 \
|
||||
--disable-f90modules \
|
||||
--disable-mpedbg \
|
||||
--disable-devdebug \
|
||||
--disable-debug \
|
||||
--enable-sharedlib=$MPI_ARCH_PATH/lib \
|
||||
--with-device=ch_p4 \
|
||||
;
|
||||
|
||||
# For MPICH2 below 1.5a1 uncomment this line and comment next
|
||||
# make && make install
|
||||
|
||||
# For MPICH2 1.5a1 or above
|
||||
make -j $WM_NCOMPPROCS && 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
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Building scotch is still a bit of a pain
|
||||
# Building scotch on different platforms is still a bit of a pain
|
||||
|
||||
# Get SCOTCH_VERSION, SCOTCH_ARCH_PATH
|
||||
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch)
|
||||
@ -225,7 +106,7 @@ echo " $SCOTCH_ARCH_PATH"
|
||||
|
||||
SCOTCH_SOURCE_DIR=$sourceBASE/$SCOTCH_VERSION
|
||||
|
||||
# This needs generalizing, but works fairly well
|
||||
# Needs generalizing, but works fairly well
|
||||
scotchMakefile=../../etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM
|
||||
|
||||
if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \
|
||||
@ -238,53 +119,55 @@ elif [ -d "$SCOTCH_SOURCE_DIR" ]
|
||||
then
|
||||
(
|
||||
cd $SCOTCH_SOURCE_DIR/src || exit 1
|
||||
export GIT_DIR=$SCOTCH_SOURCE_DIR/.git # Mask seeing our own git-repo
|
||||
rm -rf $SCOTCH_ARCH_PATH
|
||||
|
||||
applyPatch $SCOTCH_VERSION .. # patch at parent-level
|
||||
|
||||
prefixDIR=$SCOTCH_ARCH_PATH
|
||||
incDIR=$SCOTCH_ARCH_PATH/include
|
||||
libDIR=$FOAM_EXT_LIBBIN
|
||||
|
||||
mkdir -p $prefixDIR 2>/dev/null
|
||||
mkdir -p $libDIR 2>/dev/null
|
||||
|
||||
configOpt="prefix=$prefixDIR libdir=$libDIR"
|
||||
mkdir -p $incDIR 2>/dev/null
|
||||
mkdir -p $libDIR 2>/dev/null
|
||||
|
||||
if [ -f $scotchMakefile ]
|
||||
then
|
||||
rm -f Makefile.inc
|
||||
ln -s $scotchMakefile Makefile.inc
|
||||
fi
|
||||
|
||||
[ -f Makefile.inc ] || {
|
||||
echo " Error: scotch needs an appropriate Makefile.inc"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# handle non-gcc compilers
|
||||
unset configEnv
|
||||
[ "${WM_CC:-gcc}" != gcc ] && configEnv="CC=$WM_CC CCS=$WM_CC"
|
||||
export CCS="${CC:-$WM_CC}" # CCS (serial compiler) default=$(CC)
|
||||
export CCP=$(whichMpicc) # CCP (parallel compiler) default=mpicc
|
||||
|
||||
make realclean 2>/dev/null # for safety
|
||||
make realclean 2>/dev/null # Extra safety
|
||||
make -j $WM_NCOMPPROCS scotch \
|
||||
&& make \
|
||||
prefix=$prefixDIR \
|
||||
includedir=$incDIR \
|
||||
libdir=$libDIR \
|
||||
install
|
||||
|
||||
make -j $WM_NCOMPPROCS $configEnv scotch \
|
||||
&& make $configOpt install
|
||||
|
||||
# cleanup, could also remove Makefile.inc
|
||||
make realclean 2>/dev/null
|
||||
make realclean 2>/dev/null || true # Failed cleanup is uncritical
|
||||
) || warnBuildIssues SCOTCH
|
||||
else
|
||||
warnNotFound SCOTCH
|
||||
fi
|
||||
|
||||
# Build ptscotch if MPI (ThirdParty or system) is available
|
||||
# and normal scotch was build (has include and library)
|
||||
# and normal scotch was built (has include and library)
|
||||
if [ "${FOAM_MPI:-dummy}" != dummy ] && \
|
||||
[ -f $SCOTCH_ARCH_PATH/include/scotch.h \
|
||||
-a -r $FOAM_EXT_LIBBIN/libscotch.so ] || \
|
||||
{
|
||||
# Report that the above tests failed and pass-through the failure
|
||||
echo
|
||||
echo " WARNING: skipping pt-scotch - 'scotch.h' include file not found!"
|
||||
echo " WARNING: skipping pt-scotch - no mpi or <scotch.h> not found"
|
||||
false
|
||||
}
|
||||
then
|
||||
@ -302,6 +185,7 @@ then
|
||||
else
|
||||
(
|
||||
cd $SCOTCH_SOURCE_DIR/src || exit 1
|
||||
export GIT_DIR=$SCOTCH_SOURCE_DIR/.git # Mask seeing our own git-repo
|
||||
echo
|
||||
|
||||
prefixDIR=$SCOTCH_ARCH_PATH
|
||||
@ -309,42 +193,43 @@ then
|
||||
libDIR=$FOAM_EXT_LIBBIN/$FOAM_MPI
|
||||
|
||||
mkdir -p $prefixDIR 2>/dev/null
|
||||
mkdir -p $libDIR 2>/dev/null
|
||||
|
||||
configOpt="prefix=$prefixDIR includedir=$incDIR libdir=$libDIR"
|
||||
mkdir -p $incDIR 2>/dev/null
|
||||
mkdir -p $libDIR 2>/dev/null
|
||||
|
||||
if [ -f $scotchMakefile ]
|
||||
then
|
||||
rm -f Makefile.inc
|
||||
ln -s $scotchMakefile Makefile.inc
|
||||
fi
|
||||
|
||||
[ -f Makefile.inc ] || {
|
||||
echo " Error: scotch needs an appropriate Makefile.inc"
|
||||
echo " Error: ptscotch needs an appropriate Makefile.inc"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# handle non-gcc compilers
|
||||
unset configEnv
|
||||
[ "${WM_CC:-gcc}" != gcc ] && configEnv="CC=$WM_CC CCS=$WM_CC"
|
||||
export CCS="${CC:-$WM_CC}" # CCS (serial compiler) default=$(CC)
|
||||
export CCP=$(whichMpicc) # CCP (parallel compiler) default=mpicc
|
||||
|
||||
make realclean 2>/dev/null # for safety
|
||||
make realclean 2>/dev/null # Extra safety
|
||||
make -j $WM_NCOMPPROCS ptscotch \
|
||||
&& make \
|
||||
prefix=$prefixDIR \
|
||||
includedir=$incDIR \
|
||||
libdir=$libDIR \
|
||||
install
|
||||
|
||||
make -j $WM_NCOMPPROCS $configEnv ptscotch \
|
||||
&& make $configOpt install
|
||||
|
||||
# cleanup, could also remove Makefile.inc
|
||||
make realclean 2>/dev/null
|
||||
)
|
||||
make realclean 2>/dev/null || true # Failed cleanup is uncritical
|
||||
) || warnBuildIssues PTSCOTCH
|
||||
fi
|
||||
|
||||
# verify existence of ptscotch include
|
||||
# Verify existence of ptscotch include
|
||||
[ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h ] || {
|
||||
echo
|
||||
echo " WARNING: required include file 'ptscotch.h' not found!"
|
||||
}
|
||||
fi
|
||||
|
||||
# Could now remove $SCOTCH_SOURCE_DIR/src/Makefile.inc
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -353,7 +238,7 @@ echo
|
||||
echo ========================================
|
||||
echo Build Metis decomposition
|
||||
|
||||
# get METIS_VERSION, METIS_ARCH_PATH
|
||||
# Get METIS_VERSION, METIS_ARCH_PATH
|
||||
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis)
|
||||
then
|
||||
. $settings
|
||||
@ -366,11 +251,11 @@ if [ -f $METIS_ARCH_PATH/include/metis.h \
|
||||
then
|
||||
echo " metis header in $METIS_ARCH_PATH/include"
|
||||
echo " metis libs in $FOAM_EXT_LIBBIN"
|
||||
echo
|
||||
elif [ -d "$METIS_SOURCE_DIR" ]
|
||||
then
|
||||
(
|
||||
cd $METIS_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
rm -rf $METIS_ARCH_PATH
|
||||
|
||||
# Adjust metis integer size to match OpenFOAM label-size
|
||||
@ -381,10 +266,10 @@ then
|
||||
# - build normally and use mv to relocate it
|
||||
|
||||
make config shared=1 prefix=$METIS_ARCH_PATH \
|
||||
&& make -j $WM_NCOMPPROCS install \
|
||||
&& mv $METIS_ARCH_PATH/lib/libmetis.so $FOAM_EXT_LIBBIN
|
||||
&& make -j $WM_NCOMPPROCS install \
|
||||
&& mv $METIS_ARCH_PATH/lib/libmetis.so $FOAM_EXT_LIBBIN
|
||||
|
||||
rmdir $METIS_ARCH_PATH/lib 2>/dev/null || true # failure is not critical
|
||||
rmdir $METIS_ARCH_PATH/lib 2>/dev/null || true # Failed rmdir is uncritical
|
||||
) || warnBuildIssues METIS
|
||||
else
|
||||
warnNotFound METIS
|
||||
@ -392,54 +277,28 @@ fi
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# CGAL is optional
|
||||
echo
|
||||
echo ========================================
|
||||
echo Build CGAL
|
||||
if [ -d "$CGAL_ARCH_PATH/include" \
|
||||
-a -r "$CGAL_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libCGAL.so" ]
|
||||
then
|
||||
# first some information about boost
|
||||
for root in "$BOOST_ARCH_PATH" /usr
|
||||
do
|
||||
if [ -d "$root/include/boost" \
|
||||
-a -r "$root/lib$WM_COMPILER_LIB_ARCH/libboost_system.so" ]
|
||||
then
|
||||
echo " BOOST headers in $root/include"
|
||||
echo " BOOST libs in $root/lib$WM_COMPILER_LIB_ARCH"
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo " CGAL headers in $CGAL_ARCH_PATH/include"
|
||||
echo " CGAL libs in $CGAL_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
elif [ -n "$CGAL_ARCH_PATH" ]
|
||||
if [ -n "$CGAL_ARCH_PATH" ]
|
||||
then
|
||||
./makeCGAL -test "$CGAL_ARCH_PATH" "$BOOST_ARCH_PATH" || \
|
||||
./makeCGAL || warnBuildIssues CGAL
|
||||
else
|
||||
warnNotFound CGAL
|
||||
warnNotFound CGAL # CGAL is optional
|
||||
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" ]
|
||||
if [ -n "$FFTW_ARCH_PATH" ]
|
||||
then
|
||||
./makeFFTW -test "$FFTW_ARCH_PATH" || \
|
||||
./makeFFTW || warnBuildIssues FFTW
|
||||
else
|
||||
warnNotFound FFTW
|
||||
warnNotFound FFTW # FFTW is optional
|
||||
fi
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo Done ThirdParty Allwmake
|
||||
|
||||
118
BUILD.md
118
BUILD.md
@ -3,7 +3,7 @@
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | |
|
||||
| \\ / A nd | Copyright (C) 2016 OpenCFD Ltd. |
|
||||
| \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd. |
|
||||
| \\/ M anipulation | |
|
||||
|--------------------------------------------------------------------------|
|
||||
-->
|
||||
@ -24,8 +24,8 @@ The ThirdParty directory contains a number of build scripts as well as
|
||||
some directories:
|
||||
|
||||
| Directory | Contains
|
||||
|-------------------|--------------------------------------------
|
||||
| etc/ | auxiliary scripts used for the build process
|
||||
|-------------------|-------------------------------------------------------
|
||||
| etc/ | auxiliary tools and content used for the build process
|
||||
| build/ | intermediate build objects
|
||||
| platforms/ | the installation directories
|
||||
|
||||
@ -121,6 +121,10 @@ ThirdParty components prior to building OpenFOAM itself.
|
||||
|
||||
#### Optional Components
|
||||
|
||||
`makeADIOS`
|
||||
- Only required for ADIOS support,
|
||||
which is currently staged in the [add-ons repository][link AddOns].
|
||||
|
||||
`makeCGAL`
|
||||
- Builds third-party boost and CGAL.
|
||||
Automatically invoked from the ThirdParty `Allwmake`,
|
||||
@ -131,6 +135,9 @@ ThirdParty components prior to building OpenFOAM itself.
|
||||
Automatically invoked from the ThirdParty `Allwmake`,
|
||||
but can be invoked directly to resolve possible build errors.
|
||||
|
||||
`makeMGridGen`
|
||||
- Optional agglomeration routines.
|
||||
|
||||
`makeCCMIO`
|
||||
- Only required for conversion to/from STARCD/STARCCM+ files.
|
||||
|
||||
@ -146,6 +153,8 @@ ThirdParty components prior to building OpenFOAM itself.
|
||||
`makeQt`
|
||||
- Script to build a [third-party installation of Qt](#makeQt), including qmake.
|
||||
- Possibly needed for `makeParaView`.
|
||||
- The associated `etc/relocateQt` may be of independent use.
|
||||
Read the file for more details.
|
||||
|
||||
`makeGperftools`
|
||||
- Build gperftools (originally Google Performance Tools)
|
||||
@ -167,7 +176,8 @@ and save some disk space.
|
||||
|
||||
### Mesa
|
||||
- Needed for off-screen rendering.
|
||||
- Building with [mesa-11][older mesa] is fine and [mesa-13][link mesa] also seems to be okay.
|
||||
- Building with [mesa-11][older11 mesa] and [mesa-13][older13 mesa] both
|
||||
seem okay, as does building with [mesa-17][link mesa].
|
||||
- Building with mesa-12 is not possible since it fails to create
|
||||
the necessary `include/GL` directory and `osmesa.h` file.
|
||||
|
||||
@ -178,32 +188,36 @@ and save some disk space.
|
||||
sources that are bundled with ParaView.
|
||||
For example, by using a symbolic link:
|
||||
|
||||
ln -s ParaView-5.0.1/VTK VTK-7.1.0
|
||||
ln -s ParaView-v5.4.0/VTK VTK-8.1.0
|
||||
|
||||
The appropriate VTK version number can be found from the contents of
|
||||
the `vtkVersion.cmake` file.
|
||||
For example,
|
||||
|
||||
$ cat ParaView-5.0.1/VTK/CMake/vtkVersion.cmake
|
||||
$ cat ParaView-v5.4.0/VTK/CMake/vtkVersion.cmake
|
||||
|
||||
# VTK version number components.
|
||||
set(VTK_MAJOR_VERSION 7)
|
||||
set(VTK_MAJOR_VERSION 8)
|
||||
set(VTK_MINOR_VERSION 1)
|
||||
set(VTK_BUILD_VERSION 0)
|
||||
|
||||
### ParaView
|
||||
- **ParaView-5.0.1** is the last version for which the OpenFOAM reader
|
||||
modules (eg, to visualize a `blockMeshDict`) work in their present form.
|
||||
|
||||
- Building ParaView requires CMake, qmake and a `qt` development files.
|
||||
Use the `-cmake`, `-qmake` and `-qt-*` options for `makeParaView` as
|
||||
required.
|
||||
See additional notes below about [making Qt](#makeQt) if necessary.
|
||||
|
||||
#### 5.4.0
|
||||
- Compiles without patching.
|
||||
No known issues with the native OpenFOAM reader.
|
||||
|
||||
#### 5.3.0
|
||||
- Compiles without patching.
|
||||
The native OpenFOAM reader has a bug reading tetrahedrals.
|
||||
|
||||
#### 5.2.0
|
||||
- Compiles without patching, but the OpenFOAM reader modules
|
||||
(eg, to visualize a `blockMeshDict`) have not yet been migrated
|
||||
to this version.
|
||||
- Compiles without patching, but the native OpenFOAM reader is
|
||||
broken in this version.
|
||||
|
||||
#### 4.4.0/5.0.0/5.0.1/5.1.2
|
||||
- When using `makeParaView`, the following patches will be automatically
|
||||
@ -215,6 +229,15 @@ and save some disk space.
|
||||
the compilation of ParaView to halt. The easiest solution is to delete
|
||||
the ParaView-5.0.1/Plugins/SciberQuestToolKit directory.
|
||||
|
||||
### ADIOS
|
||||
- The github release currently requires GNU autoconf tools (eg,
|
||||
autoconf, autoheader, automake) for its configuration.
|
||||
- Some inconsistency in directory names (ADIOS vs. adios) between releases.
|
||||
- Optionally uses bzip2, zlib development headers (eg, libbz2-devel, zlib-devel)
|
||||
for the corresponding compression tranforms.
|
||||
- The [zfp floating point compression][page zfp] library is now included as
|
||||
part of ADIOS.
|
||||
|
||||
### Making Qt <a name="makeQt"></a>
|
||||
- Building a third-party Qt installation (prior to building ParaView) requires
|
||||
some additional effort, but should nonetheless work smoothly.
|
||||
@ -229,7 +252,7 @@ and save some disk space.
|
||||
|
||||
./makeParaView -qt-4.8.7 5.0.1
|
||||
|
||||
- ParaView does not yet support QT5.
|
||||
- ParaView versions prior to 5.3.0 do not properly support QT5.
|
||||
|
||||
- If you relocate the third-party directory to another location
|
||||
(eg, you built in your home directory, but want to install it in a
|
||||
@ -295,7 +318,7 @@ GNU *configure* can only be used prior to clang version 3.9.
|
||||
|-----------------------|------------------------
|
||||
| [adios][page adios] | [repo][repo adios] or [github download][link adios] or [alt download][altlink adios]
|
||||
| [scotch, ptscotch][page scotch] | [download][link scotch]
|
||||
| [openmpi][page openmpi] | [download][link openmpi]
|
||||
| [openmpi][page openmpi] | [download][link openmpi]. The newer [openmpi][newer openmpi] make exhibit stability issues.
|
||||
|
||||
|
||||
### General <a name="general-packages"></a>
|
||||
@ -304,7 +327,7 @@ GNU *configure* can only be used prior to clang version 3.9.
|
||||
|-----------------------|------------------------
|
||||
| [CMake][page cmake] | [download][link cmake]
|
||||
| [boost][page boost] | [download][link boost]
|
||||
| [CGAL][page CGAL] | [download][link CGAL] or [older][older CGAL]
|
||||
| [CGAL][page CGAL] | [download][link CGAL]
|
||||
| [FFTW][page FFTW] | [download][link FFTW]
|
||||
| [ADF/CGNS][page CGNS], ccm | [link ccmio][link ccmio]
|
||||
| [tecio][page tecio] | [link tecio][link tecio]
|
||||
@ -315,9 +338,9 @@ GNU *configure* can only be used prior to clang version 3.9.
|
||||
|
||||
| Name | Location
|
||||
|-----------------------|------------------------
|
||||
| [MESA][page mesa] | [download][link mesa] or [older][older mesa]
|
||||
| [ParaView][page ParaView] | [download][link ParaView]. The reader modules do not yet work with the newest paraview versions.
|
||||
| [Qt][page Qt] | [repo][repo Qt] or [download][link Qt]. The newer [Qt5][newer Qt5] is **not** currently supported by ParaView.
|
||||
| [MESA][page mesa] | [download][link mesa] or [older 13][older13 mesa], [older 11][older11 mesa]
|
||||
| [ParaView][page ParaView] | [download][link ParaView]
|
||||
| [Qt][page Qt] | [repo][repo Qt] or [download][link Qt]. The newer [Qt5][newer Qt5] only works with ParaView-5.3.0 and later.
|
||||
|
||||
|
||||
### CMake Minimum Requirements <a name="min-cmake"></a>
|
||||
@ -332,7 +355,10 @@ The minimum CMake requirements for building various components.
|
||||
2.8.4 cmake-3.6.0
|
||||
3.3 ParaView-5.1.2
|
||||
3.3 ParaView-5.2.0
|
||||
3.4.3 llvm-3.9.0.src
|
||||
3.3 ParaView-5.3.0
|
||||
3.3 ParaView-5.4.0
|
||||
3.4.3 llvm-3.9.1
|
||||
3.4.3 llvm-4.0.0
|
||||
3.5 ParaView-5.1.0
|
||||
|
||||
|
||||
@ -362,26 +388,26 @@ The minimum gcc/g++ requirements for building various components.
|
||||
[page clang]: http://llvm.org/
|
||||
[page llvm]: http://llvm.org/
|
||||
|
||||
[link clang]: http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz
|
||||
[link llvm]: http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz
|
||||
[link clang]: http://llvm.org/releases/3.7.1/cfe-3.7.1.src.tar.xz
|
||||
[link llvm]: http://llvm.org/releases/3.7.1/llvm-3.7.1.src.tar.xz
|
||||
|
||||
[newer clang]: http://llvm.org/releases/3.9.0/cfe-3.9.0.src.tar.xz
|
||||
[newer llvm]: http://llvm.org/releases/3.9.0/llvm-3.9.0.src.tar.xz
|
||||
[newer clang]: http://llvm.org/releases/4.0.0/cfe-4.0.0.src.tar.xz
|
||||
[newer llvm]: http://llvm.org/releases/4.0.0/llvm-4.0.0.src.tar.xz
|
||||
|
||||
|
||||
<!-- parallel -->
|
||||
[page adios]: https://www.olcf.ornl.gov/center-projects/adios/
|
||||
[repo adios]: https://github.com/ornladios/ADIOS
|
||||
[link adios]: https://github.com/ornladios/ADIOS/archive/v1.11.0.tar.gz
|
||||
[altlink adios]: http://users.nccs.gov/%7Epnorbert/adios-1.11.0.tar.gz
|
||||
[link adios]: https://github.com/ornladios/ADIOS/archive/v1.11.1.tar.gz
|
||||
[altlink adios]: http://users.nccs.gov/%7Epnorbert/adios-1.11.1.tar.gz
|
||||
[page zfp]: http://computation.llnl.gov/projects/floating-point-compression/zfp-versions
|
||||
|
||||
[page scotch]: https://www.labri.fr/perso/pelegrin/scotch/
|
||||
[link scotch]: https://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz
|
||||
|
||||
[page openmpi]: http://www.open-mpi.org/
|
||||
[link openmpi]: http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.4.tar.bz2
|
||||
[newer openmpi]: https://www.open-mpi.org/software/ompi/v2.0/downloads/openmpi-2.0.1.tar.bz2
|
||||
[link openmpi]: https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.4.tar.bz2
|
||||
[newer openmpi]: https://www.open-mpi.org/software/ompi/v2.1/downloads/openmpi-2.1.1.tar.bz2
|
||||
|
||||
|
||||
<!-- general -->
|
||||
@ -389,17 +415,17 @@ The minimum gcc/g++ requirements for building various components.
|
||||
[link cmake]: http://www.cmake.org/files/v3.5/cmake-3.5.2.tar.gz
|
||||
|
||||
[page boost]: http://boost.org
|
||||
[link boost]: https://sourceforge.net/projects/boost/files/boost/1.62.0/boost_1_62_0.tar.bz2
|
||||
[link boost]: https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2
|
||||
|
||||
[page CGAL]: http://cgal.org
|
||||
[link CGAL]: https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.9/CGAL-4.9.tar.xz
|
||||
[older CGAL]: https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.8.2/CGAL-4.8.2.tar.xz
|
||||
[link CGAL]: https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.9.1/CGAL-4.9.1.tar.xz
|
||||
|
||||
[page FFTW]: http://www.fftw.org/
|
||||
[link FFTW]: http://www.fftw.org/fftw-3.3.5.tar.gz
|
||||
[link FFTW]: http://www.fftw.org/fftw-3.3.6-pl1.tar.gz
|
||||
|
||||
[page cgns]: http://cgns.github.io/
|
||||
[link ccmio]: http://portal.nersc.gov/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz (check usage conditions)
|
||||
[link ccmio]: http://portal.nersc.gov/project/visit/third_party/libccmio-2.6.1.tar.gz (check usage conditions)
|
||||
[altlink ccmio]: http://portal.nersc.gov/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz (check usage conditions)
|
||||
|
||||
[page tecio]: http://www.tecplot.com/
|
||||
[link tecio]: http://www.tecplot.com/my/tecio-library/ (needs registration)
|
||||
@ -411,32 +437,34 @@ The minimum gcc/g++ requirements for building various components.
|
||||
<!-- Visualization -->
|
||||
|
||||
[page ParaView]: http://www.paraview.org/
|
||||
[link ParaView]: http://www.paraview.org/files/v5.0/ParaView-v5.0.1-source.tar.gz
|
||||
|
||||
[older ParaView-44]: http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz
|
||||
[newer ParaView-51]: http://www.paraview.org/files/v5.1/ParaView-v5.1.2-source.tar.gz
|
||||
[newer ParaView-52]: http://www.paraview.org/files/v5.2/ParaView-v5.2.0.tar.gz
|
||||
[link ParaView]: http://www.paraview.org/files/v5.4/ParaView-v5.4.0.tar.gz
|
||||
|
||||
[page mesa]: http://mesa3d.org/
|
||||
[link mesa]: ftp://ftp.freedesktop.org/pub/mesa/13.0.1/mesa-13.0.1.tar.xz
|
||||
[older mesa]: ftp://ftp.freedesktop.org/pub/mesa/11.2.2/mesa-11.2.2.tar.xz
|
||||
[link mesa]: ftp://ftp.freedesktop.org/pub/mesa/mesa-17.1.1.tar.xz
|
||||
[older13 mesa]: ftp://ftp.freedesktop.org/pub/mesa/13.0.6/mesa-13.0.6.tar.xz
|
||||
[older11 mesa]: ftp://ftp.freedesktop.org/pub/mesa/older-versions/11.x/11.2.2/mesa-11.2.2.tar.xz
|
||||
|
||||
[page Qt]: https://www.qt.io/download-open-source/
|
||||
[repo Qt]: http://code.qt.io/cgit/qt-creator/qt-creator.git
|
||||
[link Qt]: http://download.qt.io/official_releases/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz
|
||||
[newer Qt5]: http://download.qt.io/official_releases/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.gz
|
||||
[newer Qt5]: http://download.qt.io/official_releases/qt/5.9/5.9.0/single/qt-everywhere-opensource-src-5.9.0.tar.xz
|
||||
|
||||
<!-- OpenFOAM -->
|
||||
|
||||
[link AddOns]: https://develop.openfoam.com/Community/OpenFOAM-addOns
|
||||
[link community-projects]: http://www.openfoam.com/services/community-projects.php
|
||||
|
||||
|
||||
<!-- Standard Footer -->
|
||||
## Additional OpenFOAM Links
|
||||
|
||||
- [Community AddOns][link AddOns] repository
|
||||
- [Collaborative and Community-based Developments][link community-projects]
|
||||
- [Download](http://www.openfoam.com/releases) and
|
||||
[installation instructions](http://www.openfoam.com/download/installation.php)
|
||||
- [Documentation](http://www.openfoam.com/documentation)
|
||||
- [Reporting bugs/issues (including bugs/suggestions/feature requests) in OpenFOAM+](http://www.openfoam.com/code/bug-reporting.php)
|
||||
- [Collaborative and Community-based Developments](http://www.openfoam.com/services/community-projects.php)
|
||||
- [Reporting bugs/issues](http://www.openfoam.com/code/bug-reporting.php) (including bugs/suggestions/feature requests) in OpenFOAM+
|
||||
- [Contacting OpenCFD](http://www.openfoam.com/contact)
|
||||
|
||||
---
|
||||
|
||||
Copyright 2016 OpenCFD Ltd
|
||||
Copyright 2016-2017 OpenCFD Ltd
|
||||
|
||||
@ -85,3 +85,137 @@
|
||||
|
||||
set (xslt_xml)
|
||||
|
||||
--- ParaView-5.0.1/VTK/CMake/vtkOpenGL.cmake.orig 2016-03-28 17:07:10.000000000 +0200
|
||||
+++ ParaView-5.0.1/VTK/CMake/vtkOpenGL.cmake 2017-01-19 10:23:19.170743269 +0100
|
||||
@@ -19,9 +19,11 @@
|
||||
# OSMesa logic for offscreen mesa rendering.
|
||||
option(VTK_OPENGL_HAS_OSMESA
|
||||
"The OpenGL library being used supports off screen Mesa calls" OFF)
|
||||
+
|
||||
# EGL offscreen rendering
|
||||
option(VTK_USE_OFFSCREEN_EGL
|
||||
"Use EGL for OpenGL client API for offscreen rendering." OFF)
|
||||
+
|
||||
set(VTK_EGL_DEVICE_INDEX 0 CACHE STRING
|
||||
"Index of the EGL device (graphics card) to use.")
|
||||
|
||||
@@ -33,21 +35,26 @@
|
||||
endif()
|
||||
|
||||
option(VTK_USE_OFFSCREEN "Use off screen calls by default" OFF)
|
||||
+
|
||||
unset(VTK_CAN_DO_OFFSCREEN)
|
||||
+unset(VTK_CAN_DO_ONSCREEN)
|
||||
+
|
||||
if(VTK_OPENGL_HAS_OSMESA OR WIN32 OR VTK_USE_OFFSCREEN_EGL)
|
||||
set(VTK_CAN_DO_OFFSCREEN 1)
|
||||
endif()
|
||||
+
|
||||
if(VTK_USE_X OR VTK_USE_COCOA OR WIN32 OR ANDROID OR APPLE_IOS)
|
||||
- set(VTK_USE_OSMESA FALSE)
|
||||
+ set(VTK_USE_OSMESA ${VTK_OPENGL_HAS_OSMESA})
|
||||
if (VTK_USE_OFFSCREEN_EGL)
|
||||
message(FATAL_ERROR "VTK_USE_OFFSCREEN_EGL set together with one of ("
|
||||
"VTK_USE_X, VTK_USE_COCOA, WIN32, ANDROID OR APPLE_IOS). "
|
||||
"You cannot use both offscreen and one of the listed windowing systems.")
|
||||
endif()
|
||||
+ set(VTK_CAN_DO_ONSCREEN 1)
|
||||
elseif(VTK_USE_OFFSCREEN_EGL)
|
||||
set(VTK_USE_OSMESA FALSE)
|
||||
else()
|
||||
- set(VTK_USE_OSMESA TRUE)
|
||||
+ set(VTK_USE_OSMESA ${VTK_OPENGL_HAS_OSMESA})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(VTK_USE_X VTK_OPENGL_HAS_OSMESA VTK_USE_OFFSCREEN_EGL
|
||||
@@ -56,10 +63,17 @@
|
||||
if(VTK_USE_OSMESA)
|
||||
find_package(OSMesa REQUIRED)
|
||||
include_directories(SYSTEM ${OSMESA_INCLUDE_DIR})
|
||||
-elseif(VTK_USE_OFFSCREEN_EGL)
|
||||
+endif()
|
||||
+
|
||||
+if(VTK_USE_OFFSCREEN_EGL)
|
||||
find_package(EGL REQUIRED)
|
||||
include_directories(SYSTEM ${EGL_INCLUDE_DIR})
|
||||
-else()
|
||||
+endif()
|
||||
+
|
||||
+if(VTK_CAN_DO_ONSCREEN)
|
||||
+ # OpenGL libraries are explicity needed if windowing system-based API is being
|
||||
+ # used. Otherwise, if only doing OFFSCREEN, the GL API is provided by the
|
||||
+ # offscreen library be it EGL or OSMESA.
|
||||
find_package(OpenGL REQUIRED)
|
||||
include_directories(SYSTEM ${OPENGL_INCLUDE_DIR})
|
||||
if(APPLE)
|
||||
@@ -83,9 +97,11 @@
|
||||
function(vtk_opengl_link target)
|
||||
if(VTK_USE_OSMESA)
|
||||
vtk_module_link_libraries(${target} LINK_PRIVATE ${OSMESA_LIBRARY})
|
||||
- elseif(VTK_USE_OFFSCREEN_EGL)
|
||||
+ endif()
|
||||
+ if(VTK_USE_OFFSCREEN_EGL)
|
||||
vtk_module_link_libraries(${target} LINK_PRIVATE ${EGL_LIBRARIES})
|
||||
- else()
|
||||
+ endif()
|
||||
+ if(VTK_CAN_DO_ONSCREEN)
|
||||
vtk_module_link_libraries(${target} LINK_PRIVATE ${OPENGL_LIBRARIES})
|
||||
endif()
|
||||
endfunction()
|
||||
--- ParaView-5.0.1/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx.orig 2016-03-28 17:07:10.000000000 +0200
|
||||
+++ ParaView-5.0.1/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx 2017-01-19 15:24:21.783214877 +0100
|
||||
@@ -30,10 +30,25 @@
|
||||
typedef ptrdiff_t GLsizeiptr;
|
||||
#include "GL/glx.h"
|
||||
|
||||
+
|
||||
+#ifndef GLAPI
|
||||
+#define GLAPI extern
|
||||
+#endif
|
||||
+
|
||||
+#ifndef GLAPIENTRY
|
||||
+#define GLAPIENTRY
|
||||
+#endif
|
||||
+
|
||||
+#ifndef APIENTRY
|
||||
+#define APIENTRY GLAPIENTRY
|
||||
+#endif
|
||||
+
|
||||
#include "vtkToolkits.h"
|
||||
|
||||
#ifdef VTK_USE_OSMESA
|
||||
#include <GL/osmesa.h>
|
||||
+
|
||||
+typedef OSMesaContext GLAPIENTRY (*OSMesaCreateContextAttribs_func)( const int *attribList, OSMesaContext sharelist );
|
||||
#endif
|
||||
|
||||
#include "vtkCommand.h"
|
||||
@@ -757,6 +772,28 @@
|
||||
this->Size[1] = height;
|
||||
this->OwnWindow = 1;
|
||||
}
|
||||
+
|
||||
+#if (OSMESA_MAJOR_VERSION * 100 + OSMESA_MINOR_VERSION >= 1102) && defined(OSMESA_CONTEXT_MAJOR_VERSION)
|
||||
+ static const int attribs[] = {
|
||||
+ OSMESA_FORMAT, OSMESA_RGBA,
|
||||
+ OSMESA_DEPTH_BITS, 32,
|
||||
+ OSMESA_STENCIL_BITS, 0,
|
||||
+ OSMESA_ACCUM_BITS, 0,
|
||||
+ OSMESA_PROFILE, OSMESA_CORE_PROFILE,
|
||||
+ OSMESA_CONTEXT_MAJOR_VERSION, 3,
|
||||
+ OSMESA_CONTEXT_MINOR_VERSION, 2,
|
||||
+ 0 };
|
||||
+
|
||||
+ OSMesaCreateContextAttribs_func OSMesaCreateContextAttribs =
|
||||
+ (OSMesaCreateContextAttribs_func)
|
||||
+ OSMesaGetProcAddress("OSMesaCreateContextAttribs");
|
||||
+
|
||||
+ if (OSMesaCreateContextAttribs != NULL)
|
||||
+ {
|
||||
+ this->Internal->OffScreenContextId = OSMesaCreateContextAttribs(attribs, NULL);
|
||||
+ }
|
||||
+#endif
|
||||
+ // if we still have no context fall back to the generic signature
|
||||
if (!this->Internal->OffScreenContextId)
|
||||
{
|
||||
this->Internal->OffScreenContextId = OSMesaCreateContext(GL_RGBA, NULL);
|
||||
|
||||
88
etc/pkgconfigAdjust
Executable file
88
etc/pkgconfigAdjust
Executable file
@ -0,0 +1,88 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017 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
|
||||
# etc/pkgconfigAdjust
|
||||
#
|
||||
# Description
|
||||
# Adjust pkgconfig information to use '${prefix} where possible instead of
|
||||
# directory paths. This makes it easier when relocating software.
|
||||
# Adjusts includedir=, libdir=, -I/... and -L/... entries.
|
||||
#
|
||||
# The specified directory can be any of the following:
|
||||
# - base-dir
|
||||
# - base-dir/bin
|
||||
# - base-dir/lib
|
||||
# - base-dir/lib64
|
||||
# - base-dir/lib/pkgconfig
|
||||
# - base-dir/lib64/pkgconfig
|
||||
#
|
||||
# This allows this type of shell command
|
||||
#
|
||||
# etc/pkgconfigAdjust $(find platforms -type d -name pkgconfig)
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party (parent) directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [directory1 [... directoryN]]
|
||||
options:
|
||||
-help
|
||||
|
||||
Adjust pkgconfig files after relocating third-party files.
|
||||
Locates pkgconfig files under the lib/ or lib64/ directories and adjusts them
|
||||
to use '${prefix}' instead of absolute directory paths where possible.
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Process options/arguments
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
|
||||
*)
|
||||
pkgconfigAdjust "$1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
85
etc/pkgconfigPrefix
Executable file
85
etc/pkgconfigPrefix
Executable file
@ -0,0 +1,85 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017 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
|
||||
# etc/pkgconfigPrefix
|
||||
#
|
||||
# Description
|
||||
# Set the prefix= entry for pkgconfig files to account for a new location.
|
||||
#
|
||||
# The specified directory can be any of the following:
|
||||
# - base-dir
|
||||
# - base-dir/bin
|
||||
# - base-dir/lib
|
||||
# - base-dir/lib64
|
||||
# - base-dir/lib/pkgconfig
|
||||
# - base-dir/lib64/pkgconfig
|
||||
#
|
||||
# This allows this type of shell command
|
||||
#
|
||||
# etc/pkgconfigPrefix $(find platforms -type d -name pkgconfig)
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party (parent) directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [directory1 [... directoryN]]
|
||||
options:
|
||||
-help
|
||||
|
||||
Set the 'prefix=' entry for pkgconfig files.
|
||||
The pkgconfig files are located under lib/pkgconfig or lib64/pkgconfig.
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Process options/arguments
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
|
||||
*)
|
||||
pkgconfigNewPrefix "$1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -4,7 +4,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -28,27 +28,24 @@
|
||||
# Description
|
||||
# Change prefix when relocating QT installation
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
qtVERSION=4.8.7
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
# Run from third-party (parent) directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
. etc/tools/QtFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [VERSION]
|
||||
usage: ${0##*/} [OPTION] [qt-VERSION]
|
||||
options:
|
||||
-force Create qt.conf and edit pkgconfig to use \${prefix}
|
||||
-help
|
||||
@ -62,17 +59,17 @@ USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
unset optForce
|
||||
|
||||
unset forceOpt
|
||||
# parse options
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
|
||||
-f | -force)
|
||||
forceOpt=true
|
||||
optForce=true
|
||||
;;
|
||||
-qt-[1-9]* | [1-9]* | qt-*)
|
||||
# -qt-VERSION, VERSION, qt-VERSION, qt-everywhere-opensource-src-VERSION
|
||||
@ -89,11 +86,14 @@ done
|
||||
#------------------------------------------------------------------------------
|
||||
QT_ARCH_PATH=$installBASE/qt-$qtVERSION
|
||||
|
||||
if [ "${forceOpt:-false}" = true ]
|
||||
[ -n "$qtVERSION" ] || die "No QT version specified"
|
||||
[ -d "$QT_ARCH_PATH" ] || die "No QT installation"
|
||||
|
||||
if [ "${optForce:-false}" = true ]
|
||||
then
|
||||
# Create qt.conf and adjust locations to use '${prefix}' internally
|
||||
finalizeQt
|
||||
fi
|
||||
changePrefix
|
||||
pkgconfigNewPrefix $QT_ARCH_PATH
|
||||
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -29,14 +29,26 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# sourceBASE, buildBASE, installBASE defined in tools/ThirdPartyFunctions
|
||||
# Variables referenced by the functions. Initialization at the end of the file.
|
||||
unset CMAKE_VARIABLES
|
||||
unset withVERBOSE
|
||||
unset withMPI MPI_MAX_PROCS
|
||||
unset withQT QT_VERSION QMAKE_PATH
|
||||
unset withMESA MESA_INCLUDE MESA_LIBRARY withOSMESA
|
||||
unset withPYTHON PYTHON_INCLUDE PYTHON_LIBRARY
|
||||
unset withGL2
|
||||
BUILD_TYPE=Release # The cmake build type
|
||||
|
||||
# sourceBASE, buildBASE, installBASE and BUILD_SUFFIX
|
||||
# are defined in tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# 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_BUILD_DIR : location of the build
|
||||
# ParaView_DIR : location of the installed program
|
||||
#
|
||||
setParaViewDirs()
|
||||
@ -61,21 +73,17 @@ setParaViewDirs()
|
||||
exit 1
|
||||
}
|
||||
|
||||
# ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION${OBJ_ADD:+-$OBJ_ADD}
|
||||
ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION
|
||||
ParaView_BUILD_DIR=$buildBASE/ParaView-$ParaView_VERSION$BUILD_SUFFIX
|
||||
ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION$BUILD_SUFFIX
|
||||
|
||||
# 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
|
||||
export ParaView_SOURCE_DIR ParaView_BUILD_DIR ParaView_DIR
|
||||
|
||||
echo
|
||||
echo "ParaView_SOURCE_DIR=$ParaView_SOURCE_DIR"
|
||||
echo "ParaView_BINARY_DIR=$ParaView_BINARY_DIR"
|
||||
echo "ParaView_BUILD_DIR=$ParaView_BUILD_DIR"
|
||||
echo "ParaView_DIR=$ParaView_DIR"
|
||||
|
||||
# Forcefully override the .git path for the ParaView source code directory
|
||||
export GIT_DIR=$ParaView_SOURCE_DIR/.git
|
||||
export GIT_DIR=$ParaView_SOURCE_DIR/.git # Mask seeing our own git-repo
|
||||
}
|
||||
|
||||
|
||||
@ -103,26 +111,6 @@ setParaViewVersion()
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# 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=$(
|
||||
sed -ne 's/^ *set *( *PARAVIEW_VERSION_FULL[ "]*\([.0-9]*\).*$/\1/ip' \
|
||||
$ParaView_SOURCE_DIR/CMakeLists.txt
|
||||
)
|
||||
|
||||
if [ "$ParaView_VERSION" != "$ver" ]
|
||||
then
|
||||
echo "(${ver:-none}) mismatch?"
|
||||
else
|
||||
echo "(${ver:-none})"
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Set CMake cache variables
|
||||
#
|
||||
@ -143,7 +131,7 @@ addVerbosity()
|
||||
{
|
||||
if [ "${withVERBOSE:=false}" = true ]
|
||||
then
|
||||
addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
|
||||
addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -158,12 +146,10 @@ addMpiSupport()
|
||||
return
|
||||
fi
|
||||
|
||||
OBJ_ADD="$OBJ_ADD-mpi"
|
||||
|
||||
addCMakeVariable "PARAVIEW_USE_MPI=ON VTK_USE_MPI=ON"
|
||||
addCMakeVariable "PARAVIEW_USE_MPI=ON VTK_USE_MPI=ON"
|
||||
if [ "${MPI_MAX_PROCS:=0}" -gt 1 ]
|
||||
then
|
||||
addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS"
|
||||
addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -178,8 +164,6 @@ addPythonSupport()
|
||||
return
|
||||
fi
|
||||
|
||||
OBJ_ADD="$OBJ_ADD-py"
|
||||
|
||||
if pythonBin=$(which python 2>/dev/null)
|
||||
then
|
||||
if [ -n "$PYTHON_LIBRARY" ]
|
||||
@ -219,9 +203,9 @@ addPythonSupport()
|
||||
exit 1
|
||||
}
|
||||
|
||||
addCMakeVariable "PARAVIEW_ENABLE_PYTHON=ON"
|
||||
addCMakeVariable "PYTHON_INCLUDE_DIRS=$pythonInclude"
|
||||
addCMakeVariable "PYTHON_LIBRARY=$PYTHON_LIBRARY"
|
||||
addCMakeVariable "PARAVIEW_ENABLE_PYTHON=ON"
|
||||
addCMakeVariable "PYTHON_INCLUDE_DIRS=$pythonInclude"
|
||||
addCMakeVariable "PYTHON_LIBRARY=$PYTHON_LIBRARY"
|
||||
|
||||
echo "----"
|
||||
echo "Python information:"
|
||||
@ -252,19 +236,17 @@ addMesaSupport()
|
||||
|
||||
if [ -d "$MESA_INCLUDE" -a -f "$MESA_LIBRARY" ]
|
||||
then
|
||||
OBJ_ADD="$OBJ_ADD-mesa"
|
||||
|
||||
addCMakeVariable "VTK_OPENGL_HAS_OSMESA:BOOL=ON"
|
||||
addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE"
|
||||
addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY"
|
||||
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 not using the -mesa option, "
|
||||
echo "*** or set the correct paths for:"
|
||||
echo "*** -mesa-include ($MESA_INCLUDE)"
|
||||
echo "*** -mesa-lib ($MESA_LIBRARY)"
|
||||
exit 1
|
||||
echo "*** Error: no MESA information found"
|
||||
echo "*** Deactivate MESA support by not using the -mesa option, "
|
||||
echo "*** or set the correct paths for:"
|
||||
echo "*** -mesa-include ($MESA_INCLUDE)"
|
||||
echo "*** -mesa-lib ($MESA_LIBRARY)"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
@ -276,45 +258,42 @@ addGL2Support()
|
||||
{
|
||||
if [ "${withGL2:=false}" = true ]
|
||||
then
|
||||
addCMakeVariable "VTK_RENDERING_BACKEND=OpenGL2"
|
||||
addCMakeVariable "VTK_RENDERING_BACKEND=OpenGL2"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Qt 4/5 support
|
||||
#
|
||||
addQtSupport()
|
||||
{
|
||||
QtVersion=none
|
||||
QT_VERSION=none
|
||||
: ${withQT:=true} # default is on
|
||||
|
||||
if [ "${withQT:=false}" != true ]
|
||||
if [ "$withQT" = false ]
|
||||
then
|
||||
# Explicitly disabled
|
||||
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=OFF"
|
||||
return
|
||||
fi
|
||||
|
||||
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON"
|
||||
local qmake qtLib
|
||||
|
||||
local qmake=$(findQtMake)
|
||||
|
||||
# From somewhere other than in the path
|
||||
if [ "${qmake:=qmake}" != qmake ]
|
||||
# Check qmake can be found and handle version differences
|
||||
qmake=$(findQtMake)
|
||||
if QT_VERSION=$($qmake -query QT_VERSION 2>/dev/null)
|
||||
then
|
||||
addCMakeVariable "QT_QMAKE_EXECUTABLE:FILEPATH=$qmake"
|
||||
fi
|
||||
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON"
|
||||
|
||||
# Check qmake can be found
|
||||
if type $qmake >/dev/null 2>&1
|
||||
then
|
||||
# Check the Qt version selected
|
||||
# parse -> "Using Qt version X.Y.Z in ..."
|
||||
QtVersion=$($qmake -query QT_VERSION)
|
||||
|
||||
case "$QtVersion" in
|
||||
3.* | 4.[0-4]*)
|
||||
case "$QT_VERSION" in
|
||||
(3.* | 4.[0-4]*)
|
||||
# QT is too old
|
||||
cat <<ERROR
|
||||
----
|
||||
Error: ${0##*/}
|
||||
|
||||
QT version ($QtVersion) provided < 4.5
|
||||
QT version ($QT_VERSION) provided < 4.5
|
||||
Please use the -qmake option to specify the location of a newer QT version
|
||||
For example,
|
||||
... -qmake /usr/local/qt-4.6.2/bin/qmake
|
||||
@ -324,12 +303,32 @@ ERROR
|
||||
exit 1
|
||||
;;
|
||||
|
||||
5.*)
|
||||
# QT4 is the default, must specify QT5 explicitly
|
||||
addCMakeVariable "PARAVIEW_QT_VERSION:STRING=5"
|
||||
(4.*)
|
||||
# Default changed to Qt5 with paraview 5.2.1, so specify explicitly
|
||||
addCMakeVariable "PARAVIEW_QT_VERSION=4"
|
||||
|
||||
# Non-system installation - specify location of qmake
|
||||
if [ "$qmake" != /usr/bin/qmake ]
|
||||
then
|
||||
addCMakeVariable "QT_QMAKE_EXECUTABLE=$qmake"
|
||||
fi
|
||||
;;
|
||||
|
||||
(5.*)
|
||||
# Default changed to Qt5 with paraview 5.2.1, so specify explicitly
|
||||
addCMakeVariable "PARAVIEW_QT_VERSION=5"
|
||||
|
||||
# Non-system installation - find CMake config files
|
||||
if [ "$qmake" != /usr/bin/qmake ] \
|
||||
&& qtLib="$($qmake -query QT_INSTALL_LIBS)/cmake/Qt5" \
|
||||
&& [ -d "$qtLib" ]
|
||||
then
|
||||
addCMakeVariable "Qt5_DIR=$qtLib"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
else
|
||||
QT_VERSION=none
|
||||
echo "Error: cannot find qmake either at \$QMAKE_PATH or in current \$PATH"
|
||||
echo
|
||||
exit 1
|
||||
@ -354,17 +353,17 @@ configParaView()
|
||||
local cmake=$(findCMake)
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
if [ -d $ParaView_BINARY_DIR ]
|
||||
if [ -d $ParaView_BUILD_DIR ]
|
||||
then
|
||||
echo "removing old build directory"
|
||||
echo " $ParaView_BINARY_DIR"
|
||||
rm -rf $ParaView_BINARY_DIR
|
||||
echo " $ParaView_BUILD_DIR"
|
||||
rm -rf $ParaView_BUILD_DIR
|
||||
fi
|
||||
mkdir -p $ParaView_BINARY_DIR
|
||||
mkdir -p $ParaView_BUILD_DIR
|
||||
|
||||
addCMakeVariable "CMAKE_BUILD_TYPE:STRING=$buildType"
|
||||
addCMakeVariable "CMAKE_BUILD_TYPE=$BUILD_TYPE"
|
||||
|
||||
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
|
||||
cd $ParaView_BUILD_DIR || exit 1 # Change to build folder
|
||||
|
||||
echo "----"
|
||||
echo "Configuring paraview-$ParaView_VERSION (major version: $ParaView_MAJOR)"
|
||||
@ -372,16 +371,16 @@ configParaView()
|
||||
echo " Python support : ${withPYTHON:-false}"
|
||||
echo " MESA support : ${withMESA:-false}"
|
||||
echo " GL2 rendering : ${withGL2:-false}"
|
||||
echo " Qt dev support : ${withQT:-false}"
|
||||
echo " QT dev support : ${withQT:-true}"
|
||||
echo " Source : $ParaView_SOURCE_DIR"
|
||||
echo " Build : $ParaView_BINARY_DIR"
|
||||
echo " Build : $ParaView_BUILD_DIR"
|
||||
echo " Target : $ParaView_DIR"
|
||||
echo " Build type : $buildType"
|
||||
echo " Cmake : $cmake"
|
||||
echo " cmake : $cmake"
|
||||
echo " Build suffix : ${BUILD_SUFFIX:-none}"
|
||||
echo "----"
|
||||
echo
|
||||
echo "$cmake" \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
|
||||
-DCMAKE_INSTALL_PREFIX=$ParaView_DIR \
|
||||
$CMAKE_VARIABLES \
|
||||
$ParaView_SOURCE_DIR
|
||||
echo
|
||||
@ -390,7 +389,7 @@ configParaView()
|
||||
|
||||
# Run cmake to create Makefiles
|
||||
$cmake \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
|
||||
-DCMAKE_INSTALL_PREFIX=$ParaView_DIR \
|
||||
$CMAKE_VARIABLES \
|
||||
$ParaView_SOURCE_DIR
|
||||
}
|
||||
@ -402,7 +401,7 @@ configParaView()
|
||||
#
|
||||
makeParaView()
|
||||
{
|
||||
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
|
||||
cd $ParaView_BUILD_DIR || exit 1 # Change to build folder
|
||||
echo " Starting make"
|
||||
time make -j $WM_NCOMPPROCS
|
||||
echo " Done make"
|
||||
@ -421,43 +420,49 @@ makeParaView()
|
||||
#
|
||||
installParaView()
|
||||
{
|
||||
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
|
||||
cd $ParaView_BUILD_DIR || exit 1 # Change to build folder
|
||||
echo " Installing ParaView to $ParaView_DIR"
|
||||
|
||||
make install
|
||||
|
||||
cat<< INFO
|
||||
# System or non-system installation of QT?
|
||||
local qmake qtLib QT_VERSION
|
||||
if qmake=$(findQtMake 2>/dev/null)
|
||||
then
|
||||
qtLib=$($qmake -query QT_INSTALL_LIBS)
|
||||
QT_VERSION=$($qmake -query QT_VERSION 2>/dev/null)
|
||||
fi
|
||||
|
||||
---
|
||||
Installation complete for paraview-$ParaView_VERSION
|
||||
/bin/cat<<INFO
|
||||
|
||||
====
|
||||
Installation complete for paraview-$ParaView_VERSION with qt-${QT_VERSION:-none}
|
||||
ParaView_DIR=$ParaView_DIR
|
||||
|
||||
You may need to update the OpenFOAM environment by running:
|
||||
wmRefresh
|
||||
---
|
||||
You may need to update the OpenFOAM environment by running:
|
||||
wmRefresh
|
||||
INFO
|
||||
|
||||
# Non-system installation of QT?
|
||||
if [ "$qmake" != /usr/bin/qmake -a -d "$qtLib" ]
|
||||
then
|
||||
/bin/cat<<INFO
|
||||
|
||||
And adjust your LD_LIBRARY_PATH to include the following:
|
||||
$qtLib
|
||||
INFO
|
||||
fi
|
||||
|
||||
echo "===="
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# 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 "BUILD_SHARED_LIBS:BOOL=ON VTK_USE_RPATH:BOOL=OFF"
|
||||
addCMakeVariable "BUILD_SHARED_LIBS=ON" "BUILD_TESTING=OFF"
|
||||
|
||||
# Include development files in "make install"
|
||||
addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON"
|
||||
|
||||
# Don't build test tree
|
||||
addCMakeVariable "BUILD_TESTING:BOOL=OFF"
|
||||
|
||||
addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT_FILES=ON"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -26,123 +26,50 @@
|
||||
#
|
||||
# Description
|
||||
# Functions for helping relocate a QT installation
|
||||
# To be loaded *after* etc/tools/ThirdPartyFunctions
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Qt-related variables. Initialization at the end of the file.
|
||||
|
||||
qtTYPE=qt-everywhere-opensource-src
|
||||
unset qtVERSION # No default version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Create a qt.conf file in the QT bin/
|
||||
# - this can be modified easily if the qt installation is relocated
|
||||
#
|
||||
createQtConf()
|
||||
{
|
||||
echo "create:"
|
||||
echo " $QT_ARCH_PATH/bin/qt.conf"
|
||||
local confFile="$QT_ARCH_PATH/bin/qt.conf"
|
||||
|
||||
[ -n "$QT_ARCH_PATH" -a -d "$QT_ARCH_PATH/bin" ] || {
|
||||
if [ -n "$QT_ARCH_PATH" -a -d "$QT_ARCH_PATH/bin" ]
|
||||
then
|
||||
/bin/cat << QT_CONF > $confFile
|
||||
[Paths]
|
||||
Prefix=$QT_ARCH_PATH
|
||||
QT_CONF
|
||||
echo " created qt.conf"
|
||||
|
||||
else
|
||||
echo "Error: QT_ARCH_PATH not correctly set"
|
||||
return
|
||||
}
|
||||
|
||||
echo "[Paths]" > $QT_ARCH_PATH/bin/qt.conf
|
||||
echo "Prefix=$QT_ARCH_PATH" >> $QT_ARCH_PATH/bin/qt.conf
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Adjust pkgconfig information
|
||||
# to generalize *location=, -L/... and -I/...
|
||||
# to use ${prefix}
|
||||
#
|
||||
adjustPkgConfig()
|
||||
{
|
||||
echo "edit pkgconfig:"
|
||||
echo " $QT_ARCH_PATH/lib/pkgconfig/*.pc"
|
||||
|
||||
[ -n "$QT_ARCH_PATH" -a -d "$QT_ARCH_PATH/lib/pkgconfig" ] || {
|
||||
echo "Error: QT_ARCH_PATH not correctly set"
|
||||
return
|
||||
}
|
||||
|
||||
(
|
||||
cd $QT_ARCH_PATH/lib/pkgconfig || exit
|
||||
|
||||
unset nfiles
|
||||
for i in *.pc
|
||||
do
|
||||
if [ -f "$i" ]
|
||||
then
|
||||
nfiles="x$nfiles"
|
||||
sed -i \
|
||||
-e 's@\(location=\)'"$QT_ARCH_PATH/"'@\1${prefix}/@' \
|
||||
-e 's@\(-[IL]\)'"$QT_ARCH_PATH/"'@\1${prefix}/@g' \
|
||||
$i
|
||||
fi
|
||||
done
|
||||
echo " edited ${#nfiles} files"
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Change prefix=... and Prefix=... to use ${prefix}
|
||||
#
|
||||
changePrefix()
|
||||
{
|
||||
echo "relocate QT installation to new prefix directory:"
|
||||
echo " $QT_ARCH_PATH"
|
||||
echo "edit:"
|
||||
echo " $QT_ARCH_PATH/bin/qt.conf"
|
||||
echo " $QT_ARCH_PATH/lib/pkgconfig/*.pc"
|
||||
|
||||
[ -n "$QT_ARCH_PATH" -a -d "$QT_ARCH_PATH/bin" -a -d "$QT_ARCH_PATH/lib/pkgconfig" ] || {
|
||||
echo "Error: QT_ARCH_PATH not correctly set"
|
||||
return
|
||||
}
|
||||
|
||||
# adjust qt.conf
|
||||
for i in $QT_ARCH_PATH/bin/qt.conf
|
||||
do
|
||||
if [ -f "$i" ]
|
||||
then
|
||||
nfiles="x$nfiles"
|
||||
sed -i \
|
||||
-e 's@^\([Pp]refix=\).*$@\1'"$QT_ARCH_PATH@" \
|
||||
$i
|
||||
echo " edited 1 file"
|
||||
fi
|
||||
done
|
||||
|
||||
# adjust pkgconfig files
|
||||
(
|
||||
cd $QT_ARCH_PATH/lib/pkgconfig || exit
|
||||
|
||||
unset nfiles
|
||||
for i in *.pc
|
||||
do
|
||||
if [ -f "$i" ]
|
||||
then
|
||||
nfiles="x$nfiles"
|
||||
sed -i \
|
||||
-e 's@^\([Pp]refix=\).*$@\1'"$QT_ARCH_PATH@" \
|
||||
$i
|
||||
fi
|
||||
done
|
||||
echo " edited ${#nfiles} files"
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# create qt.conf and adjustPkgConfig to use ${prefix} internally
|
||||
# create qt.conf and adjust locations to use ${prefix} internally
|
||||
#
|
||||
finalizeQt()
|
||||
{
|
||||
echo "Create/Edit files to ease later relocation of a QT installation"
|
||||
createQtConf
|
||||
adjustPkgConfig
|
||||
pkgconfigAdjust $QT_ARCH_PATH
|
||||
}
|
||||
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -36,6 +36,74 @@ sourceBASE=$WM_THIRD_PARTY_DIR
|
||||
buildBASE=$WM_THIRD_PARTY_DIR/build/$WM_ARCH$WM_COMPILER
|
||||
installBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
|
||||
|
||||
unset BUILD_SUFFIX
|
||||
#------------------------------------------------------------------------------
|
||||
# Force use of gcc/g++
|
||||
useGcc()
|
||||
{
|
||||
export CC=gcc # Use gcc/g++
|
||||
export CXX=g++
|
||||
}
|
||||
|
||||
# Scan arguments for a '-gcc' option, forcing gcc/g++ when found
|
||||
useGccFlag()
|
||||
{
|
||||
for i
|
||||
do
|
||||
if [ "$i" = "-gcc" ]
|
||||
then
|
||||
useGcc
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Return mpiicc (for INTELMPI) or mpicc etc.
|
||||
whichMpicc()
|
||||
{
|
||||
local mpicc
|
||||
case "$WM_MPLIB" in
|
||||
(INTELMPI)
|
||||
mpicc=$(command -v mpiicc) # Try using intel 'mpiicc'
|
||||
;;
|
||||
esac
|
||||
echo "${mpicc:-mpicc}" # mpiicc | mpicc
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Some functions as per OpenFOAM etc/config.sh/functions
|
||||
|
||||
unset -f _foamAddLib _foamAddMan _foamAddPath # Get settings only
|
||||
unset -f _foamEtc
|
||||
|
||||
# Source an etc file
|
||||
_foamEtc()
|
||||
{
|
||||
local file
|
||||
if [ $# -gt 0 ] && file=$($WM_PROJECT_DIR/bin/foamEtcFile "$@")
|
||||
then
|
||||
. $file
|
||||
fi
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Set a suffix for the build
|
||||
# - eg, for -mpi, or -mesa etc
|
||||
#
|
||||
setBuildSuffix()
|
||||
{
|
||||
BUILD_SUFFIX="${1##-}"
|
||||
if [ -n "$BUILD_SUFFIX" ]
|
||||
then
|
||||
BUILD_SUFFIX="-${BUILD_SUFFIX}"
|
||||
else
|
||||
unset BUILD_SUFFIX
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Mostly building without wmake
|
||||
# - disable wmakeScheduler variables
|
||||
@ -86,18 +154,19 @@ _foamIsSystem()
|
||||
|
||||
|
||||
#
|
||||
# try to locate cmake according to the CMAKE_PATH
|
||||
# or just use what is found in the path
|
||||
# Try to locate cmake according to the CMAKE_PATH.
|
||||
#
|
||||
# On success: return the resolved value as output.
|
||||
# On failure: just report what is found in the path.
|
||||
#
|
||||
unset CMAKE_PATH # clear when first loaded
|
||||
findCMake()
|
||||
{
|
||||
local candidate
|
||||
local foundExe
|
||||
local candidate foundExe
|
||||
|
||||
if [ -n "$CMAKE_PATH" ]
|
||||
then
|
||||
# check as directory
|
||||
# Check as directory
|
||||
if [ -d "$CMAKE_PATH" ]
|
||||
then
|
||||
for candidate in \
|
||||
@ -113,7 +182,7 @@ findCMake()
|
||||
done
|
||||
fi
|
||||
|
||||
# check as file, include ThirdParty installation in the search
|
||||
# Check as file, include ThirdParty installation in the search
|
||||
if [ -z "$foundExe" ]
|
||||
then
|
||||
for candidate in \
|
||||
@ -137,9 +206,8 @@ findCMake()
|
||||
then
|
||||
foundExe="$(cd ${foundExe%/cmake} 2>/dev/null && pwd)/cmake"
|
||||
fi
|
||||
|
||||
echo "Using cmake=$foundExe" 1>&2
|
||||
echo "$foundExe"
|
||||
echo $foundExe
|
||||
return 0
|
||||
else
|
||||
cat << NOT_FOUND 1>&2
|
||||
@ -150,26 +218,27 @@ NOT_FOUND
|
||||
fi
|
||||
fi
|
||||
|
||||
# Default to use the path, try resolving (so we know what we are using)
|
||||
foundExe=$(command -v cmake 2> /dev/null) || foundExe=cmake
|
||||
echo "Using cmake=${foundExe:-NotFound}" 1>&2
|
||||
echo "${foundExe:-cmake}"
|
||||
# Default to use the path. Resolve so we know what we are using.
|
||||
foundExe=$(command -v cmake 2> /dev/null) || foundExe=false
|
||||
echo "Using cmake=$foundExe" 1>&2
|
||||
echo $foundExe
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# try to locate qmake according to the QMAKE_PATH
|
||||
# or just use what is found in the path
|
||||
#
|
||||
# On success: return the resolved value as output.
|
||||
# On failure: just report what is found in the path.
|
||||
#
|
||||
unset QMAKE_PATH # clear when first loaded
|
||||
findQtMake()
|
||||
{
|
||||
local candidate
|
||||
local foundExe
|
||||
local candidate foundExe
|
||||
|
||||
if [ -n "$QMAKE_PATH" ]
|
||||
then
|
||||
# check as directory
|
||||
# Check as directory
|
||||
if [ -d "$QMAKE_PATH" ]
|
||||
then
|
||||
for candidate in \
|
||||
@ -185,7 +254,7 @@ findQtMake()
|
||||
done
|
||||
fi
|
||||
|
||||
# check as file, include ThirdParty installation in the search
|
||||
# Check as file, include ThirdParty installation in the search
|
||||
if [ -z "$foundExe" ]
|
||||
then
|
||||
for candidate in \
|
||||
@ -209,9 +278,8 @@ findQtMake()
|
||||
then
|
||||
foundExe="$(cd ${foundExe%/qmake} 2>/dev/null && pwd)/qmake"
|
||||
fi
|
||||
|
||||
echo "Using qmake=$foundExe" 1>&2
|
||||
echo "$foundExe"
|
||||
echo $foundExe
|
||||
return 0
|
||||
else
|
||||
cat << NOT_FOUND 1>&2
|
||||
@ -223,9 +291,106 @@ NOT_FOUND
|
||||
fi
|
||||
|
||||
# Default to use the path, try resolving (so we know what we are using)
|
||||
foundExe=$(command -v qmake 2> /dev/null) || foundExe=qmake
|
||||
echo "Using qmake=${foundExe:-NotFound}" 1>&2
|
||||
echo "${foundExe:-qmake}"
|
||||
foundExe=$(command -v qmake 2> /dev/null) || foundExe=false
|
||||
echo "Using qmake=$foundExe" 1>&2
|
||||
echo $foundExe
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Set a new prefix=... in pkgconfig files
|
||||
#
|
||||
pkgconfigNewPrefix()
|
||||
{
|
||||
local dir="${1%%/}"
|
||||
|
||||
if [ -n "$dir" -a -d "$dir" ]
|
||||
then
|
||||
# Require absolute path, but use logical (not physical) location
|
||||
[ "${dir}" != "${dir#/}" ] || dir=$(cd $dir 2>/dev/null && /bin/pwd -L)
|
||||
# Strip sub-level
|
||||
case "$dir" in (*/pkgconfig) dir="${dir%/*}";; esac
|
||||
# Strip a level
|
||||
case "$dir" in (*/lib | */lib64 | */bin) dir="${dir%/*}";; esac
|
||||
fi
|
||||
|
||||
# Verify that the prefix path is valid
|
||||
# Warning (not an error) - thus no special return code
|
||||
[ -n "$dir" -a -d "$dir" ] || {
|
||||
echo "Warning: invalid prefix directory: $dir" 1>&2
|
||||
return 0
|
||||
}
|
||||
|
||||
echo "Set pkgconfig prefix : $dir"
|
||||
|
||||
local nfiles
|
||||
for libdir in lib/pkgconfig lib64/pkgconfig
|
||||
do
|
||||
unset nfiles
|
||||
[ -d "$dir/$libdir" ] || continue
|
||||
for i in $dir/$libdir/*.pc
|
||||
do
|
||||
if [ -f "$i" -a ! -L "$i" ]
|
||||
then
|
||||
nfiles="x$nfiles"
|
||||
sed -i -e 's@^\(prefix=\).*$@\1'"$dir@" $i
|
||||
fi
|
||||
done
|
||||
echo " $libdir/*.pc (edited ${#nfiles})"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Adjust pkgconfig information to use '${prefix} where possible instead
|
||||
# of directory paths.
|
||||
#
|
||||
# Adjusts includedir=, libdir=, -I/... and -L/... and
|
||||
# any *_location= entries (QT)
|
||||
#
|
||||
pkgconfigAdjust()
|
||||
{
|
||||
local dir="${1%%/}"
|
||||
|
||||
if [ -n "$dir" -a -d "$dir" ]
|
||||
then
|
||||
# Require absolute path, but use logical (not physical) location
|
||||
[ "${dir}" != "${dir#/}" ] || dir=$(cd $dir 2>/dev/null && /bin/pwd -L)
|
||||
# Strip sub-level
|
||||
case "$dir" in (*/pkgconfig) dir="${dir%/*}";; esac
|
||||
# Strip a level
|
||||
case "$dir" in (*/lib | */lib64 | */bin) dir="${dir%/*}";; esac
|
||||
fi
|
||||
|
||||
# Verify that the prefix path is valid
|
||||
# Warning (not an error) - thus no special return code
|
||||
[ -n "$dir" -a -d "$dir" ] || {
|
||||
echo "Warning: invalid prefix directory: $dir" 1>&2
|
||||
return 0
|
||||
}
|
||||
|
||||
echo "Adjust pkgconfig locations : $dir"
|
||||
|
||||
local nfiles
|
||||
for libdir in lib/pkgconfig lib64/pkgconfig
|
||||
do
|
||||
unset nfiles
|
||||
[ -d "$dir/$libdir" ] || continue
|
||||
for i in $dir/$libdir/*.pc
|
||||
do
|
||||
if [ -f "$i" -a ! -L "$i" ]
|
||||
then
|
||||
nfiles="x$nfiles"
|
||||
sed -i \
|
||||
-e 's@^\(includedir=\)'"$dir/"'@\1${prefix}/@' \
|
||||
-e 's@^\(libdir=\)'"$dir/"'@\1${prefix}/@' \
|
||||
-e 's@\(_location=\)'"$dir/"'@\1${prefix}/@' \
|
||||
-e 's@\(-[IL]\)'"$dir/"'@\1${prefix}/@g' \
|
||||
$i
|
||||
fi
|
||||
done
|
||||
echo " $libdir/*.pc (edited ${#nfiles})"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
@ -258,8 +423,6 @@ downloadFile()
|
||||
# $2 = TARGET DIRECTORY (optional)
|
||||
cpMakeFiles()
|
||||
{
|
||||
set +x
|
||||
|
||||
[ "$#" -eq 1 -o "$#" -eq 2 ] || {
|
||||
echo "cpMakeFiles called with incorrect number of arguments $@"
|
||||
return 1
|
||||
@ -291,8 +454,6 @@ cpMakeFiles()
|
||||
cp $wmakeFiles/$i $dst/$d/Make/$b
|
||||
fi
|
||||
done
|
||||
|
||||
set -x
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -30,14 +30,19 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# sourceBASE, buildBASE, installBASE defined in tools/ThirdPartyFunctions
|
||||
# Variables referenced by the functions. Initialization at the end of the file.
|
||||
unset CMAKE_VARIABLES
|
||||
|
||||
# sourceBASE, buildBASE, installBASE and BUILD_SUFFIX
|
||||
# are defined in 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_BUILD_DIR : location of the build
|
||||
# VTK_DIR : location of the installed program
|
||||
#
|
||||
setVtkDirs()
|
||||
@ -62,21 +67,17 @@ setVtkDirs()
|
||||
exit 1
|
||||
}
|
||||
|
||||
# VTK_BINARY_DIR=$buildBASE/VTK-$VTK_VERSION${OBJ_ADD:+-$OBJ_ADD}
|
||||
VTK_BINARY_DIR=$buildBASE/VTK-$VTK_VERSION
|
||||
VTK_BUILD_DIR=$buildBASE/VTK-$VTK_VERSION$BUILD_SUFFIX
|
||||
VTK_DIR=$installBASE/VTK-$VTK_VERSION$BUILD_SUFFIX
|
||||
|
||||
# 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
|
||||
export VTK_SOURCE_DIR VTK_BUILD_DIR VTK_DIR
|
||||
|
||||
echo
|
||||
echo "VTK_SOURCE_DIR=$VTK_SOURCE_DIR"
|
||||
echo "VTK_BINARY_DIR=$VTK_BINARY_DIR"
|
||||
echo "VTK_BUILD_DIR=$VTK_BUILD_DIR"
|
||||
echo "VTK_DIR=$VTK_DIR"
|
||||
|
||||
# Forcefully override the .git path for the VTK source code directory
|
||||
export GIT_DIR=$ParaView_SOURCE_DIR/.git
|
||||
export GIT_DIR=$VTK_SOURCE_DIR/.git # Mask seeing our own git-repo
|
||||
}
|
||||
|
||||
|
||||
@ -121,30 +122,30 @@ configVTK()
|
||||
local cmake=$(findCMake)
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
if [ -d $VTK_BINARY_DIR ]
|
||||
if [ -d $VTK_BUILD_DIR ]
|
||||
then
|
||||
echo "removing old build directory"
|
||||
echo " $VTK_BINARY_DIR"
|
||||
rm -rf $VTK_BINARY_DIR
|
||||
echo " $VTK_BUILD_DIR"
|
||||
rm -rf $VTK_BUILD_DIR
|
||||
fi
|
||||
mkdir -p $VTK_BINARY_DIR
|
||||
mkdir -p $VTK_BUILD_DIR
|
||||
|
||||
addCMakeVariable "CMAKE_BUILD_TYPE:STRING=$buildType"
|
||||
addCMakeVariable "CMAKE_BUILD_TYPE=$BUILD_TYPE"
|
||||
|
||||
cd $VTK_BINARY_DIR || exit 1 # change to build folder
|
||||
cd $VTK_BUILD_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 " Build : $VTK_BUILD_DIR"
|
||||
echo " Target : $VTK_DIR"
|
||||
echo " Build type : $buildType"
|
||||
echo " Cmake : $cmake"
|
||||
echo " cmake : $cmake"
|
||||
echo " Build suffix : ${BUILD_SUFFIX:-none}"
|
||||
echo "----"
|
||||
echo
|
||||
echo "$cmake" \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=$VTK_DIR \
|
||||
-DCMAKE_INSTALL_PREFIX=$VTK_DIR \
|
||||
$CMAKE_VARIABLES \
|
||||
$VTK_SOURCE_DIR
|
||||
echo
|
||||
@ -153,7 +154,7 @@ configVTK()
|
||||
|
||||
# Run cmake to create Makefiles
|
||||
$cmake \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=$VTK_DIR \
|
||||
-DCMAKE_INSTALL_PREFIX=$VTK_DIR \
|
||||
$CMAKE_VARIABLES \
|
||||
$VTK_SOURCE_DIR
|
||||
}
|
||||
@ -165,17 +166,14 @@ configVTK()
|
||||
#
|
||||
makeVTK()
|
||||
{
|
||||
cd $VTK_BINARY_DIR || exit 1 # change to build folder
|
||||
cd $VTK_BUILD_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
|
||||
[ -L lib ] && rm -f lib 2>/dev/null
|
||||
}
|
||||
|
||||
|
||||
@ -184,31 +182,25 @@ makeVTK()
|
||||
#
|
||||
installVTK()
|
||||
{
|
||||
cd $VTK_BINARY_DIR || exit 1 # Change to build folder
|
||||
cd $VTK_BUILD_DIR || exit 1 # Change to build folder
|
||||
echo " Installing VTK to $VTK_DIR"
|
||||
|
||||
make install
|
||||
|
||||
cat<< INFO
|
||||
/bin/cat<<INFO
|
||||
|
||||
---
|
||||
Installation complete for vtk-$VTK_VERSION
|
||||
====
|
||||
Installation complete for vtk-$VTK_VERSION as
|
||||
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"
|
||||
addCMakeVariable "BUILD_SHARED_LIBS=ON" "BUILD_TESTING=OFF"
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -1,21 +1,27 @@
|
||||
# openfoam notes:
|
||||
#-------------------------------*- makefile -*---------------------------------
|
||||
# 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
|
||||
#
|
||||
# - compiled without pthread
|
||||
#
|
||||
# Normally set CCS, CCP by caller
|
||||
|
||||
EXE =
|
||||
LIB = .so
|
||||
OBJ = .o
|
||||
|
||||
MAKE = make
|
||||
AR = gcc
|
||||
AR = $(CC)
|
||||
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
|
||||
CCS ?= $(CC)
|
||||
CCP ?= mpicc
|
||||
CCD = $(CCP)
|
||||
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)
|
||||
@ -24,10 +30,15 @@ endif
|
||||
|
||||
CLIBFLAGS = -shared
|
||||
LDFLAGS = -Xlinker --no-as-needed $(WM_LDFLAGS) -lz -lm -lrt
|
||||
|
||||
MAKE = make
|
||||
CP = cp
|
||||
LEX = flex -Pscotchyy -olex.yy.c
|
||||
CAT = cat
|
||||
LN = ln
|
||||
MKDIR = mkdir
|
||||
MV = mv
|
||||
RANLIB = echo
|
||||
LEX = flex -Pscotchyy -olex.yy.c
|
||||
YACC = bison -pscotchyy -y -b y
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
51
makeADIOS
51
makeADIOS
@ -3,7 +3,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -28,23 +28,23 @@
|
||||
# Description
|
||||
# Build script for ADIOS
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
# Get version info
|
||||
. $WM_PROJECT_DIR/etc/config.sh/functions
|
||||
unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/ADIOS)
|
||||
|
||||
adiosPACKAGE=${adios_version:-adios-none}
|
||||
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# ADIOS version from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/ADIOS
|
||||
|
||||
adiosPACKAGE=${adios_version:-adios-none}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
@ -64,7 +64,7 @@ USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Export WM settings in a form that GNU configure recognizes
|
||||
# Compiler settings for CMake/configure
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
[ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS"
|
||||
@ -74,13 +74,10 @@ USAGE
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-cmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
CMAKE_PATH="${2%%/}"
|
||||
@ -280,9 +277,9 @@ then
|
||||
buildDIR=$buildBASE/$adiosPACKAGE
|
||||
|
||||
cd $ADIOS_SOURCE_DIR || exit 1
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
export GIT_DIR=$ADIOS_SOURCE_DIR/.git
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
|
||||
applyPatch $adiosPACKAGE $ADIOS_SOURCE_DIR
|
||||
|
||||
@ -328,8 +325,7 @@ else
|
||||
(
|
||||
buildDIR=$buildBASE/$adiosPACKAGE
|
||||
cd $ADIOS_SOURCE_DIR || exit 1
|
||||
|
||||
export GIT_DIR=$ADIOS_SOURCE_DIR/.git
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
applyPatch $adiosPACKAGE $ADIOS_SOURCE_DIR
|
||||
|
||||
@ -353,7 +349,8 @@ else
|
||||
cd $buildDIR && $cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=$ADIOS_ARCH_PATH \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_FORTRAN:BOOL=FALSE \
|
||||
-DBUILD_FORTRAN=FALSE \
|
||||
${WM_QUIET:+-DCMAKE_RULE_MESSAGES=OFF} \
|
||||
$ADIOS_SOURCE_DIR \
|
||||
&& make -j $WM_NCOMPPROCS all \
|
||||
&& make install \
|
||||
@ -365,4 +362,4 @@ else
|
||||
}
|
||||
fi
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
78
makeCCMIO
78
makeCCMIO
@ -4,7 +4,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -26,31 +26,31 @@
|
||||
# makeCCMIO
|
||||
#
|
||||
# Description
|
||||
# Build CD-adapco's ccmio library
|
||||
# Build the libccmio 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
|
||||
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
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."
|
||||
echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# libccmio version from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/ccmio
|
||||
|
||||
ccmioPACKAGE=${ccmio_version:-libccmio-2.6.1}
|
||||
targetType=lib # Default is static linkage
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage()
|
||||
{
|
||||
@ -60,13 +60,14 @@ usage()
|
||||
|
||||
Usage: ${0##*/} [OPTION] [lib|libso] [libccmio-VERSION]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-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.
|
||||
Users wishing to obtain the library should contact Siemens PLM (cd-adapco)
|
||||
for terms of use.
|
||||
|
||||
After obtaining the $ccmioPACKAGE library, place in folder
|
||||
|
||||
@ -79,14 +80,14 @@ USAGE
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
lib|libso)
|
||||
targetType="$1"
|
||||
;;
|
||||
@ -100,19 +101,20 @@ do
|
||||
shift
|
||||
done
|
||||
|
||||
# assert: directory must be available
|
||||
[ -d "$ccmioPACKAGE" ] || die "missing source directory '$ccmioPACKAGE'"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
CCMIO_SOURCE_DIR=$sourceBASE/$ccmioPACKAGE
|
||||
CCMIO_ARCH_PATH=$installBASE/$ccmioPACKAGE
|
||||
|
||||
#
|
||||
# Build LIBCCMIO
|
||||
#
|
||||
echo "---------------"
|
||||
CCMIO_SOURCE_DIR=$sourceBASE/$ccmioPACKAGE
|
||||
CCMIO_ARCH_PATH=$installBASE/$ccmioPACKAGE
|
||||
|
||||
# Sources must be available
|
||||
[ -d "$CCMIO_SOURCE_DIR" ] || die "Missing sources: '$ccmioPACKAGE'"
|
||||
|
||||
(
|
||||
cd $CCMIO_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
incDIR=$CCMIO_ARCH_PATH/include/libccmio
|
||||
libDIR=$CCMIO_ARCH_PATH/lib
|
||||
|
||||
@ -120,17 +122,17 @@ echo "---------------"
|
||||
mkdir -p $libDIR 2>/dev/null
|
||||
|
||||
cpMakeFiles libccmio 2>/dev/null
|
||||
set +x
|
||||
|
||||
# Place static libraries in sub-directory:
|
||||
if [ "$targetType" = lib ]
|
||||
then
|
||||
export FOAM_EXT_LIBBIN=$libDIR
|
||||
fi
|
||||
|
||||
if wmake $targetType
|
||||
then
|
||||
# make headers available:
|
||||
# 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
|
||||
)
|
||||
|
||||
|
||||
108
makeCGAL
108
makeCGAL
@ -4,7 +4,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -34,15 +34,51 @@
|
||||
# simply specify a 'system' version. For example,
|
||||
# makeCGAL boost-system gmp-system
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Short-circuit test for an installation
|
||||
if [ "$1" = "-test" ]
|
||||
then
|
||||
[ "$#" -eq 3 ] || { echo "${0##*/} -test : needs 2 argument"; exit 1; }
|
||||
dir="$2" # <- CGAL_ARCH_PATH
|
||||
if [ -d "$dir/include" -a -r "$dir/lib$WM_COMPILER_LIB_ARCH/libCGAL.so" ]
|
||||
then
|
||||
echo " CGAL headers in $dir/include"
|
||||
echo " CGAL libs in $dir/lib$WM_COMPILER_LIB_ARCH"
|
||||
# Additional information about boost
|
||||
dir="$3" # <- BOOST_ARCH_PATH
|
||||
for root in "$dir" /usr
|
||||
do
|
||||
if [ -d "$root/include/boost" \
|
||||
-a -r "$root/lib$WM_COMPILER_LIB_ARCH/libboost_system.so" ]
|
||||
then
|
||||
echo " BOOST headers in $root/include"
|
||||
echo " BOOST libs in $root/lib$WM_COMPILER_LIB_ARCH"
|
||||
break
|
||||
fi
|
||||
done
|
||||
exit 0
|
||||
else
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
# Get CGAL, boost and gmp/mpfr versions
|
||||
. $WM_PROJECT_DIR/etc/config.sh/functions
|
||||
unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only
|
||||
unset BOOST_ARCH_PATH CGAL_ARCH_PATH # purge current values
|
||||
|
||||
# compiler first, let CGAL config override GMP (eg, when there is no GMP)
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler)
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL)
|
||||
unset BOOST_ARCH_PATH CGAL_ARCH_PATH # Purge current values
|
||||
|
||||
# CGAL, boost and gmp/mpfr versions from OpenFOAM etc/config.sh files.
|
||||
# Get compiler first and let CGAL config override GMP (eg, when there is no GMP)
|
||||
_foamEtc config.sh/compiler
|
||||
_foamEtc config.sh/CGAL
|
||||
|
||||
boostPACKAGE=${boost_version:-boost-system}
|
||||
gmpPACKAGE=${gmp_version:-gmp-system}
|
||||
@ -50,22 +86,12 @@ mpfrPACKAGE=${mpfr_version:-mpfr-system}
|
||||
cgalPACKAGE=$cgal_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# 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] [CGAL-VERSION] [boost-VERSION] [gmp-VERSION] [mpfr-VERSION]
|
||||
usage: ${0##*/} [OPTION] [CGAL-VERSION] [boost-VERSION] [gmp-VERSION] [mpfr-VERSION]
|
||||
options:
|
||||
-cmake PATH with cmake from the path given
|
||||
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
@ -82,7 +108,7 @@ options:
|
||||
Normally builds against ThirdParty boost and gmp/mpfr when possible.
|
||||
To override this behaviour (and use the system boost and/or gmp/mpfr),
|
||||
simply specify a 'system' version. For example,
|
||||
$Script boost-system gmp-system
|
||||
${0##*/} boost-system gmp-system
|
||||
|
||||
Use gmp-none to disable use of gmp/mpfr (eg, not available)
|
||||
|
||||
@ -90,7 +116,7 @@ USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Ensure CMake gets the correct C/C++ compiler
|
||||
# Compiler settings for CMake/configure
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
@ -100,16 +126,10 @@ unset optHeadersOnly
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'')
|
||||
# discard empty arguments
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-cmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
CMAKE_PATH="${2%%/}"
|
||||
@ -196,6 +216,7 @@ else
|
||||
|
||||
(
|
||||
cd $BOOST_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
rm -rf $BOOST_ARCH_PATH
|
||||
|
||||
@ -254,11 +275,11 @@ SUMMARY
|
||||
# CGAL-4.9 normally builds into 'lib64', older versions into 'lib'.
|
||||
#
|
||||
# CGAL_SOURCE_DIR : location of the original sources
|
||||
# CGAL_BINARY_DIR : location of the build
|
||||
# CGAL_BUILD_DIR : location of the build
|
||||
# CGAL_ARCH_PATH : installation directory
|
||||
|
||||
CGAL_SOURCE_DIR=$sourceBASE/$cgalPACKAGE
|
||||
CGAL_BINARY_DIR=$buildBASE/$cgalPACKAGE
|
||||
CGAL_BUILD_DIR=$buildBASE/$cgalPACKAGE
|
||||
: ${CGAL_ARCH_PATH:=$installBASE/$cgalPACKAGE} # Fallback
|
||||
|
||||
# gmp/mpfr are installed without compiler name
|
||||
@ -353,21 +374,22 @@ fi
|
||||
|
||||
(
|
||||
# Remove any existing build folder and recreate
|
||||
if [ -d $CGAL_BINARY_DIR ]
|
||||
if [ -d $CGAL_BUILD_DIR ]
|
||||
then
|
||||
echo "removing old build directory"
|
||||
echo " $CGAL_BINARY_DIR"
|
||||
rm -rf $CGAL_BINARY_DIR
|
||||
echo " $CGAL_BUILD_DIR"
|
||||
rm -rf $CGAL_BUILD_DIR
|
||||
fi
|
||||
mkdir -p $CGAL_BINARY_DIR
|
||||
mkdir -p $CGAL_BUILD_DIR
|
||||
|
||||
cd $CGAL_BINARY_DIR || exit 1
|
||||
cd $CGAL_BUILD_DIR || exit 1
|
||||
export GIT_DIR=$CGAL_SOURCE_DIR/.git # Mask seeing our own git-repo
|
||||
|
||||
unset configBoost configGmp configMpfr
|
||||
echo "----"
|
||||
echo "Configuring $cgalPACKAGE with boost $BOOST_VERSION"
|
||||
echo " Source : $CGAL_SOURCE_DIR"
|
||||
echo " Build : $CGAL_BINARY_DIR"
|
||||
echo " Build : $CGAL_BUILD_DIR"
|
||||
echo " Target : $CGAL_ARCH_PATH"
|
||||
|
||||
|
||||
@ -403,7 +425,7 @@ CMAKE_OPTIONS
|
||||
elif _foamIsNone $GMP_ARCH_PATH
|
||||
then
|
||||
echo " disabled : gmp"
|
||||
configGmp="-DCGAL_DISABLE_GMP:BOOL=TRUE" # Also used for mpfr
|
||||
configGmp="-DCGAL_DISABLE_GMP=TRUE" # Also used for mpfr
|
||||
elif [ -d "$GMP_ARCH_PATH" ]
|
||||
then
|
||||
echo " ThirdParty : gmp"
|
||||
@ -425,7 +447,7 @@ CMAKE_OPTIONS
|
||||
elif _foamIsNone $MPFR_ARCH_PATH
|
||||
then
|
||||
echo " disabled : mpfr"
|
||||
configGmp="-DCGAL_DISABLE_GMP:BOOL=TRUE" # Also used for mpfr
|
||||
configGmp="-DCGAL_DISABLE_GMP=TRUE" # Also used for mpfr
|
||||
elif [ -d "$MPFR_ARCH_PATH" ]
|
||||
then
|
||||
echo " ThirdParty : mpfr"
|
||||
@ -449,13 +471,15 @@ CMAKE_OPTIONS
|
||||
-DCMAKE_INSTALL_PREFIX=$CGAL_ARCH_PATH \
|
||||
-DCGAL_INSTALL_LIB_DIR=lib$WM_COMPILER_LIB_ARCH \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DWITH_CGAL_ImageIO=OFF \
|
||||
-DWITH_CGAL_Qt5=OFF \
|
||||
${optHeadersOnly:+-DCGAL_HEADER_ONLY=TRUE} \
|
||||
$configBoost $configGmp $configMpfr \
|
||||
${WM_QUIET:+-DCMAKE_RULE_MESSAGES=OFF} \
|
||||
$CGAL_SOURCE_DIR \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install || exit 1
|
||||
set +x
|
||||
|
||||
echo "----"
|
||||
echo "create '\$CGAL_ARCH_PATH/share/files'"
|
||||
|
||||
64
makeCmake
64
makeCmake
@ -4,7 +4,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -26,21 +26,26 @@
|
||||
# makeCmake
|
||||
#
|
||||
# Description
|
||||
# Build script for cmake
|
||||
# Build script for cmake.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
# Special purpose script, no default version.
|
||||
unset cmakePACKAGE
|
||||
|
||||
# The '-link' option can be used to create a 'cmake-system' pointing
|
||||
# to this version.
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Special purpose script - no default version.
|
||||
unset cmakePACKAGE
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
@ -50,29 +55,31 @@ usage() {
|
||||
usage: ${0##*/} [OPTION] cmake-VERSION
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-link Create additional symlink as 'cmake-system'
|
||||
-help
|
||||
|
||||
* build cmake
|
||||
${cmakePACKAGE:-'unspecified version'}
|
||||
${cmakePACKAGE:-'unspecified'}
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Ensure CMake gets the correct C/CC++ compiler
|
||||
# Compiler settings for CMake/configure
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
unset optLink
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-link)
|
||||
optLink=true
|
||||
;;
|
||||
cmake-[1-9]*)
|
||||
cmakePACKAGE="${1%%/}"
|
||||
@ -86,6 +93,11 @@ done
|
||||
|
||||
[ -n "$cmakePACKAGE" ] || die "The cmake-VERSION was not specified"
|
||||
|
||||
if _foamIsSystem "$cmakePACKAGE"
|
||||
then
|
||||
unset optLink # basic sanity - cannot
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build CMAKE
|
||||
@ -104,6 +116,7 @@ else
|
||||
buildDIR=$buildBASE/$cmakePACKAGE
|
||||
|
||||
cd $CMAKE_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
@ -121,4 +134,19 @@ else
|
||||
}
|
||||
fi
|
||||
|
||||
if [ "$optLink" = true -a -x "$CMAKE_ARCH_PATH/bin/cmake" ]
|
||||
then
|
||||
(
|
||||
cd ${CMAKE_ARCH_PATH%/*} || exit 1
|
||||
if [ -L cmake-system ]
|
||||
then
|
||||
rm cmake-system
|
||||
elif [ -d cmake-system ]
|
||||
then
|
||||
exit 2
|
||||
fi
|
||||
ln -svf $cmakePACKAGE cmake-system
|
||||
)
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
65
makeFFTW
65
makeFFTW
@ -3,7 +3,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -28,24 +28,38 @@
|
||||
# Description
|
||||
# Build script for FFTW
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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}
|
||||
|
||||
# Short-circuit test for an installation
|
||||
if [ "$1" = "-test" ]
|
||||
then
|
||||
[ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; }
|
||||
dir="$2" # <- FFTW_ARCH_PATH
|
||||
if [ -d "$dir/include" -a -r "$dir/lib$WM_COMPILER_LIB_ARCH/libfftw3.so" ]
|
||||
then
|
||||
echo " FFTW headers in $dir/include"
|
||||
echo " FFTW libs in $dir/lib$WM_COMPILER_LIB_ARCH"
|
||||
exit 0
|
||||
else
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# FFTW version from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/FFTW
|
||||
|
||||
fftwPACKAGE=${fftw_version:-fftw-system}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
@ -64,7 +78,7 @@ USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Ensure configure gets the correct C/C++ compiler
|
||||
# Compiler settings for CMake/configure
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
@ -72,16 +86,10 @@ USAGE
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'')
|
||||
# discard empty arguments
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
fftw-[0-9]* | fftw_[0-9]* | fftw-system )
|
||||
fftwPACKAGE="${1%%/}"
|
||||
;;
|
||||
@ -131,6 +139,7 @@ else
|
||||
buildDIR=$buildBASE/$fftwPACKAGE
|
||||
|
||||
cd $FFTW_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
rm -rf $FFTW_ARCH_PATH
|
||||
rm -rf $buildDIR
|
||||
@ -143,9 +152,11 @@ else
|
||||
--libdir=$FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--enable-shared --disable-static \
|
||||
--disable-fortran \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built $fftwPACKAGE"
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built $fftwPACKAGE" \
|
||||
&& pkgconfigAdjust $FFTW_ARCH_PATH
|
||||
) || {
|
||||
echo "Error building: FFTW"
|
||||
exit 1
|
||||
|
||||
73
makeGcc
73
makeGcc
@ -4,7 +4,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -40,13 +40,23 @@
|
||||
#
|
||||
# WM_COMPILER=Gcc51 ./makeGcc -system
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
# 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)
|
||||
[ "${WM_COMPILER#Gcc}" = "$WM_COMPILER" ] && WM_COMPILER=Gcc # Force gcc
|
||||
WM_COMPILER_TYPE=ThirdParty # Ensure we get the correct settings
|
||||
|
||||
# Default GCC, mpfr, gmp and mpc versions from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/compiler
|
||||
|
||||
gmpPACKAGE=${gmp_version:-gmp-system}
|
||||
mpfrPACKAGE=${mpfr_version:-mpfr-system}
|
||||
@ -54,23 +64,12 @@ mpcPACKAGE=${mpc_version:-mpc-system}
|
||||
gccPACKAGE=$gcc_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# 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] [gcc-VERSION] [gmp-VERSION] [mpfr-VERSION] [mpc-VERSION]
|
||||
usage: ${0##*/} [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)
|
||||
@ -96,9 +95,9 @@ unset optThreadSafe # unset=auto
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
|
||||
-multi*)
|
||||
optMultilib=enable
|
||||
;;
|
||||
@ -165,6 +164,18 @@ GMP_ARCH_PATH=$installBASE/$gmpPACKAGE
|
||||
MPFR_ARCH_PATH=$installBASE/$mpfrPACKAGE
|
||||
MPC_ARCH_PATH=$installBASE/$mpcPACKAGE
|
||||
|
||||
# Prefix <dir> to LD_LIBRARY_PATH, if it exists. 0 on success, 1 on failure
|
||||
addLib()
|
||||
{
|
||||
if [ -d "$1" ]
|
||||
then
|
||||
export LD_LIBRARY_PATH=$1:$LD_LIBRARY_PATH
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# ================
|
||||
# Build GMP
|
||||
@ -184,6 +195,7 @@ else
|
||||
buildDIR=$buildBASE/$gmpPACKAGE
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
@ -195,6 +207,7 @@ else
|
||||
--prefix=$GMP_ARCH_PATH \
|
||||
--libdir=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--enable-cxx \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $gmpPACKAGE"
|
||||
@ -204,10 +217,8 @@ else
|
||||
}
|
||||
fi
|
||||
|
||||
if [ -d "$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ]
|
||||
if addLib "$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
|
||||
@ -236,6 +247,7 @@ else
|
||||
buildDIR=$buildBASE/$mpfrPACKAGE
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
@ -251,6 +263,7 @@ else
|
||||
--prefix=$MPFR_ARCH_PATH \
|
||||
--libdir=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
$configGMP $configOpt \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $mpfrPACKAGE"
|
||||
@ -260,10 +273,8 @@ else
|
||||
}
|
||||
fi
|
||||
|
||||
if [ -d "$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ]
|
||||
if addLib "$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
then
|
||||
_foamAddLib "$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
|
||||
configMPFR=$(cat <<CONFIG_OPTIONS
|
||||
--with-mpfr-include=$MPFR_ARCH_PATH/include \
|
||||
--with-mpfr-lib=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
@ -292,6 +303,7 @@ else
|
||||
buildDIR=$buildBASE/$mpcPACKAGE
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
@ -303,6 +315,7 @@ else
|
||||
--prefix=$MPC_ARCH_PATH \
|
||||
--libdir=$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
$configGMP $configMPFR \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $mpcPACKAGE"
|
||||
@ -312,10 +325,8 @@ else
|
||||
}
|
||||
fi
|
||||
|
||||
if [ -d "$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ]
|
||||
if addLib "$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
then
|
||||
_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
|
||||
@ -348,6 +359,7 @@ else
|
||||
buildDIR=$buildBASE/$gccPACKAGE
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
@ -368,6 +380,7 @@ else
|
||||
--with-system-zlib \
|
||||
$configGMP $configMPFR $configMPC $configOpt \
|
||||
MAKEINFO=missing \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $gccPACKAGE"
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -28,24 +28,23 @@
|
||||
# Description
|
||||
# Build script for gperftools
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
# Get gperftools version
|
||||
. $WM_PROJECT_DIR/etc/config.sh/functions
|
||||
unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only
|
||||
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/gperftools)
|
||||
|
||||
gperftoolsPACKAGE=${gperftools_version:-gperftools-system}
|
||||
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Gperftools version from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/gperftools
|
||||
|
||||
gperftoolsPACKAGE=${gperftools_version:-gperftools-system}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
@ -64,7 +63,7 @@ USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Ensure configure gets the correct C/C++ compiler
|
||||
# Compiler settings for CMake/configure
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
@ -72,13 +71,10 @@ USAGE
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
gperftools-[0-9]* | gperftools-svn* | gperftools-git)
|
||||
gperftoolsPACKAGE="${1%%/}"
|
||||
;;
|
||||
@ -119,8 +115,8 @@ else
|
||||
buildDIR=$buildBASE/$gperftoolsPACKAGE
|
||||
|
||||
cd $GPERFTOOLS_SOURCE_DIR || exit 1
|
||||
|
||||
make distclean 2>/dev/null
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
|
||||
rm -rf $GPERFTOOLS_ARCH_PATH
|
||||
rm -rf $buildDIR
|
||||
@ -130,6 +126,7 @@ else
|
||||
set -x
|
||||
$GPERFTOOLS_SOURCE_DIR/configure \
|
||||
--prefix=$GPERFTOOLS_ARCH_PATH \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $gperftoolsPACKAGE" \
|
||||
|
||||
95
makeLLVM
95
makeLLVM
@ -4,7 +4,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -30,45 +30,38 @@
|
||||
#
|
||||
# Note
|
||||
# - Ensure that you always use matching versions between llvm and clang.
|
||||
# - The LLVM components reside in the LLVM tools/ subdirectory
|
||||
# - LLVM components such as clang reside in the LLVM tools/ subdirectory
|
||||
#
|
||||
# Example, building from svn repository:
|
||||
# 1) Checkout LLVM:
|
||||
# svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm-svn
|
||||
# For example, when building from tar files (version 4.0.0)
|
||||
#
|
||||
# 2) Checkout Clang, in the correct location
|
||||
# cd llvm-svn/tools
|
||||
# svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
|
||||
# cd -
|
||||
# 1) Unpack LLVM:
|
||||
# tar -xJf llvm-4.0.0.src.tar.xz
|
||||
# mv llvm-4.0.0.src llvm-4.0.0
|
||||
#
|
||||
# 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
|
||||
# 2) Unpack Clang (also know as cfe):
|
||||
# tar -xJf cfe-4.0.0.src.tar.xz
|
||||
# mv cfe-4.0.0.src llvm-4.0.0/tools/clang
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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
|
||||
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."
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
[ "${WM_COMPILER#Clang}" = "$WM_COMPILER" ] && WM_COMPILER=Clang # Force clang
|
||||
WM_COMPILER_TYPE=ThirdParty # Ensure we get the correct settings
|
||||
|
||||
# LLVM/Clang version from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/compiler
|
||||
|
||||
llvmPACKAGE=$clang_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
@ -88,7 +81,7 @@ USAGE
|
||||
exit 1
|
||||
}
|
||||
#-----------------------------------------------------------------------------
|
||||
# Ensure CMake gets the correct C/C++ compiler
|
||||
# Compiler settings for CMake/configure
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
@ -96,13 +89,10 @@ USAGE
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-cmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
CMAKE_PATH="${2%%/}"
|
||||
@ -111,6 +101,9 @@ do
|
||||
llvm-[0-9]* | llvm-svn*)
|
||||
llvmPACKAGE="${1%%/}"
|
||||
;;
|
||||
[1-9]*)
|
||||
llvmPACKAGE="llvm-${1%%/}"
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
@ -127,12 +120,12 @@ installBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH
|
||||
|
||||
# Build LLVM (clang)
|
||||
# LLVM_SOURCE_DIR : location of the original sources
|
||||
# LLVM_BINARY_DIR : location of the build
|
||||
# LLVM_BUILD_DIR : location of the build
|
||||
# LLVM_ARCH_PATH : location of the installed program
|
||||
# - Strip any trailing '.src' from the proper names
|
||||
|
||||
LLVM_SOURCE_DIR=$sourceBASE/$llvmPACKAGE
|
||||
LLVM_BINARY_DIR=$buildBASE/${llvmPACKAGE%%.src}
|
||||
LLVM_BUILD_DIR=$buildBASE/${llvmPACKAGE%%.src}
|
||||
LLVM_ARCH_PATH=$installBASE/${llvmPACKAGE%%.src}
|
||||
|
||||
#
|
||||
@ -151,11 +144,12 @@ then
|
||||
echo
|
||||
(
|
||||
cd $LLVM_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $LLVM_BINARY_DIR
|
||||
mkdir -p $LLVM_BINARY_DIR
|
||||
cd $LLVM_BINARY_DIR
|
||||
rm -rf $LLVM_BUILD_DIR
|
||||
mkdir -p $LLVM_BUILD_DIR
|
||||
cd $LLVM_BUILD_DIR
|
||||
|
||||
set -x
|
||||
$LLVM_SOURCE_DIR/configure \
|
||||
@ -163,6 +157,7 @@ then
|
||||
--with-gcc-toolchain=$(which gcc | sed s%/bin/gcc%%) \
|
||||
--enable-optimized \
|
||||
--enable-shared \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $llvmPACKAGE"
|
||||
@ -178,10 +173,11 @@ else
|
||||
echo
|
||||
(
|
||||
cd $LLVM_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
rm -rf $LLVM_BINARY_DIR
|
||||
mkdir -p $LLVM_BINARY_DIR
|
||||
cd $LLVM_BINARY_DIR
|
||||
rm -rf $LLVM_BUILD_DIR
|
||||
mkdir -p $LLVM_BUILD_DIR
|
||||
cd $LLVM_BUILD_DIR
|
||||
|
||||
cmake=$(findCMake)
|
||||
|
||||
@ -189,8 +185,9 @@ else
|
||||
$cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=$LLVM_ARCH_PATH \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS:BOOL=ON \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
$LLVM_SOURCE_DIR \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $llvmPACKAGE"
|
||||
|
||||
186
makeMGridGen
Executable file
186
makeMGridGen
Executable file
@ -0,0 +1,186 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017 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
|
||||
# makeMGridGen
|
||||
#
|
||||
# Description
|
||||
# Build script for MGridGen (serial)
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from ThirdParty 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
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# mgridgen version from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/mgridgen
|
||||
|
||||
mgridgenPACKAGE=${MGRIDGEN_VERSION:-mgridgen-none}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [mgridgen-VERSION]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* Build MGridGen
|
||||
$mgridgenPACKAGE
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Compiler settings for CMake/configure
|
||||
[ -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)
|
||||
useGcc # Use gcc/g++
|
||||
;;
|
||||
mgridgen-[1-9]* | MGridGen-[1-9]* | parmgridgen-[1-9]* | ParMGridGen-[1-9]*)
|
||||
mgridgenPACKAGE="${1%%/}"
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$mgridgenPACKAGE" ] || die "The mgridgen-VERSION was not specified"
|
||||
|
||||
# nothing to build
|
||||
if _foamIsNone "$mgridgenPACKAGE"
|
||||
then
|
||||
echo "Using mgridgen-none (skip ThirdParty build of MGridGen)"
|
||||
exit 0
|
||||
elif _foamIsSystem "$mgridgenPACKAGE"
|
||||
then
|
||||
echo "Using mgridgen-system"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build MGridGen
|
||||
|
||||
# MGRIDGEN_SOURCE_DIR : location of the original sources
|
||||
# MGRIDGEN_ARCH_PATH : installation directory
|
||||
|
||||
MGRIDGEN_SOURCE_DIR=$WM_THIRD_PARTY_DIR/$mgridgenPACKAGE
|
||||
MGRIDGEN_ARCH_PATH=$installBASE$WM_PRECISION_OPTION$WM_LABEL_OPTION/$mgridgenPACKAGE
|
||||
|
||||
: ${FOAM_MPI:=dummy}
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo "Build mgridgen library $mgridgenPACKAGE"
|
||||
echo
|
||||
|
||||
#
|
||||
# Manual installation
|
||||
#
|
||||
install()
|
||||
{
|
||||
echo "Install into $MGRIDGEN_ARCH_PATH"
|
||||
|
||||
local bindir=$MGRIDGEN_ARCH_PATH/bin
|
||||
local incdir=$MGRIDGEN_ARCH_PATH/include
|
||||
local libdir=$MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
|
||||
for dir in $MGRIDGEN_ARCH_PATH $bindir $incdir $libdir
|
||||
do
|
||||
mkdir -m 0755 -p $dir
|
||||
done
|
||||
|
||||
cp -vf mgridgen.h $incdir
|
||||
cp -vf libmgrid.a $libdir
|
||||
cp -vf mgridgen $bindir
|
||||
|
||||
chmod -R 0644 $incdir/* $libdir/*
|
||||
chmod -R 0755 $bindir/*
|
||||
}
|
||||
|
||||
|
||||
# Needs future adjustment
|
||||
# - for shared library
|
||||
# - for mpi-specific library locations
|
||||
if [ -f $MGRIDGEN_ARCH_PATH/include/mgridgen.h \
|
||||
-a -r $MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmgrid.a ]
|
||||
then
|
||||
echo " MGridGen header in $MGRIDGEN_ARCH_PATH/include"
|
||||
echo " MGridGen libs in $MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" # static
|
||||
echo
|
||||
else
|
||||
(
|
||||
cd $MGRIDGEN_SOURCE_DIR || exit 1
|
||||
[ -e Makefile ] && make realclean 2>/dev/null
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
rm -rf $MGRIDGEN_ARCH_PATH
|
||||
|
||||
serial="${CC:-$WM_CC}" # CC (serial compiler) default=cc
|
||||
# parallel=$(whichMpicc) # PARCC (parallel compiler) default=mpicc
|
||||
# PARCC=$parallel
|
||||
# PARLD=$parallel
|
||||
# PARLIBS="-L../.. -lparmgrid -lmgrid -lm"
|
||||
|
||||
make \
|
||||
COPTIONS="-fPIC" \
|
||||
LDOPTIONS="-fPIC" \
|
||||
CC=$serial \
|
||||
LD=$serial \
|
||||
LIBDIR="-L../.." \
|
||||
LIBS="-L../.. -lmgrid -lm" \
|
||||
make=make \
|
||||
serial \
|
||||
&& install \
|
||||
&& echo "Built: $mgridgenPACKAGE"
|
||||
) || {
|
||||
echo "Error building: $mgridgenPACKAGE"
|
||||
}
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
180
makeMPICH
Executable file
180
makeMPICH
Executable file
@ -0,0 +1,180 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017 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
|
||||
# makeMPICH
|
||||
#
|
||||
# Description
|
||||
# Build script for mpich - legacy (unmaintained) build code!
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Short-circuit test for an installation
|
||||
if [ "$1" = "-test" ]
|
||||
then
|
||||
[ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; }
|
||||
dir="$2" # <- MPI_ARCH_PATH
|
||||
if [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpich.so" ]
|
||||
then
|
||||
echo "Have mpich shared library (${dir##*/})"
|
||||
exit 0
|
||||
elif [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpich.a" ]
|
||||
then
|
||||
echo "Have mpich static library (${dir##*/})"
|
||||
exit 0
|
||||
else
|
||||
echo "No mpich libraries found: ${dir:-not-specified}"
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
# Transition
|
||||
# ~~~~~~~~~~
|
||||
_foamAddLib() { true; }
|
||||
_foamAddMan() { true; }
|
||||
_foamAddPath() { true; }
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
WM_MPLIB=MPICH # Ensure we get the correct MPI
|
||||
|
||||
# mpich version from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/mpi
|
||||
|
||||
mpiPACKAGE=${FOAM_MPI:-mpich-system}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [mpich-VERSION]
|
||||
options:
|
||||
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* build mpich with
|
||||
${mpiPACKAGE:-'unspecified mpich version'}
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Compiler settings for CMake/configure
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
mpich*)
|
||||
mpiPACKAGE="${1%%/}"
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$mpiPACKAGE" ] || die "The mpich-VERSION was not specified"
|
||||
|
||||
# Nothing to build
|
||||
if _foamIsNone "$mpiPACKAGE"
|
||||
then
|
||||
echo "Using mpich-none (skip ThirdParty build of mpich)"
|
||||
exit 0
|
||||
elif _foamIsSystem "$mpiPACKAGE"
|
||||
then
|
||||
echo "Using mpich-system (skip ThirdParty build of mpich)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build mpich
|
||||
#
|
||||
# MPI_SOURCE_DIR : location of the original sources
|
||||
# MPI_ARCH_PATH : installation directory
|
||||
|
||||
MPI_SOURCE_DIR=$sourceBASE/$mpiPACKAGE
|
||||
MPI_ARCH_PATH=$installBASE/$mpiPACKAGE
|
||||
|
||||
if [ -r "$MPI_ARCH_PATH/lib_ARCH/libmpi.so" ]
|
||||
then
|
||||
echo "Already has shared library"
|
||||
elif [ -r "$MPI_ARCH_PATH/lib/libmpi.a" ]
|
||||
then
|
||||
echo "Already has static library"
|
||||
else
|
||||
echo "Starting build: $WM_MPLIB ($mpiPACKAGE)"
|
||||
echo
|
||||
|
||||
(
|
||||
# configuration options:
|
||||
unset configOpt
|
||||
# end of configuration options
|
||||
# ----------------------------
|
||||
|
||||
cd $MPI_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
|
||||
rm -rf $MPI_ARCH_PATH
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
|
||||
set -x
|
||||
$MPI_SOURCE_DIR/configure \
|
||||
--prefix=$MPI_ARCH_PATH \
|
||||
--disable-fortran --disable-g \
|
||||
--libdir=$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--enable-shared --disable-static \
|
||||
$configOpt \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $mpiPACKAGE" \
|
||||
&& pkgconfigAdjust $MPI_ARCH_PATH
|
||||
) || {
|
||||
echo "Error building: $mpiPACKAGE"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
72
makeMesa
72
makeMesa
@ -3,7 +3,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -32,22 +32,27 @@
|
||||
# Building with mesa-12.x.x fails to create an include/GL directory and
|
||||
# an "osmesa.h" file. Both make it fairly useless for off-screen VTK.
|
||||
#
|
||||
# Building with mesa-11.x is fine and mesa-13.x also seems to be okay.
|
||||
# Building with mesa-11.x, mesa-13.x and mesa-17.x seems to be okay.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
# Special purpose script, no default version.
|
||||
unset mesaPACKAGE
|
||||
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
unset vtk_version mesa_version # Purge current values
|
||||
|
||||
# mesa version from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/vtk
|
||||
|
||||
mesaPACKAGE=$mesa_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
@ -66,27 +71,28 @@ USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Ensure configure gets the correct C/C++ compiler
|
||||
# Compiler settings for CMake/configure
|
||||
[ -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
|
||||
case "$WM_COMPILER_TYPE-$WM_COMPILER" in
|
||||
ThirdParty-Clang*)
|
||||
thirdPartyClang=true
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
unset thirdPartyClang
|
||||
;;
|
||||
esac
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
useGcc
|
||||
unset thirdPartyClang
|
||||
;;
|
||||
mesa-*)
|
||||
@ -142,6 +148,17 @@ fi
|
||||
MESA_SOURCE_DIR=$sourceBASE/$mesaPACKAGE
|
||||
MESA_ARCH_PATH=$installBASE/$mesaPACKAGE
|
||||
|
||||
#
|
||||
# Manual adjustments to mesa
|
||||
# - avoid GLES (GLES1) since <GLES/gl.h> may mask the <GL/gl.h> header
|
||||
adjustMESA()
|
||||
{
|
||||
pkgconfigAdjust $MESA_ARCH_PATH
|
||||
|
||||
\rm -rf $MESA_ARCH_PATH/include/GLES $MESA_ARCH_PATH/include/GLES1
|
||||
echo "removed all gles1 includes"
|
||||
}
|
||||
|
||||
(
|
||||
# configuration options:
|
||||
unset configOpt
|
||||
@ -156,6 +173,7 @@ MESA_ARCH_PATH=$installBASE/$mesaPACKAGE
|
||||
buildDIR=$buildBASE/$mesaPACKAGE
|
||||
|
||||
cd $MESA_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
# remove any existing build
|
||||
rm -rf $MESA_ARCH_PATH
|
||||
@ -184,16 +202,20 @@ MESA_ARCH_PATH=$installBASE/$mesaPACKAGE
|
||||
--disable-xvmc \
|
||||
--disable-glx \
|
||||
--disable-dri \
|
||||
--disable-gbm \
|
||||
--disable-egl \
|
||||
--disable-gles1 \
|
||||
--enable-texture-float \
|
||||
--enable-gallium-osmesa --with-gallium-drivers=swrast \
|
||||
$configOpt \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built $mesaPACKAGE"
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built $mesaPACKAGE" \
|
||||
&& adjustMESA
|
||||
) || {
|
||||
echo "Error building: MESA"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
194
makeOPENMPI
Executable file
194
makeOPENMPI
Executable file
@ -0,0 +1,194 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017 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
|
||||
# makeOPENMPI
|
||||
#
|
||||
# Description
|
||||
# Build script for openmpi
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Short-circuit test for an installation
|
||||
if [ "$1" = "-test" ]
|
||||
then
|
||||
[ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; }
|
||||
dir="$2" # <- MPI_ARCH_PATH
|
||||
if [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpi.so" ]
|
||||
then
|
||||
echo " Have openmpi shared library (${dir##*/})"
|
||||
exit 0
|
||||
elif [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ]
|
||||
then
|
||||
echo " Have openmpi static library (${dir##*/})"
|
||||
exit 0
|
||||
else
|
||||
echo "No openmpi libraries found: ${dir:-not-specified}"
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
# Transition
|
||||
# ~~~~~~~~~~
|
||||
_foamAddLib() { true; }
|
||||
_foamAddMan() { true; }
|
||||
_foamAddPath() { true; }
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
WM_MPLIB=OPENMPI # Ensure we get the correct MPI
|
||||
|
||||
# openmpi version from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/mpi
|
||||
|
||||
mpiPACKAGE=${FOAM_MPI:-openmpi-system}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [openmpi-VERSION]
|
||||
options:
|
||||
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* build openmpi with
|
||||
${mpiPACKAGE:-'unspecified openmpi version'}
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Compiler settings for CMake/configure
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
openmpi-[0-9]* | openmpi_[0-9]* | openmpi-system )
|
||||
mpiPACKAGE="${1%%/}"
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$mpiPACKAGE" ] || die "The openmpi-VERSION was not specified"
|
||||
|
||||
# Nothing to build
|
||||
if _foamIsNone "$mpiPACKAGE"
|
||||
then
|
||||
echo "Using openmpi-none (skip ThirdParty build of openmpi)"
|
||||
exit 0
|
||||
elif _foamIsSystem "$mpiPACKAGE"
|
||||
then
|
||||
echo "Using openmpi-system (skip ThirdParty build of openmpi)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build openmpi
|
||||
#
|
||||
# MPI_SOURCE_DIR : location of the original sources
|
||||
# MPI_ARCH_PATH : installation directory
|
||||
|
||||
MPI_SOURCE_DIR=$sourceBASE/$mpiPACKAGE
|
||||
MPI_ARCH_PATH=$installBASE/$mpiPACKAGE
|
||||
|
||||
if [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.so" ]
|
||||
then
|
||||
echo "Already has shared library"
|
||||
elif [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ]
|
||||
then
|
||||
echo "Already has static library"
|
||||
else
|
||||
echo "Starting build: $WM_MPLIB ($mpiPACKAGE)"
|
||||
echo
|
||||
|
||||
(
|
||||
# configuration options:
|
||||
# Start with GridEngine support - builds without external libraries
|
||||
configOpt="--with-sge"
|
||||
|
||||
# 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
|
||||
|
||||
# end of configuration options
|
||||
# ----------------------------
|
||||
|
||||
buildDIR=$buildBASE/$mpiPACKAGE
|
||||
|
||||
cd $MPI_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
|
||||
rm -rf $MPI_ARCH_PATH
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
|
||||
set -x
|
||||
$MPI_SOURCE_DIR/configure \
|
||||
--prefix=$MPI_ARCH_PATH \
|
||||
--libdir=$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--disable-orterun-prefix-by-default \
|
||||
--enable-shared --disable-static \
|
||||
--enable-mpi-fortran=none \
|
||||
--disable-mpi-profile \
|
||||
$configOpt \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $mpiPACKAGE" \
|
||||
&& pkgconfigAdjust $MPI_ARCH_PATH
|
||||
) || {
|
||||
echo "Error building: $mpiPACKAGE"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
162
makeParaView
162
makeParaView
@ -4,7 +4,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -33,104 +33,70 @@
|
||||
#
|
||||
# Note the capitalization of ParaView in the directory names.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
# Get ParaView_VERSION location from OpenFOAM config file
|
||||
. $WM_PROJECT_DIR/etc/config.sh/functions
|
||||
unset -f _foamAddPath _foamAddLib # get settings only
|
||||
unset ParaView_VERSION # purge current values
|
||||
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/paraview)
|
||||
|
||||
: ${ParaView_VERSION##*-}
|
||||
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
. etc/tools/ParaViewFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# USER OPTIONS:
|
||||
# ~~~~~~~~~~~~~
|
||||
|
||||
# MPI support:
|
||||
# use 0 or unset MPI_MAX_PROCS for no upper-limit
|
||||
withMPI=false
|
||||
MPI_MAX_PROCS=32
|
||||
unset ParaView_VERSION # Purge current values
|
||||
|
||||
# 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/lib$WM_COMPILER_LIB_ARCH/libpython2.6.so.1.0"
|
||||
# ParaView_VERSION from etc/config.sh file:
|
||||
_foamEtc config.sh/paraview
|
||||
|
||||
# MESA graphics support:
|
||||
withMESA=false
|
||||
MESA_INCLUDE="/usr/include/GL"
|
||||
MESA_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
|
||||
ParaView_VERSION="${ParaView_VERSION##*-}" # Without prefix
|
||||
|
||||
# extra QT gui support (useful for some third party apps)
|
||||
withQT=true
|
||||
|
||||
# Set the path to the Qt-4.5 (or later) qmake if the system Qt is older
|
||||
QMAKE_PATH=""
|
||||
|
||||
# Set the path to cmake
|
||||
CMAKE_PATH=""
|
||||
# Set initial ParaView_MAJOR based on current value of ParaView_VERSION
|
||||
setParaViewVersion ${ParaView_VERSION:-none}
|
||||
|
||||
# New rendering backend (starting with paraview 5.0).
|
||||
# Default to auto-config based on paraview version
|
||||
withGL2=auto
|
||||
withGL2=auto # auto-config based on version
|
||||
|
||||
#
|
||||
# NO FURTHER EDITING BELOW THIS LINE
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
Script=${0##*/}
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
: ${ParaView_VERSION:=none} # some dummy value for usage information
|
||||
exec 1>&2
|
||||
: ${ParaView_VERSION:=none} # some dummy value for usage information
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: $Script [OPTION] [paraview-VERSION] [CMAKE-OPTION]
|
||||
usage: ${0##*/} [OPTION] [paraview-VERSION] [CMAKE-OPTION]
|
||||
options:
|
||||
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-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)
|
||||
-gl2 with new rendering backend (default: auto)
|
||||
-mesa with mesa
|
||||
-mesa-prefix DIR location of mesa installation (sets -mesa-include, -mesa-lib)
|
||||
-mesa-include DIR location of mesa headers (current: ${MESA_INCLUDE:-none})
|
||||
-mesa-lib PATH path to mesa library (current: ${MESA_LIBRARY:-none})
|
||||
-mpi with mpi
|
||||
-mpi=N with max 'N' mpi processes. N=0 for no upper-limit.
|
||||
-python with python
|
||||
-python-lib PATH path to python library (current: ${PYTHON_LIBRARY:-none})
|
||||
-cmake PATH with cmake from the 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 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)
|
||||
-version VER specify an alternative version (current: $ParaView_VERSION)
|
||||
-major VER specify an alternative major version for special builds
|
||||
-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})
|
||||
-suffix NAME specify a suffix to distinguish the build
|
||||
-help
|
||||
|
||||
The -no-FEATURE option can be used to forcibly disable these features:
|
||||
mesa mpi python qt
|
||||
-no-gl2 | -no-mesa | -no-mpi | -no-python | -no-qt
|
||||
|
||||
CMake options start with a capital letter and contain an '='.
|
||||
For example,
|
||||
$Script BUILD_TESTING=ON
|
||||
${0##*/} BUILD_TESTING=ON
|
||||
to add tests
|
||||
|
||||
For finer control, the build stages can be selected or deselected individually:
|
||||
@ -142,12 +108,12 @@ For finer control, the build stages can be selected or deselected individually:
|
||||
|
||||
* Make and install paraview-$ParaView_VERSION located under
|
||||
\$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
|
||||
-> \$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/paraview-$ParaView_VERSION
|
||||
-> \$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/paraview-$ParaView_VERSION$BUILD_SUFFIX
|
||||
|
||||
To make a different paraview version, simply specify on the command-line.
|
||||
For example,
|
||||
|
||||
./makeParaview 4.4.0
|
||||
./makeParaview 5.0.1
|
||||
|
||||
Or change the \$WM_PROJECT_DIR/etc/config.sh/paraview settings.
|
||||
|
||||
@ -155,45 +121,28 @@ USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Ensure CMake gets the correct C/C++ compiler
|
||||
# Compiler settings for CMake/configure
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
#
|
||||
# Add options based on script name:
|
||||
#
|
||||
case "$Script" in *-mesa*) withMESA=true;; esac
|
||||
case "$Script" in *-mpi*) withMPI=true;; esac
|
||||
case "$Script" in *-python*) withPYTHON=true;; esac
|
||||
case "$Script" in *-qt*) withQT=true;; esac
|
||||
|
||||
# Set initial ParaView_MAJOR based on current value of ParaView_VERSION
|
||||
setParaViewVersion ${ParaView_VERSION:-none}
|
||||
|
||||
#
|
||||
# Various building stages
|
||||
#
|
||||
unset runPATCH runCONFIG runMAKE runINSTALL
|
||||
runDEFAULT=true
|
||||
buildType=Release
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
[0-9]* | paraview-[0-9]* | ParaView-[0-9]*) # paraview version
|
||||
setParaViewVersion "${1%%/}"
|
||||
;;
|
||||
[A-Z]*=*) # cmake variables
|
||||
addCMakeVariable "$1"
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
-patch) # stage 0: patch sources
|
||||
runPATCH=true
|
||||
unset runDEFAULT
|
||||
@ -236,23 +185,35 @@ do
|
||||
-mesa)
|
||||
withMESA=true
|
||||
;;
|
||||
-osmesa)
|
||||
echo
|
||||
echo "The -osmesa option is currently ignored"
|
||||
echo
|
||||
# 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"
|
||||
# Could be under (lib64 | lib)
|
||||
MESA_LIBRARY="${2%%/}/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
|
||||
[ -f "$MESA_LIBRARY" ] || MESA_LIBRARY="${2%%/}/lib/libOSMesa.so"
|
||||
shift
|
||||
;;
|
||||
-mesa-include)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
withMESA=true
|
||||
MESA_INCLUDE="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-mesa-lib)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
withMESA=true
|
||||
MESA_LIBRARY="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
@ -274,6 +235,7 @@ do
|
||||
;;
|
||||
-python-lib)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
withPYTHON=true
|
||||
PYTHON_LIBRARY="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
@ -294,6 +256,7 @@ do
|
||||
withQT=false
|
||||
;;
|
||||
-qt-[1-9]*)
|
||||
withQT=true
|
||||
QMAKE_PATH="$installBASE/${1##-}"
|
||||
;;
|
||||
-verbose)
|
||||
@ -311,7 +274,12 @@ do
|
||||
;;
|
||||
-buildType)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
buildType="$2"
|
||||
BUILD_TYPE="$2"
|
||||
shift
|
||||
;;
|
||||
-suffix)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
setBuildSuffix "$2"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
@ -349,6 +317,16 @@ then
|
||||
: ${runINSTALL:=true}
|
||||
fi
|
||||
|
||||
if [ "$withMESA" = true ]
|
||||
then
|
||||
: ${withQT:=false} # No QT unless explicitly requested
|
||||
addCMakeVariable "VTK_USE_X=OFF"
|
||||
# addCMakeVariable "OPENGL_INCLUDE_DIR=IGNORE"
|
||||
# addCMakeVariable "OPENGL_gl_LIBRARY=IGNORE"
|
||||
# addCMakeVariable "OPENGL_xmesa_INCLUDE_DIR=IGNORE"
|
||||
## seems to be unnecessary => addCMakeVariable "VTK_USE_OFFSCREEN=OFF"
|
||||
fi
|
||||
|
||||
|
||||
# Set configure options
|
||||
#~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -380,10 +358,10 @@ Features selected
|
||||
qt ${withQT:-false}
|
||||
---------------------
|
||||
Version information
|
||||
qt ${QtVersion:-none}
|
||||
version ${ParaView_VERSION:-unknown} $(checkVersion)
|
||||
paraview ${ParaView_VERSION:-unknown}
|
||||
major ${ParaView_MAJOR:-unknown}
|
||||
build ${buildType:-Release}
|
||||
build ${BUILD_TYPE:-unknown}
|
||||
qt ${QT_VERSION:-none}
|
||||
---------------------
|
||||
SUMMARY
|
||||
|
||||
|
||||
@ -1,14 +1,16 @@
|
||||
#!/bin/sh
|
||||
# An example for building particular combinations of ParaView with
|
||||
# - mpi (0 = no upper-limit on processes)
|
||||
# - off-screen mesa
|
||||
# - mesa
|
||||
|
||||
mesa=mesa-11.2.2
|
||||
# mesa=mesa-13.0.2
|
||||
# mesa=mesa-11.2.2
|
||||
# mesa=mesa-13.0.3
|
||||
mesa=mesa-17.1.1
|
||||
|
||||
./makeParaView \
|
||||
-mpi=0 \
|
||||
-mesa-prefix $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$mesa \
|
||||
-suffix mesa \
|
||||
"$@"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
35
makeQt
35
makeQt
@ -4,7 +4,7 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
@ -28,16 +28,13 @@
|
||||
# Description
|
||||
# Build script for QT (the qt-everywhere-opensource-src package)
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
qtVERSION=4.8.7
|
||||
qtTYPE=qt-everywhere-opensource-src
|
||||
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
@ -48,18 +45,18 @@ usage() {
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [VERSION]
|
||||
usage: ${0##*/} [OPTION] [qt-VERSION]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* build $qtTYPE, version $qtVERSION
|
||||
* build $qtTYPE, version ${qtVERSION:-undefined}
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Export WM settings in a form that GNU configure recognizes
|
||||
# Compiler/linker settings for CMake/configure
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
[ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS"
|
||||
@ -69,13 +66,10 @@ USAGE
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-qt-[1-9]* | [1-9]* | qt-*)
|
||||
# -qt-VERSION, VERSION, qt-VERSION, qt-everywhere-opensource-src-VERSION
|
||||
qtVERSION="${1%%/}";
|
||||
@ -145,6 +139,7 @@ else
|
||||
buildDIR=$buildBASE/$qtPACKAGE
|
||||
|
||||
cd $QT_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
@ -174,4 +169,4 @@ else
|
||||
}
|
||||
fi
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
96
makeTecio
96
makeTecio
@ -3,7 +3,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -28,32 +28,30 @@
|
||||
# Description
|
||||
# Build Tecplot library
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
[ -n "$FOAM_EXT_LIBBIN" ] || {
|
||||
echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
# Get boost version (headers only)
|
||||
. $WM_PROJECT_DIR/etc/config.sh/functions
|
||||
unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only
|
||||
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL)
|
||||
# Boost version (headers only) from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/CGAL
|
||||
|
||||
boostPACKAGE=${boost_version:-boost-system}
|
||||
tecioPACKAGE=tecio
|
||||
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()
|
||||
{
|
||||
@ -67,7 +65,6 @@ options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
|
||||
* Compile the proprietary libtecio library
|
||||
$tecioPACKAGE
|
||||
with $boostPACKAGE
|
||||
@ -76,7 +73,7 @@ USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Ensure CMake gets the correct C/C++ compiler
|
||||
# Compiler settings for CMake/configure
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
@ -84,13 +81,10 @@ USAGE
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-cmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
CMAKE_PATH="${2%%/}"
|
||||
@ -109,15 +103,23 @@ do
|
||||
shift
|
||||
done
|
||||
|
||||
# assert: directory must be available
|
||||
[ -d "$tecioPACKAGE" ] || die "missing source directory '$tecioPACKAGE'"
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Build TECIO library
|
||||
#
|
||||
# TECIO_SOURCE_DIR : location of the original sources
|
||||
# TECIO_BUILD_DIR : location of the build
|
||||
# TECIO_ARCH_PATH : location of the installed program
|
||||
|
||||
TECIO_SOURCE_DIR=$sourceBASE/$tecioPACKAGE/teciosrc
|
||||
TECIO_BUILD_DIR=$buildBASE/$tecioPACKAGE
|
||||
TECIO_ARCH_PATH=$installBASE/$tecioPACKAGE
|
||||
|
||||
# Sources must be available
|
||||
[ -d "$TECIO_SOURCE_DIR" ] || die "Missing sources '$tecioPACKAGE'"
|
||||
|
||||
|
||||
# Get Boost information
|
||||
# - only headers are required
|
||||
|
||||
: ${BOOST_ARCH_PATH:=$installBASE/$boostPACKAGE} # Fallback
|
||||
|
||||
boostInc="$BOOST_ARCH_PATH/include"
|
||||
@ -136,27 +138,17 @@ then
|
||||
fi
|
||||
|
||||
|
||||
# Build TECIO library
|
||||
#
|
||||
# TECIO_SOURCE_DIR : location of the original sources
|
||||
# TECIO_BINARY_DIR : location of the build
|
||||
# TECIO_ARCH_PATH : location of the installed program
|
||||
|
||||
TECIO_SOURCE_DIR=$sourceBASE/$tecioPACKAGE/teciosrc
|
||||
TECIO_BINARY_DIR=$buildBASE/$tecioPACKAGE
|
||||
TECIO_ARCH_PATH=$installBASE/$tecioPACKAGE
|
||||
|
||||
if [ -d "$TECIO_SOURCE_DIR" ]
|
||||
then
|
||||
(
|
||||
# Remove any existing build folder and recreate
|
||||
if [ -d $TECIO_BINARY_DIR ]
|
||||
if [ -d $TECIO_BUILD_DIR ]
|
||||
then
|
||||
echo "removing old build directory"
|
||||
echo " $TECIO_BINARY_DIR"
|
||||
rm -rf $TECIO_BINARY_DIR
|
||||
echo " $TECIO_BUILD_DIR"
|
||||
rm -rf $TECIO_BUILD_DIR
|
||||
fi
|
||||
mkdir -p $TECIO_BINARY_DIR
|
||||
mkdir -p $TECIO_BUILD_DIR
|
||||
|
||||
rm -rf $TECIO_ARCH_PATH
|
||||
|
||||
@ -164,7 +156,7 @@ then
|
||||
echo "----"
|
||||
echo "Configuring $tecioPACKAGE with boost $BOOST_VERSION"
|
||||
echo " Source : $TECIO_SOURCE_DIR"
|
||||
echo " Build : $TECIO_BINARY_DIR"
|
||||
echo " Build : $TECIO_BUILD_DIR"
|
||||
echo " Target : $TECIO_ARCH_PATH"
|
||||
|
||||
if [ -d "$BOOST_ARCH_PATH" ]
|
||||
@ -178,9 +170,9 @@ then
|
||||
|
||||
echo "----"
|
||||
set -x
|
||||
cd $TECIO_BINARY_DIR && $cmake \
|
||||
cd $TECIO_BUILD_DIR && $cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=$TECIO_ARCH_PATH \
|
||||
-DCMAKE_BINARY_TYPE=Release \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBoost_INCLUDE_DIR=$boostInc \
|
||||
$TECIO_SOURCE_DIR \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
@ -190,7 +182,7 @@ then
|
||||
mkdir -p $TECIO_ARCH_PATH 2>/dev/null
|
||||
|
||||
/bin/cp -pv \
|
||||
$TECIO_BINARY_DIR/libtecio.a \
|
||||
$TECIO_BUILD_DIR/libtecio.a \
|
||||
$TECIO_SOURCE_DIR/TECIO.h \
|
||||
$TECIO_SOURCE_DIR/tecio_Exports.h \
|
||||
$TECIO_ARCH_PATH
|
||||
|
||||
123
makeVTK
123
makeVTK
@ -3,7 +3,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -28,86 +28,72 @@
|
||||
# Description
|
||||
# Make and install VTK.
|
||||
# The VTK sources should be located under one of these locations:
|
||||
# - $WM_THIRD_PARTY_DIR/ParaView-VERSION
|
||||
# - $WM_THIRD_PARTY_DIR/ParaView-vVERSION
|
||||
# - $WM_THIRD_PARTY_DIR/VTK-VERSION
|
||||
#
|
||||
# To use the VTK source from the ParaView source tree, simply make an
|
||||
# appropriate link first. For example,
|
||||
#
|
||||
# (cd $WM_THIRD_PARTY_DIR && ln -s ParaView-v5.2.0/VTK VTK-7.1.0)
|
||||
# ln -s ParaView-v5.3.0/VTK VTK-7.1.0
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
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
|
||||
unset vtk_version mesa_version # Purge current values
|
||||
|
||||
# MESA graphics support:
|
||||
withMESA=false
|
||||
MESA_INCLUDE="/usr/include/GL"
|
||||
MESA_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
|
||||
# vtk version from OpenFOAM etc/config.sh file:
|
||||
_foamEtc config.sh/vtk
|
||||
|
||||
# Set the path to cmake
|
||||
CMAKE_PATH=""
|
||||
VTK_VERSION=$vtk_version
|
||||
|
||||
# New rendering backend (starting with vtk 7?).
|
||||
# Default to auto-config based on VTK version
|
||||
withGL2=auto
|
||||
withGL2=auto # auto-config based on version
|
||||
|
||||
#
|
||||
# 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]
|
||||
usage: ${0##*/} [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 cmake from the 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)
|
||||
-rebuild for repeated builds (-make -install) *use with caution*
|
||||
-gl2 with new rendering backend (default: auto)
|
||||
-mesa with mesa (if not already enabled)
|
||||
-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})
|
||||
-mesa-include DIR location of mesa headers (current: ${MESA_INCLUDE:-none})
|
||||
-mesa-lib PATH path to mesa library (current: ${MESA_LIBRARY:-none})
|
||||
-osmesa with off-screen mesa only
|
||||
-mpi with mpi
|
||||
-mpi=N with max 'N' mpi processes. N=0 for no upper-limit.
|
||||
-cmake PATH with cmake from the path given
|
||||
-verbose verbose output in Makefiles
|
||||
-version VER specify an alternative version (current: $VTK_VERSION)
|
||||
-buildType NAME specify the build type (default: Release)
|
||||
-suffix NAME specify a suffix to distinguish the build
|
||||
-help
|
||||
|
||||
The -no-FEATURE option can be disable these features (if not already disabled):
|
||||
mesa mpi
|
||||
The -no-FEATURE option can be used to forcibly disable these features:
|
||||
-no-gl2 | -no-mesa | -no-mpi
|
||||
|
||||
CMake options start with a capital letter and contain an '='.
|
||||
For example,
|
||||
$Script BUILD_TESTING=ON
|
||||
${0##*/} BUILD_TESTING=ON
|
||||
to add tests and avoid building documentation
|
||||
|
||||
For finer control, the build stages can be selected or deselected individually:
|
||||
-patch -no-patch
|
||||
-config -no-config
|
||||
-make -no-make
|
||||
-install -no-install
|
||||
@ -115,40 +101,40 @@ For finer control, the build stages can be selected or deselected individually:
|
||||
|
||||
* 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
|
||||
-> \$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/VTK-$VTK_VERSION$BUILD_SUFFIX
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Ensure CMake gets the correct C/C++ compiler
|
||||
# Compiler settings for CMake/configure
|
||||
[ -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
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
[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++
|
||||
-patch) # stage 0: patch sources
|
||||
runPATCH=true
|
||||
unset runDEFAULT
|
||||
;;
|
||||
-no-patch)
|
||||
runPATCH=false
|
||||
;;
|
||||
-config) # stage 1: config only
|
||||
runCONFIG=true
|
||||
@ -197,16 +183,20 @@ do
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
withMESA=true
|
||||
MESA_INCLUDE="${2%%/}/include"
|
||||
# Could be under (lib64 | lib)
|
||||
MESA_LIBRARY="${2%%/}/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
|
||||
[ -f "$MESA_LIBRARY" ] || MESA_LIBRARY="${2%%/}/lib/libOSMesa.so"
|
||||
shift
|
||||
;;
|
||||
-mesa-include)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
withMESA=true
|
||||
MESA_INCLUDE="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-mesa-lib)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
withMESA=true
|
||||
MESA_LIBRARY="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
@ -236,7 +226,12 @@ do
|
||||
;;
|
||||
-buildType)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
buildType="$2"
|
||||
BUILD_TYPE="$2"
|
||||
shift
|
||||
;;
|
||||
-suffix)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
setBuildSuffix "$2"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
@ -276,14 +271,14 @@ addMpiSupport # set MPI-specific options
|
||||
addMesaSupport # set MESA-specific options
|
||||
addGL2Support # new rendering backend
|
||||
|
||||
# set off-screen only options
|
||||
# Set off-screen options
|
||||
if [ "$withOSMESA" = true ]
|
||||
then
|
||||
addCMakeVariable "VTK_USE_X:BOOL=OFF"
|
||||
addCMakeVariable "VTK_USE_X=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"
|
||||
addCMakeVariable "OPENGL_xmesa_INCLUDE_DIR=$MESA_INCLUDE"
|
||||
fi
|
||||
|
||||
setVtkDirs # where things are or should be put
|
||||
@ -305,8 +300,8 @@ Features selected
|
||||
mpi ${withMPI:-false}
|
||||
---------------------
|
||||
Version information
|
||||
version ${VTK_VERSION:-unknown}
|
||||
build ${buildType:-Release}
|
||||
vtk ${VTK_VERSION:-unknown}
|
||||
build ${BUILD_TYPE:-unknown}
|
||||
---------------------
|
||||
SUMMARY
|
||||
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
#!/bin/sh
|
||||
# An example for building particular combinations of VTK with
|
||||
# - off-screen mesa
|
||||
# - mesa (off-screen only)
|
||||
|
||||
vtk=VTK-7.1.0
|
||||
vtk=VTK-8.1.0
|
||||
# mesa=mesa-11.2.2
|
||||
mesa=mesa-13.0.1
|
||||
# mesa=mesa-13.0.3
|
||||
mesa=mesa-17.1.1
|
||||
|
||||
./makeVTK \
|
||||
$vtk \
|
||||
|
||||
13
minCmake
13
minCmake
@ -3,7 +3,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -28,12 +28,13 @@
|
||||
# Description
|
||||
# Scour CMakeLists.txt files to report the cmake_minimum required.
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# 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."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
@ -81,7 +82,7 @@ do
|
||||
min=$(sed -n \
|
||||
-e 's/^.*cmake_minimum.*VERSION *\([0-9.][0-9.]*\).*/\1/p' \
|
||||
"$dir/CMakeLists.txt" \
|
||||
2>/dev/null)
|
||||
2>/dev/null | head -1)
|
||||
|
||||
if [ -n "$min" ]
|
||||
then
|
||||
|
||||
16
sources.txt
16
sources.txt
@ -1,7 +1,17 @@
|
||||
Third-Party Sources
|
||||
===================
|
||||
|
||||
OpenFOAM+ v1612
|
||||
OpenFOAM-1706
|
||||
---------------
|
||||
CGAL-4.9.1
|
||||
ParaView-5.4.0
|
||||
boost_1_64_0
|
||||
fftw-3.3.6-pl1
|
||||
openmpi-1.10.4
|
||||
scotch_6.0.3
|
||||
|
||||
|
||||
OpenFOAM-1612
|
||||
---------------
|
||||
CGAL-4.9
|
||||
ParaView-5.0.1
|
||||
@ -11,7 +21,7 @@ openmpi-1.10.4
|
||||
scotch_6.0.3
|
||||
|
||||
|
||||
OpenFOAM+ v1606
|
||||
OpenFOAM-1606
|
||||
---------------
|
||||
CGAL-4.8
|
||||
ParaView-5.0.1
|
||||
@ -21,7 +31,7 @@ openmpi-1.10.2
|
||||
scotch_6.0.3
|
||||
|
||||
|
||||
OpenFOAM+ v3.0
|
||||
OpenFOAM v3.0+
|
||||
---------------
|
||||
CGAL-4.7
|
||||
ParaView-4.4.0
|
||||
|
||||
Reference in New Issue
Block a user