diff --git a/.gitignore b/.gitignore index 4565478..b058312 100644 --- a/.gitignore +++ b/.gitignore @@ -1,79 +1,32 @@ -# man gitignore for more information - -# editor and misc backup files - anywhere +# Ignore editor and misc backup files - anywhere *~ .*~ *.bak *.bak[0-9][0-9] -*.orig -*.orig[0-9][0-9] \#*\# -# file-browser settings - anywhere -.directory - -# CVS recovered versions - anywhere -.#* - -# objects and archives - anywhere -*.[oa] -*.la -*.so -*.jar - -# derived files -lex.yy.c - -# Corefiles -core - -# dependency files - anywhere -*.dep - -# lnInclude (symlink) folders - anywhere -lnInclude - -# build folders - anywhere -linux*Gcc*/ -linux*Icc*/ -linuxming*/ -SiCortex*Gcc*/ -solaris*Gcc*/ -SunOS*Gcc*/ - -# source packages - anywhere +# Ignore source packages - anywhere *.tar.bz2 *.tar.gz *.tar *.tgz *.gtgz +# Ignore build and platforms folders +build/ +platforms/ -# ignore the persistent .build tag in the main directory -/.build +# Generated files in the main directory +/*.html -# ignore .timeStamp in the main directory -/.timeStamp - -# ignore unpacked sources in the main directory (match pkg-ver) +# Ignore unpacked sources in the main directory (match pkg-ver) # this also matches symlinks /*[-_][0-9]* -# ignore all sub-directories +# Ignore all top-level sub-directories /*/ -# do not ignore these ones +# Do not ignore these ones though !/etc/ -# do not ignore the first level of these ones -!/malloc/ -/malloc/*/ -!/malloc/fbsdmalloc/ - -# ignore these extra symlinks -libccmio - -# track this patched version directly - until metis gets dropped -!/metis-5.0pre2/libmetis/metislib.h - -# end-of-file +# End-of-file diff --git a/Allclean b/Allclean index 524fde9..de5c650 100755 --- a/Allclean +++ b/Allclean @@ -59,4 +59,4 @@ done [ -d platforms ] && ( set -x; rm -rf platforms/* ) -# ----------------------------------------------------------------- end-of-file +#------------------------------------------------------------------------------ diff --git a/Allwmake b/Allwmake index 1b06a50..977a53e 100755 --- a/Allwmake +++ b/Allwmake @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -77,7 +77,7 @@ OPENMPI) set -x cd "${MPI_ARCH_PATH##*/}" || exit 1 # change to openmpi-VERSION - make distclean 2>/dev/null + [ -e Makefile ] && make distclean 2>/dev/null rm -rf $MPI_ARCH_PATH # start with GridEngine support, @@ -122,7 +122,7 @@ MPICH) set -x cd $MPI_HOME || exit 1 # change to mpich-VERSION - make distclean 2>/dev/null + [ -e Makefile ] && make distclean 2>/dev/null rm -rf $MPI_ARCH_PATH rm util/machines/machines.* @@ -173,12 +173,12 @@ esac # get SCOTCH_VERSION, SCOTCH_ARCH_PATH -if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config/scotch.sh` +if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch` then . $settings else echo - echo "Error: no config/scotch.sh settings" + echo "Error: no config.sh/scotch settings" echo fi @@ -306,14 +306,14 @@ then fi -# ----------------------------------------------------------------------------- +#------------------------------------------------------------------------------ # Metis is optional echo ======================================== echo Build Metis decomposition # get METIS_VERSION, METIS_ARCH_PATH -if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config/metis.sh` +if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis` then . $settings fi @@ -330,6 +330,24 @@ then ( set -x cd $METIS_VERSION || exit 1 + + if [ "$WM_PRECISION_OPTION" = "DP" ] + then + FLOAT_PRECISION=64 + elif [ "$WM_PRECISION_OPTION" = "SP" ] + then + FLOAT_PRECISION=32 + else + echo " Metis pre-configure error:" + echo " WM_PRECISION_OPTION is neither DP nor SP" + exit 1 + fi + + # Change user settings automatically + sed -i -e 's=\(#define IDXTYPEWIDTH\).*=\1 '$WM_LABEL_SIZE'=' \ + -e 's=\(#define REALTYPEWIDTH\).*=\1 '$FLOAT_PRECISION'=' \ + include/metis.h + make config shared=1 prefix=$METIS_ARCH_PATH make -j $WM_NCOMPPROCS install cp $METIS_ARCH_PATH/lib/libmetis.so $FOAM_EXT_LIBBIN @@ -365,4 +383,4 @@ echo ======================================== echo -# ----------------------------------------------------------------- end-of-file +#------------------------------------------------------------------------------ diff --git a/AllwmakeLibccmio b/AllwmakeLibccmio index a3473a5..87330ee 100755 --- a/AllwmakeLibccmio +++ b/AllwmakeLibccmio @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -26,7 +26,7 @@ # AllwmakeLibccmio # # Description -# Get and build CD-adapco's ccmio library +# Build CD-adapco's ccmio library # #------------------------------------------------------------------------------ packageDir=libccmio-2.6.1 @@ -82,4 +82,4 @@ set -x ) -# ----------------------------------------------------------------- end-of-file +#------------------------------------------------------------------------------ diff --git a/README.html b/README.html deleted file mode 100644 index 97a4a94..0000000 --- a/README.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - -OpenFOAM-3.0.x Third-Party packages - - - - - - - -
-

OpenFOAM-3.0.x Third-Party packages

-
-

Table of Contents

- -
- -
-

1 Description

-
-

-Scripts for building third-party packages. -

-
-
-
-

2 Order of execution:

-
-
    -
  • makeGcc (recommended if the system gcc is < 4.7) -
  • -
  • Allwmake (Builds OpenMPI, Scotch etc.) -
  • -
  • makeCmake (if the system cmake version is < 2.8.8) -
  • -
  • makeParaView4 -
  • -
-
-
-

2.1 Optional

-
-
    -
  • AllwmakeLibccmio (Only required for conversion of STAR-CCM+ meshes) -
  • -
  • Allclean (Only required to save disk space) -
  • -
-
-
-
-
-

3 Versions and locations to download the third party packages

-
-
- - - - -
-
-

4 Notes

-
-
-

4.1 Building ParaView-4.3.1/4.4.0

-
-

-The ParaView-4.3.1/4.4.0 source-pack provided by KitWare will not build and -install correctly without a minor correction: lines 653-656 must be removed -or commented from file -ThirdParty-3.0.0/ParaView-4.?.?/Qt/Components/CMakeLists.txt after -unpacking and renaming the ParaView-4.?.? directory. This is because the -file ui_pqExportStateWizard.h referred to in the lines 653-656: -

-
- -
if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
-  install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
-          DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
-endif()
-
-
-

-does not exist and cannot be installed causing the build and installation to -fail. -

- -

-Additionally for ParaView-4.4.0 there is a bug in the STL reader which can -be patched by running the following command from within the ThirdParty-??? -directory: -

- -

-See also http://www.openfoam.org/mantisbt/view.php?id=1887 -

-
-
- -
-

4.2 Building ParaView-4.1.0

-
-

-On Ubuntu 14.10 and higher, OpenSuSE 13.2 and probably other recent -GNU/Linux distributions there is an issue in the GL libraries requiring a -change to the vtkXOpenGLRenderWindow.cxx file in ParaView: Uncomment line 30 -

- -

-#define GLX_GLXEXT_LEGACY -

-
-
-
-
-
-

Date: 3rd November 2015

-

Created: 2015-11-03 Tue 17:54

-

Emacs 24.5 (Org mode 8.2.10)

-

Validate

-
- - diff --git a/README.org b/README.org index 01f8d50..9129eb3 100644 --- a/README.org +++ b/README.org @@ -1,11 +1,11 @@ # -*- mode: org; -*- # -#+TITLE: OpenFOAM-3.0.x Third-Party packages +#+TITLE: OpenFOAM Third-Party packages #+AUTHOR: The OpenFOAM Foundation -#+DATE: 3rd November 2015 +#+DATE: 31th May 2016 #+LINK: http://www.openfoam.org #+OPTIONS: author:nil ^:{} -# Copyright (c) 2015 OpenFOAM Foundation. +# Copyright (c) 2014-2016 OpenFOAM Foundation. * Description Scripts for building third-party packages. @@ -13,7 +13,7 @@ + makeGcc (recommended if the system gcc is < 4.7) + Allwmake (Builds OpenMPI, Scotch etc.) + makeCmake (if the system cmake version is < 2.8.8) - + makeParaView4 + + makeParaView *** Optional + AllwmakeLibccmio (Only required for conversion of STAR-CCM+ meshes) + Allclean (Only required to save disk space) @@ -28,24 +28,29 @@ + mpc http://www.multiprecision.org/ http://www.multiprecision.org/mpc/download/mpc-1.0.1.tar.gz *** Parallel Processing - + OpenMPI: http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.0.tar.bz2 - + Scotch/PtScotch: https://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz +***** Scotch + + Scotch/PtScotch: https://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz +***** OpenMPI + + OpenMPI: http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.2.tar.bz2 *** ParaView - + cmake http://www.cmake.org/files/v3.2/cmake-3.2.1.tar.gz - + ParaView http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz + + cmake http://www.cmake.org/files/v3.2/cmake-3.2.1.tar.gz + + ParaView-4.4.0 http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz + + ParaView-5.0.1 http://www.paraview.org/files/v5.0/ParaView-v5.0.1-source.tar.gz + but may need patching to compile (See [[Notes]]). *** CGAL - + CGAL https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.7/CGAL-4.7.tar.xz + + CGAL https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.8/CGAL-4.8.tar.xz + boost http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.bz2/download *** Miscellaneous + libccmio http://portal.nersc.gov/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz * Notes -*** Building ParaView-4.3.1/4.4.0 - The ParaView-4.3.1/4.4.0 source-pack provided by KitWare will not build and - install correctly without a minor correction: lines 653-656 must be removed - or commented from file - /ThirdParty-3.0.0/ParaView-4.?.?/Qt/Components/CMakeLists.txt/ after - unpacking and renaming the ParaView-4.?.? directory. This is because the - file ui_pqExportStateWizard.h referred to in the lines 653-656: +*** Building ParaView-4.3.1/4.4.0/5.0.0/5.0.1 + The ParaView-4.3.1/4.4.0/5.0.0 source-pack provided by KitWare will not + build and install correctly without a minor correction: lines 653-656 + (650-653 in ParaView-5.0.0, 659-662 in ParaView-5.0.1) must be removed or + commented from file + /ThirdParty-???/ParaView-[45].?.?/Qt/Components/CMakeLists.txt/ after + unpacking and renaming the ParaView-[45].?.? directory. This is because the + file ui_pqExportStateWizard.h referred to in #+begin_src C if(PARAVIEW_INSTALL_DEVELOPMENT_FILES) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h" @@ -60,7 +65,17 @@ directory: + wget https://raw.githubusercontent.com/Kitware/VTK/40937e934308e5009e80769dc0c451ee4f157749/IO/Geometry/vtkSTLReader.cxx -O ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx See also http://www.openfoam.org/mantisbt/view.php?id=1887 - +*** Building ParaView-5.0.1 with gcc-6.1.0 +***** Add support for gcc-6.?.? + The following cmake files + + ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake + + ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake + specifically limit the gcc versions supported. To add support gcc-6.?.? + replace '[345]' with '[3456]' +***** SciberQuestToolKit + The SciberQuestToolKit plugin fails to compile with gcc-6.1.0 and causes + the compilation of ParaView to halt. The easiest solution is to delete + the ParaView-5.0.1/Plugins/SciberQuestToolKit directory. *** Building ParaView-4.1.0 On Ubuntu 14.10 and higher, OpenSuSE 13.2 and probably other recent GNU/Linux distributions there is an issue in the GL libraries requiring a diff --git a/etc/tools/ParaView4Functions b/etc/tools/ParaView3Functions similarity index 86% rename from etc/tools/ParaView4Functions rename to etc/tools/ParaView3Functions index 04323da..fe7e9fd 100644 --- a/etc/tools/ParaView4Functions +++ b/etc/tools/ParaView3Functions @@ -2,7 +2,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -63,6 +63,9 @@ setDirs() echo "ParaView_SOURCE_DIR=$ParaView_SOURCE_DIR" echo "ParaView_BINARY_DIR=$ParaView_BINARY_DIR" echo "ParaView_DIR=$ParaView_DIR" + + # Forcefully override the .git path for the ParaView source code directory + export GIT_DIR=$ParaView_SOURCE_DIR/.git } @@ -71,7 +74,10 @@ setDirs() # setVersion() { - [ "$#" -ge 1 ] && ParaView_VERSION="${1##paraview-}" + if [ "$#" -ge 1 ] + then + ParaView_VERSION="${1##paraview-}" + fi # the major version is "." ParaView_MAJOR=$(echo $ParaView_VERSION | \ @@ -152,7 +158,10 @@ addCMakeVariable() # addVerbosity() { - [ "$withVERBOSE" = true ] && addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE" + if [ "${withVERBOSE:=false}" = true ] + then + addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE" + fi } @@ -161,7 +170,11 @@ addVerbosity() # addMpiSupport() { - [ "${withMPI:=false}" = true ] || return + if [ "${withMPI:=false}" != true ] + then + return + fi + OBJ_ADD="$OBJ_ADD-mpi" addCMakeVariable "PARAVIEW_USE_MPI=ON VTK_USE_MPI=ON" @@ -174,7 +187,11 @@ addMpiSupport() # addPythonSupport() { - [ "${withPYTHON:=false}" = true ] || return + if [ "${withPYTHON:=false}" != true ] + then + return + fi + OBJ_ADD="$OBJ_ADD-py" if pythonBin=$(which python 2>/dev/null) @@ -242,7 +259,10 @@ addPythonSupport() # addMesaSupport() { - [ "${withMESA:=false}" = true ] || return + if [ "${withMESA:=false}" != true ] + then + return + fi if [ -d "$MESA_INCLUDE" -a -f "$MESA_LIBRARY" ] then @@ -266,7 +286,10 @@ addMesaSupport() addQtSupport() { QtVersion=none - [ "${withQT:=false}" = true ] || return + if [ "${withQT:=false}" != true ] + then + return + fi addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON" @@ -325,10 +348,10 @@ addQtSupport() QtMajor=$1 QtMinor=$2 - if [ $QtMajor -lt 4 ] || [ $QtMajor -eq 4 -a $QtMinor -lt 5 ] + if [ $QtMajor -ne 4 -o $QtMajor -eq 4 -a $QtMinor -lt 5 ] then echo "*** Error: Qt version provided < 4.5" - echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.5 " + echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.5 and < 5.0" echo "*** e.g." echo "*** -qmake /usr/local/qt-4.6.2/bin/qmake" echo "*** -qmake $installBASE/qt-4.6.2/bin/qmake" @@ -380,7 +403,10 @@ configParaView() fi # default to using cmake from the path - [ -n "$cmakeExe" ] || cmakeExe=cmake + if [ -z "$cmakeExe" ] + then + cmakeExe=cmake + fi # remove any existing build folder and recreate if [ -d $ParaView_BINARY_DIR ] @@ -391,8 +417,6 @@ configParaView() fi mkdir -p $ParaView_BINARY_DIR - addCMakeVariable "CMAKE_BUILD_TYPE:STRING=$buildType" - cd $ParaView_BINARY_DIR || exit 1 # change to build folder echo "----" @@ -404,7 +428,6 @@ configParaView() echo " Source : $ParaView_SOURCE_DIR" echo " Build : $ParaView_BINARY_DIR" echo " Target : $ParaView_DIR" - echo " Build type : $buildType" echo "----" echo echo "$cmakeExe" \ @@ -436,7 +459,10 @@ makeParaView() # remove lib if it is a link # (how this was previously handled before 'make install' worked) - [ -L lib ] && rm lib 2>/dev/null + if [ -L lib ] + then + rm lib 2>/dev/null + fi } @@ -450,6 +476,19 @@ installParaView() make install +# hack for missing files after install of version 3.14.1 + echo "Copying missing files to install folder" + CMAKE_SRC_DIR=$ParaView_SOURCE_DIR/CMake + CMAKE_INSTALL_DIR=$ParaView_DIR/lib/paraview-$ParaView_MAJOR/CMake + cp -f $ParaView_SOURCE_DIR/ParaViewUse.cmake $CMAKE_INSTALL_DIR + cp -f $CMAKE_SRC_DIR/generate_proxydocumentation.cmake $CMAKE_INSTALL_DIR + cp -f $CMAKE_SRC_DIR/smxml_to_xml.xsl $CMAKE_INSTALL_DIR + cp -f $CMAKE_SRC_DIR/xml_to_html.xsl $CMAKE_INSTALL_DIR + cp -f $CMAKE_SRC_DIR/xml_to_wiki.xsl.in $CMAKE_INSTALL_DIR + cp -f $CMAKE_SRC_DIR/generate_qhp.cmake $CMAKE_INSTALL_DIR + unset CMAKE_SRC_DIR CMAKE_INSTALL_DIR +# --- end hack + cat<< INFO --- Installation complete for paraview-$ParaView_VERSION @@ -472,16 +511,20 @@ unset withMESA MESA_INCLUDE MESA_LIBRARY unset withPYTHON PYTHON_INCLUDE PYTHON_LIBRARY unset CMAKE_VARIABLES unset OBJ_ADD -unset buildType + # start with these general settings +addCMakeVariable "VTK_USE_TK:BOOL=OFF" addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON VTK_USE_RPATH:BOOL=OFF" +addCMakeVariable "CMAKE_BUILD_TYPE:STRING=Release" # include development files in "make install" -addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON" +addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT:BOOL=ON" # don't build test tree addCMakeVariable "BUILD_TESTING:BOOL=OFF" +# remove dependency on WebKit +# addCMakeVariable VTK_QT_USE_WEBKIT:BOOL=OFF -# ----------------------------------------------------------------- end-of-file +#------------------------------------------------------------------------------ diff --git a/etc/tools/ParaViewFunctions b/etc/tools/ParaViewFunctions index 96bf8a4..e5fb200 100644 --- a/etc/tools/ParaViewFunctions +++ b/etc/tools/ParaViewFunctions @@ -2,7 +2,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -32,7 +32,7 @@ # buildBASE, installBASE defined from tools/ThirdPartyFunctions # -# where things are or should be put +# Where things are or should be put # ParaView_VERSION and ParaView_MAJOR should already have been set # # ParaView_SOURCE_DIR : location of the original sources @@ -63,17 +63,23 @@ setDirs() echo "ParaView_SOURCE_DIR=$ParaView_SOURCE_DIR" echo "ParaView_BINARY_DIR=$ParaView_BINARY_DIR" echo "ParaView_DIR=$ParaView_DIR" + + # Forcefully override the .git path for the ParaView source code directory + export GIT_DIR=$ParaView_SOURCE_DIR/.git } # -# set ParaView_VERSION and adjust ParaView_MAJOR accordingly +# Set ParaView_VERSION and adjust ParaView_MAJOR accordingly # setVersion() { - [ "$#" -ge 1 ] && ParaView_VERSION="${1##paraview-}" + if [ "$#" -ge 1 ] + then + ParaView_VERSION="${1##paraview-}" + fi - # the major version is "." + # The major version is "." ParaView_MAJOR=$(echo $ParaView_VERSION | \ sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/') @@ -84,7 +90,7 @@ setVersion() #------------------------------------------------------------------------------ # -# extract and echo date stamp information from +# Extract and echo date stamp information from # VTK/Utilities/kwsys/kwsysDateStamp.cmake # since the order of the entries is already correct, can use simple sed script # @@ -101,9 +107,8 @@ echoDateStamp() ) } - # -# extract version information from +# Extract version information from # CMakeLists.txt # since the order of the entries is already correct, can use simple sed script # @@ -121,7 +126,7 @@ getVersion() } # -# compare version information +# Compare version information # checkVersion() { @@ -135,7 +140,7 @@ checkVersion() } # -# set CMake cache variables +# Set CMake cache variables # addCMakeVariable() { @@ -148,20 +153,27 @@ addCMakeVariable() # -# verbose makefiles +# Verbose makefiles # addVerbosity() { - [ "$withVERBOSE" = true ] && addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE" + if [ "${withVERBOSE:=false}" = true ] + then + addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE" + fi } # -# define options for mpi support +# Define options for mpi support # addMpiSupport() { - [ "${withMPI:=false}" = true ] || return + if [ "${withMPI:=false}" != true ] + then + return + fi + OBJ_ADD="$OBJ_ADD-mpi" addCMakeVariable "PARAVIEW_USE_MPI=ON VTK_USE_MPI=ON" @@ -170,18 +182,22 @@ addMpiSupport() # -# define options for python support +# Define options for python support # addPythonSupport() { - [ "${withPYTHON:=false}" = true ] || return + if [ "${withPYTHON:=false}" != true ] + then + return + fi + OBJ_ADD="$OBJ_ADD-py" if pythonBin=$(which python 2>/dev/null) then if [ -n "$PYTHON_LIBRARY" ] then - # check $PYTHON_LIBRARY if it has been set + # Check $PYTHON_LIBRARY if it has been set if [ ! -e "$PYTHON_LIBRARY" ] then echo "*** Error: libpython not found at location specified " \ @@ -208,7 +224,7 @@ addPythonSupport() pythonMajor=$(echo $PYTHON_LIBRARY | sed 's/.*libpython\(.*\)\.so.*/\1/') pythonInclude=/usr/include/python$pythonMajor - # note - we could also allow for a PYTHON_INCLUDE variable ... + # Note - we could also allow for a PYTHON_INCLUDE variable ... [ -d "$pythonInclude" ] || { echo " No python headers found in $pythonInclude/" echo " Please install python headers or deactivate " @@ -238,11 +254,14 @@ addPythonSupport() # -# define options for mesa support +# Define options for mesa support # addMesaSupport() { - [ "${withMESA:=false}" = true ] || return + if [ "${withMESA:=false}" != true ] + then + return + fi if [ -d "$MESA_INCLUDE" -a -f "$MESA_LIBRARY" ] then @@ -266,7 +285,11 @@ addMesaSupport() addQtSupport() { QtVersion=none - [ "${withQT:=false}" = true ] || return + + if [ "${withQT:=false}" != true ] + then + return + fi addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON" @@ -289,7 +312,7 @@ addQtSupport() if [ -n "$qmakeExe" ] then - # use absolute path + # Use absolute path if [ "${qmakeExe#/}" = "$qmakeExe" ] then qmakeExe="$(cd ${qmakeExe%/qmake} 2>/dev/null && pwd)/qmake" @@ -303,7 +326,7 @@ addQtSupport() fi fi - # default to using qmake from the path + # Default to using qmake from the path if [ -n "$qmakeExe" ] then addCMakeVariable "QT_QMAKE_EXECUTABLE:FILEPATH=$qmakeExe" @@ -319,16 +342,16 @@ addQtSupport() # parse -> "Using Qt version X.Y.Z in ..." QtVersion=$($qmakeExe -query QT_VERSION) - # split Major.Minor.Revision - could also use IFS hacking + # Split Major.Minor.Revision - could also use IFS hacking set -- $(echo "$QtVersion" | sed -e 's/\./ /g') QtMajor=$1 QtMinor=$2 - if [[ ($QtMajor -lt 4) || ($QtMajor -eq 4 && $QtMinor -lt 5) ]] + if [ $QtMajor -lt 4 -o $QtMajor -eq 4 -a $QtMinor -lt 5 ] then echo "*** Error: Qt version provided < 4.5" - echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.5 " + echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.5" echo "*** e.g." echo "*** -qmake /usr/local/qt-4.6.2/bin/qmake" echo "*** -qmake $installBASE/qt-4.6.2/bin/qmake" @@ -342,7 +365,7 @@ addQtSupport() # -# configure via cmake, but don't actually build anything +# Configure via cmake, but don't actually build anything # configParaView() { @@ -365,7 +388,7 @@ configParaView() if [ -n "$cmakeExe" ] then - # use absolute path + # Use absolute path if [ "${cmakeExe#/}" = "$cmakeExe" ] then cmakeExe="$(cd ${cmakeExe%/cmake} 2>/dev/null && pwd)/cmake" @@ -379,10 +402,13 @@ configParaView() fi fi - # default to using cmake from the path - [ -n "$cmakeExe" ] || cmakeExe=cmake + # Default to using cmake from the path + if [ -z "$cmakeExe" ] + then + cmakeExe=cmake + fi - # remove any existing build folder and recreate + # Remove any existing build folder and recreate if [ -d $ParaView_BINARY_DIR ] then echo "removing old build directory" @@ -391,7 +417,9 @@ configParaView() fi mkdir -p $ParaView_BINARY_DIR - cd $ParaView_BINARY_DIR || exit 1 # change to build folder + addCMakeVariable "CMAKE_BUILD_TYPE:STRING=$buildType" + + cd $ParaView_BINARY_DIR || exit 1 # Change to build folder echo "----" echo "Configuring paraview-$ParaView_VERSION (major version: $ParaView_MAJOR)" @@ -402,6 +430,7 @@ configParaView() echo " Source : $ParaView_SOURCE_DIR" echo " Build : $ParaView_BINARY_DIR" echo " Target : $ParaView_DIR" + echo " Build type : $buildType" echo "----" echo echo "$cmakeExe" \ @@ -412,7 +441,7 @@ configParaView() echo "----" echo - # run cmake to create Makefiles + # Run cmake to create Makefiles $cmakeExe \ -DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \ $CMAKE_VARIABLES \ @@ -421,53 +450,40 @@ configParaView() # -# invoke make +# Invoke make # also link bin/ to lib/paraview-* for development without installation # makeParaView() { - cd $ParaView_BINARY_DIR || exit 1 # change to build folder + cd $ParaView_BINARY_DIR || exit 1 # Change to build folder echo " Starting make" time make -j $WM_NCOMPPROCS echo " Done make" - # remove lib if it is a link + # Remove lib if it is a link # (how this was previously handled before 'make install' worked) - [ -L lib ] && rm lib 2>/dev/null + if [ -L lib ] + then + rm lib 2>/dev/null + fi } # -# install the program +# Install the program # installParaView() { - cd $ParaView_BINARY_DIR || exit 1 # change to build folder + cd $ParaView_BINARY_DIR || exit 1 # Change to build folder echo " Installing ParaView to $ParaView_DIR" make install -# hack for missing files after install of version 3.14.1 - echo "Copying missing files to install folder" - CMAKE_SRC_DIR=$ParaView_SOURCE_DIR/CMake - CMAKE_INSTALL_DIR=$ParaView_DIR/lib/paraview-$ParaView_MAJOR/CMake - cp -f $ParaView_SOURCE_DIR/ParaViewUse.cmake $CMAKE_INSTALL_DIR - cp -f $CMAKE_SRC_DIR/generate_proxydocumentation.cmake $CMAKE_INSTALL_DIR - cp -f $CMAKE_SRC_DIR/smxml_to_xml.xsl $CMAKE_INSTALL_DIR - cp -f $CMAKE_SRC_DIR/xml_to_html.xsl $CMAKE_INSTALL_DIR - cp -f $CMAKE_SRC_DIR/xml_to_wiki.xsl.in $CMAKE_INSTALL_DIR - cp -f $CMAKE_SRC_DIR/generate_qhp.cmake $CMAKE_INSTALL_DIR - unset CMAKE_SRC_DIR CMAKE_INSTALL_DIR -# --- end hack - cat<< INFO --- Installation complete for paraview-$ParaView_VERSION - Set environment variables: - - export ParaView_DIR=$ParaView_DIR - export PATH=\$ParaView_DIR/bin:\$PATH - export PV_PLUGIN_PATH=\$FOAM_LIBBIN/paraview-$ParaView_MAJOR + Now update the environment by running: + wmRefresh --- INFO } @@ -475,27 +491,23 @@ INFO #------------------------------------------------------------------------------ -# clear the referenced variables before using any of the functions +# Clear the referenced variables before using any of the functions unset withMPI withVERBOSE unset withQT QMAKE_PATH unset withMESA MESA_INCLUDE MESA_LIBRARY unset withPYTHON PYTHON_INCLUDE PYTHON_LIBRARY unset CMAKE_VARIABLES unset OBJ_ADD +unset buildType - -# start with these general settings -addCMakeVariable "VTK_USE_TK:BOOL=OFF" +# Start with these general settings addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON VTK_USE_RPATH:BOOL=OFF" -addCMakeVariable "CMAKE_BUILD_TYPE:STRING=Release" -# include development files in "make install" -addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT:BOOL=ON" +# Include development files in "make install" +addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON" -# don't build test tree +# Don't build test tree addCMakeVariable "BUILD_TESTING:BOOL=OFF" -# remove dependency on WebKit -# addCMakeVariable VTK_QT_USE_WEBKIT:BOOL=OFF -# ----------------------------------------------------------------- end-of-file +#------------------------------------------------------------------------------ diff --git a/etc/tools/ThirdPartyFunctions b/etc/tools/ThirdPartyFunctions index a82a569..85c03e9 100644 --- a/etc/tools/ThirdPartyFunctions +++ b/etc/tools/ThirdPartyFunctions @@ -2,7 +2,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -31,12 +31,13 @@ # Define WM_NCOMPPROCS always. #------------------------------------------------------------------------------ -# define the normal build and prefix directories +# Define the normal build and prefix directories buildBASE=$WM_THIRD_PARTY_DIR/build/$WM_ARCH$WM_COMPILER installBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER + # -# mostly building without wmake +# Mostly building without wmake # - disable wmakeScheduler variables # - restrict WM_NCOMPPROCS to local number of cores # @@ -53,7 +54,16 @@ fi # -# download file $1 from url $2 into download/ directory +# If WM_CONTINUE_ON_ERROR not set activate the shell option "stop on error" +# +if [ -z "${WM_CONTINUE_ON_ERROR}" ] +then + set -e +fi + + +# +# Download file $1 from url $2 into download/ directory # downloadFile() { @@ -75,7 +85,7 @@ downloadFile() # -# copy Make/{files,options} from wmakeFiles/PACKAGE +# Copy Make/{files,options} from wmakeFiles/PACKAGE # # $1 = PACKAGE # $2 (optional) TARGET DIRECTORY @@ -119,4 +129,4 @@ cpMakeFiles() } -# ----------------------------------------------------------------- end-of-file +#------------------------------------------------------------------------------ diff --git a/makeCGAL b/makeCGAL index 6291227..0fbd2c8 100755 --- a/makeCGAL +++ b/makeCGAL @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -37,15 +37,22 @@ # Mixing system and ThirdParty for gmp/mpfr is not supported. # #------------------------------------------------------------------------------ + +# Get CGAL, boost and gmp/mpfr versions +. $WM_PROJECT_DIR/etc/config.sh/functions +_foamEval SOURCE_CGAL_VERSIONS_ONLY=yes \ + $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL) +_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler) + set -x -cgalPACKAGE=CGAL-4.7 -boostPACKAGE=boost-system -gmpPACKAGE=gmp-system -mpfrPACKAGE=mpfr-system +cgalPACKAGE=${cgal_version:-CGAL-4.8} +boostPACKAGE=${boost_version:-boost-system} +gmpPACKAGE=${gmp_version:-gmp-system} +mpfrPACKAGE=${mpfr_version:-mpfr-system} #------------------------------------------------------------------------------ -# run from third-party directory only +# Run from third-party directory only wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || { echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR" echo " The environment variables are inconsistent with the installation." @@ -83,11 +90,11 @@ USAGE } -# ensure CMake gets the correct C++ compiler +# Ensure CMake gets the correct C++ compiler [ -n "$WM_CXX" ] && export CXX="$WM_CXX" -# parse options +# Parse options while [ "$#" -gt 0 ] do case "$1" in @@ -159,7 +166,7 @@ then else boostInc="/usr/include" - # for completeness: + # For completeness: # 64-bit needs lib64, but 32-bit needs lib (not lib32) if [ "$WM_ARCH_OPTION" = 64 ] then @@ -170,7 +177,7 @@ else fi -# retrieve boost version: +# Retrieve boost version: if [ -f "$boostInc/boost/version.hpp" ] then BOOST_VERSION_NO=`sed -ne 's/^#define *BOOST_VERSION *\([0-9][0-9]*\).*$/\1/p' $boostInc/boost/version.hpp` @@ -180,6 +187,11 @@ else exit 1 fi +if [ "$cgal_version" = "cgal-system" ] +then + echo "Using system installation of CGAL" + exit 0 +fi # # Build CGAL @@ -201,7 +213,7 @@ GMP_ARCH_PATH=$installBASE/$gmpPACKAGE MPFR_ARCH_PATH=$installBASE/$mpfrPACKAGE ( - # remove any existing build folder and recreate + # Remove any existing build folder and recreate if [ -d $CGAL_BINARY_DIR ] then echo "removing old build directory" @@ -246,13 +258,13 @@ CMAKE_OPTIONS echo " ThirdParty : gmp/mpfr" configGmpMpfr=$(cat < +usage: ${0##*/} [option] [gmp-VERSION] [mpfr-VERSION] [mpc-VERSION] +options: + -no-multilib for 64-bit systems that don't have 32-bit support + -help * build combinations of gmp, mpfr, mpc and gcc $gmpPACKAGE @@ -62,6 +71,7 @@ USAGE exit 1 } +GCC_BUILD_OPTIONS="" # Parse options while [ "$#" -gt 0 ] @@ -70,6 +80,10 @@ do -h | -help) usage ;; + -no-multilib) + GCC_BUILD_OPTIONS="--disable-multilib" + shift + ;; gmp-[4-9]*) gmpPACKAGE="${1%%/}" shift @@ -120,13 +134,6 @@ GMP_ARCH_PATH=$installBASE/$gmpPACKAGE MPFR_ARCH_PATH=$installBASE/$mpfrPACKAGE MPC_ARCH_PATH=$installBASE/$mpcPACKAGE -# mpc is not needed for gcc older than 4.5 -case "$gccPACKAGE" in -gcc-4.[0-4].*) - mpcPACKAGE=false - ;; -esac - # # Build GMP # @@ -151,6 +158,7 @@ else set -x $sourceDIR/configure ABI=$ABI \ --prefix=$GMP_ARCH_PATH \ + --libdir=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ --enable-cxx \ && make -j $WM_NCOMPPROCS \ && make install \ @@ -187,7 +195,9 @@ else set -x $sourceDIR/configure ABI=$ABI \ --prefix=$MPFR_ARCH_PATH \ - --with-gmp=$GMP_ARCH_PATH \ + --libdir=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ + --with-gmp-include=$GMP_ARCH_PATH/include \ + --with-gmp-lib=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ && make -j $WM_NCOMPPROCS \ && make install \ && echo "Built: $mpfrPACKAGE" @@ -206,9 +216,6 @@ echo "---------------" if [ -d $MPC_ARCH_PATH ] then echo "Already built: $mpcPACKAGE" -elif [ "$mpcPACKAGE" = false ] -then - echo "Skip building mpc - not needed for older gcc versions" else echo "Starting build: $mpcPACKAGE" echo @@ -226,8 +233,11 @@ else set -x $sourceDIR/configure ABI=$ABI \ --prefix=$MPC_ARCH_PATH \ - --with-gmp=$GMP_ARCH_PATH \ - --with-mpfr=$MPFR_ARCH_PATH \ + --libdir=$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ + --with-gmp-include=$GMP_ARCH_PATH/include \ + --with-gmp-lib=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ + --with-mpfr-include=$MPFR_ARCH_PATH/include \ + --with-mpfr-lib=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ && make -j $WM_NCOMPPROCS \ && make install \ && echo "Built: $mpcPACKAGE" @@ -263,9 +273,6 @@ else cd $sourceDIR || exit 1 make distclean 2>/dev/null - unset withMpc - [ -d "$MPC_ARCH_PATH" ] && withMpc="--with-mpc=$MPC_ARCH_PATH" - rm -rf $buildDIR mkdir -p $buildDIR cd $buildDIR @@ -273,14 +280,18 @@ else set -x $sourceDIR/configure \ --prefix=$GCC_ARCH_PATH \ - --with-gmp=$GMP_ARCH_PATH \ - --with-mpfr=$MPFR_ARCH_PATH \ - $withMpc \ + --with-gmp-include=$GMP_ARCH_PATH/include \ + --with-gmp-lib=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ + --with-mpfr-include=$MPFR_ARCH_PATH/include \ + --with-mpfr-lib=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ + --with-mpc-include=$MPC_ARCH_PATH/include \ + --with-mpc-lib=$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ --with-pkgversion=OpenFOAM \ --enable-languages=c,c++ \ --enable-__cxa_atexit \ --enable-libstdcxx-allocator=new \ --with-system-zlib \ + $GCC_BUILD_OPTIONS \ MAKEINFO=missing \ && make -j $WM_NCOMPPROCS \ && make install \ @@ -292,4 +303,4 @@ else fi -# ----------------------------------------------------------------- end-of-file +#------------------------------------------------------------------------------ diff --git a/makeGperftools b/makeGperftools index 3bf9bd2..613c332 100755 --- a/makeGperftools +++ b/makeGperftools @@ -115,4 +115,4 @@ else } fi -# ----------------------------------------------------------------- end-of-file +#------------------------------------------------------------------------------ diff --git a/makeLLVM b/makeLLVM index 505d407..0551ead 100755 --- a/makeLLVM +++ b/makeLLVM @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -37,7 +37,12 @@ # cd - # #------------------------------------------------------------------------------ -llvmPACKAGE=llvm-3.6.0 + +# get default llvm version +. $WM_PROJECT_DIR/etc/config.sh/functions +_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler) + +llvmPACKAGE=${clang_version:-llvm-3.6.0} #------------------------------------------------------------------------------ # run from third-party directory only @@ -131,4 +136,4 @@ else } fi -# ----------------------------------------------------------------- end-of-file +#------------------------------------------------------------------------------ diff --git a/makeParaView b/makeParaView index 6de1398..10db8a8 100755 --- a/makeParaView +++ b/makeParaView @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -26,7 +26,7 @@ # makeParaView # # Description -# Make and install paraview for version 3.14.1 and higher +# Make and install paraview 4 or 5 # - place the paraview source under $WM_THIRD_PARTY_DIR/ParaView-VERSION # (note capitalisation) # @@ -107,8 +107,8 @@ The -no-FEATURE option can be disable these features (if not already disabled): CMake options start with a capital letter and contain an '='. For example, - $Script BUILD_TESTING=ON PARAVIEW_GENERATE_PROXY_DOCUMENTATION=OFF -to add tests and avoid building documentation + $Script BUILD_TESTING=ON +to add tests For finer control, the build stages can be selected or deselected individually: -config -no-config @@ -146,6 +146,7 @@ setVersion # unset runCONFIG runMAKE runINSTALL runDEFAULT=true +buildType=Release # parse options while [ "$#" -gt 0 ] @@ -270,6 +271,11 @@ do export ParaView_MAJOR="$2" shift 2 ;; + -buildType) + [ "$#" -ge 2 ] || usage "'$1' option requires an argument" + buildType="$2" + shift 2 + ;; *) usage "unknown option/argument: '$*'" ;; @@ -317,6 +323,7 @@ Version information qt ${QtVersion:-none} version ${ParaView_VERSION:-unknown} major ${ParaView_MAJOR:-unknown} + build ${buildType:-Release} $(checkVersion) --------------------- SUMMARY diff --git a/makeParaView4 b/makeParaView3 similarity index 95% rename from makeParaView4 rename to makeParaView3 index b9a312d..28101ee 100755 --- a/makeParaView4 +++ b/makeParaView3 @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -23,10 +23,10 @@ # along with OpenFOAM. If not, see . # # Script -# makeParaView +# makeParaView3 # # Description -# Make and install paraview +# Make and install paraview for version 3.14.1 and higher # - place the paraview source under $WM_THIRD_PARTY_DIR/ParaView-VERSION # (note capitalisation) # @@ -40,7 +40,7 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || { exit 1 } . etc/tools/ThirdPartyFunctions -. etc/tools/ParaView4Functions +. etc/tools/ParaView3Functions #------------------------------------------------------------------------------ # # USER OPTIONS: @@ -107,8 +107,8 @@ The -no-FEATURE option can be disable these features (if not already disabled): CMake options start with a capital letter and contain an '='. For example, - $Script BUILD_TESTING=ON -to add tests + $Script BUILD_TESTING=ON PARAVIEW_GENERATE_PROXY_DOCUMENTATION=OFF +to add tests and avoid building documentation For finer control, the build stages can be selected or deselected individually: -config -no-config @@ -146,7 +146,6 @@ setVersion # unset runCONFIG runMAKE runINSTALL runDEFAULT=true -buildType=Release # parse options while [ "$#" -gt 0 ] @@ -271,11 +270,6 @@ do export ParaView_MAJOR="$2" shift 2 ;; - -buildType) - [ "$#" -ge 2 ] || usage "'$1' option requires an argument" - buildType="$2" - shift 2 - ;; *) usage "unknown option/argument: '$*'" ;; @@ -323,7 +317,6 @@ Version information qt ${QtVersion:-none} version ${ParaView_VERSION:-unknown} major ${ParaView_MAJOR:-unknown} - build ${buildType:-Release} $(checkVersion) --------------------- SUMMARY @@ -334,4 +327,5 @@ SUMMARY echo echo Done + #------------------------------------------------------------------------------