From 83b101a1b8a73af9530e2f8b6762f868cd6b060c Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@Germany> Date: Tue, 27 May 2008 15:07:34 +0200 Subject: [PATCH] ParaView build fixes * share libs were not getting built * can now build from anywhere if the source is in $WM_PROJECT_INST_DIR * misc. stylistic changes --- bin/buildParaView3.2.1 | 156 ----------------------- bin/{ => tools}/buildParaView3.3-cvs | 44 +++---- bin/{ => tools}/buildParaViewFunctions | 170 ++++++++++++++++--------- 3 files changed, 131 insertions(+), 239 deletions(-) delete mode 100755 bin/buildParaView3.2.1 rename bin/{ => tools}/buildParaView3.3-cvs (71%) rename bin/{ => tools}/buildParaViewFunctions (61%) diff --git a/bin/buildParaView3.2.1 b/bin/buildParaView3.2.1 deleted file mode 100755 index 81a315fcee1..00000000000 --- a/bin/buildParaView3.2.1 +++ /dev/null @@ -1,156 +0,0 @@ -#!/bin/sh -set -x - -# ParaView 3.x build script -# - run from folder above source folder -PARAVIEW_SRC="ParaView3.2.1" - -VERBOSE="OFF" -INCLUDE_MPI="ON" -MPI_MAX_PROCS=32 -INCLUDE_PYTHON="ON" -INCLUDE_MESA="OFF" - -# initialisation -CMAKE_VARIABLES="" -PWD=`pwd` -OBJ_ADD="" - -# set general options -CMAKE_VARIABLES="$CMAKE_VARIABLES -DBUILD_SHARED_LIBS:BOOL=ON" - -if [ "$VERBOSE" = "ON" ]; then - CMAKE_VARIABLES="$CMAKE_VARIABLES -DCMAKE_VERBOSE_MAKEFILE=TRUE" -fi - -# set MPI specific options -if [ "$INCLUDE_MPI" = "ON" ]; then - OBJ_ADD="$OBJ_ADD-mpi" - - if [ "$WM_MPLIB" = "OPENMPI" ]; then - MPI_INCLUDE_PATH=$OPENMPI_ARCH_PATH/include - MPI_LIBRARY=$OPENMPI_ARCH_PATH/lib/libmpi.so - MPI_RUN=$OPENMPI_ARCH_PATH/bin/mpirun - elif [ "$WM_MPLIB" = "LAM" ]; then - MPI_INCLUDE_PATH=$LAM_ARCH_PATH/include - MPI_LIBRARY=$LAM_ARCH_PATH/lib/libmpi.so - MPI_RUN=$LAM_ARCH_PATH/bin/mpirun - elif [ "$WM_MPLIB" = "MPICH" ]; then - MPI_INCLUDE_PATH=$MPICH_ARCH_PATH/include - MPI_LIBRARY=$MPICH_ARCH_PATH/lib/libmpich.so - MPI_RUN=$MPICH_ARCH_PATH/bin/mpirun - fi - - CMAKE_VARIABLES="$CMAKE_VARIABLES -DVTK_USE_MPI=ON" - CMAKE_VARIABLES="$CMAKE_VARIABLES -DPARAVIEW_USE_MPI=ON" - CMAKE_VARIABLES="$CMAKE_VARIABLES -DMPI_INCLUDE_PATH=$MPI_INCLUDE_PATH" - CMAKE_VARIABLES="$CMAKE_VARIABLES -DMPI_LIBRARY=$MPI_LIBRARY" - CMAKE_VARIABLES="$CMAKE_VARIABLES -DVTK_MPIRUN_EXE=$MPI_RUN" - CMAKE_VARIABLES="$CMAKE_VARIABLES -DVTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS" -fi - -# set python specific options -if [ "$INCLUDE_PYTHON" = "ON" ]; then - WHICH_PYTHON=`which python` - if [ "$WHICH_PYTHON" != "" ]; then - OBJ_ADD="$OBJ_ADD-py" - - PYTHON_LIBRARY=`ldd $WHICH_PYTHON | grep libpython | \ - sed 's/.* => \(.*\) (.*/\1/'` - PYTHON_MAJOR_VERSION=`echo $PYTHON_LIBRARY | \ - sed 's/.*libpython\(.*\).so.*/\1/'` - PYTHON_INCLUDE_DIR=/usr/include/python$PYTHON_MAJOR_VERSION - - CMAKE_VARIABLES="$CMAKE_VARIABLES -DPARAVIEW_ENABLE_PYTHON=ON" - CMAKE_VARIABLES= \ - "$CMAKE_VARIABLES -DPYTHON_INCLUDE_PATH=$PYTHON_INCLUDE_DIR" - CMAKE_VARIABLES="$CMAKE_VARIABLES -DPYTHON_LIBRARY=$PYTHON_LIBRARY" - else - echo "*** Warning: Unable to determine python libray" - echo "*** De-activating python support" - INCLUDE_PYTHON="OFF" - fi -fi - -# set MESA specific options -if [ "$INCLUDE_MESA" = "ON" ]; then - OBJ_ADD="$OBJ_ADD-mesa" - - MESA_INCLUDE_DIR=/usr/include/GL - MESA_LIBRARY=/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so - - CMAKE_VARIABLES="$CMAKE_VARIABLES -DVTK_OPENGL_HAS_OSMESA=ON" - CMAKE_VARIABLES="$CMAKE_VARIABLES -DOSMESA_INCLUDE_DIR=$MESA_INCLUDE_DIR" - CMAKE_VARIABLES="$CMAKE_VARIABLES -DOSMESA_LIBRARY=$MESA_LIBRARY" -fi - -# set paraview environment -PARAVIEW_SRC_DIR=$PWD/$PARAVIEW_SRC -#PARAVIEW_OBJ_DIR=$PARAVIEW_SRC_DIR/platforms/$WM_OPTIONS/obj$OBJ_ADD -PARAVIEW_OBJ_DIR=$PARAVIEW_SRC_DIR/platforms/$WM_OPTIONS - -# remove existing build folder if present -if [ -e "$PARAVIEW_OBJ_DIR" ]; then - rm -rf $PARAVIEW_OBJ_DIR -fi - -# create paraview build folder -mkdir -p $PARAVIEW_OBJ_DIR -cd $PARAVIEW_OBJ_DIR - -echo "Building $PARAVIEW_SRC" -echo " MPI support : $INCLUDE_MPI" -echo " Python support : $INCLUDE_PYTHON" -echo " MESA support : $INCLUDE_MESA" -echo " Source : $PARAVIEW_SRC_DIR" -echo " Target : $PARAVIEW_OBJ_DIR" - -# make paraview -cmake \ - -DCMAKE_INSTALL_PREFIX=$PARAVIEW_APP_DIR \ - $CMAKE_VARIABLES \ - $PARAVIEW_SRC_DIR - -if [ -r /proc/cpuinfo ]; then - WM_NCOMPPROCS=`egrep "^processor" /proc/cpuinfo | wc -l` - - if [ $WM_NCOMPPROCS -gt 8 ]; then - WM_NCOMPPROCS=8 - fi - - make -j $WM_NCOMPPROCS -else - make -fi - -if [ -e "$PARAVIEW_OBJ_DIR/bin/paraview" ]; then - echo " Build complete" - - # replace local links with ParaView_INST_DIR environment variables - echo " Replacing path hard links" - find . -iname \*.cmake -execdir sed -i \ - "s,$PARAVIEW_SRC_DIR,\$ENV{ParaView_INST_DIR},g" {} ';' \ - -print - - # create a softlink to the $PARAVIEW_OBJ_DIR/bin folder - echo " Creating paraview 3.2 soft link to /bin" - ( mkdir lib && cd lib && ln -s ../bin paraview-3.2 ) - - # info on symlinks to screen - echo "" - echo " ---" - echo " Installation complete" - echo " Set environment variables:" - echo " - ParaView_INST_DIR to $PARAVIEW_SRC_DIR" - echo " - ParaView_DIR to $PARAVIEW_OBJ_DIR" - echo " - PV_PLUGIN_PATH to $FOAM_LIBBIN" - echo " Add $PARAVIEW_OBJ_DIR/bin to PATH" - #echo " Add $ParaView_INST_DIR/lib to LD_LIBRARY_PATH" - echo " ---" - echo "done." -fi - -# finalisation -cd $PWD - - diff --git a/bin/buildParaView3.3-cvs b/bin/tools/buildParaView3.3-cvs similarity index 71% rename from bin/buildParaView3.3-cvs rename to bin/tools/buildParaView3.3-cvs index 40a879cd24d..32ee3cf1697 100755 --- a/bin/buildParaView3.3-cvs +++ b/bin/tools/buildParaView3.3-cvs @@ -28,48 +28,42 @@ # # Description # Build and install ParaView -# - run from folder above source folder +# - run from folder above ParaView source folder or place the +# ParaView source under $WM_PROJECT_INST_DIR # #------------------------------------------------------------------------------ -set -x +. $WM_PROJECT_DIR/bin/tools/buildParaViewFunctions -. $WM_PROJECT_DIR/bin/buildParaViewFunctions +# set -x PARAVIEW_SRC="ParaView3.3-cvs" -PARAVIEW_MAJOR_VERSION="3.2" +PARAVIEW_MAJOR_VERSION="3.3" -VERBOSE="OFF" -INCLUDE_MPI="ON" +VERBOSE=OFF +INCLUDE_MPI=ON MPI_MAX_PROCS=32 -INCLUDE_PYTHON="ON" +INCLUDE_PYTHON=ON #PYTHON_LIBRARY="/usr/lib64/libpython2.5.so.1.0" PYTHON_LIBRARY="" -INCLUDE_MESA="OFF" +INCLUDE_MESA=OFF +set +x -initialiseVariables - -# set MPI specific options -if [ "$INCLUDE_MPI" = "ON" ]; then - addMpiSupport +# provide a shortcut for repeated builds - use with caution +if [ "$#" -gt 0 ] +then + CMAKE_SKIP=YES fi -# set python specific options -if [ "$INCLUDE_PYTHON" = "ON" ]; then - addPythonSupport -fi +initialiseVariables -# set MESA specific options -if [ "$INCLUDE_MESA" = "ON" ]; then - addMesaSupport -fi +addMpiSupport # set MPI specific options +addPythonSupport # set python specific options +addMesaSupport # set MESA specific options buildParaView - installParaView -# finalisation -cd $PWD - echo "done." +#------------------------------------------------------------------------------ diff --git a/bin/buildParaViewFunctions b/bin/tools/buildParaViewFunctions similarity index 61% rename from bin/buildParaViewFunctions rename to bin/tools/buildParaViewFunctions index 50130800968..326fed83ba7 100644 --- a/bin/buildParaViewFunctions +++ b/bin/tools/buildParaViewFunctions @@ -31,59 +31,71 @@ # #------------------------------------------------------------------------------ -initialiseVariables () +addCMakeVariable () { - CMAKE_VARIABLES="" - PWD=`pwd` - OBJ_ADD="" - - if [ "$VERBOSE" = "ON" ]; then - addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE" - fi + while [ -n "$1" ] + do + CMAKE_VARIABLES="$CMAKE_VARIABLES -D$1" + shift + done } -addCMakeVariable () +initialiseVariables () { - if [ -z "$1" ]; then - echo "*** Error: addCMakeVariable()" - echo " No variable to add" - fi + unset CMAKE_VARIABLES OBJ_ADD - CMAKE_VARIABLES="$CMAKE_VARIABLES -D$1" + if [ "$VERBOSE" = ON ]; then + addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE" + fi } addMpiSupport () { - OBJ_ADD="$OBJ_ADD-mpi" + [ "$INCLUDE_MPI" = ON ] || return - # using OpenFOAM variables to identify location of MPI libraries - if [ "$WM_MPLIB" = "OPENMPI" ]; then + # using OpenFOAM variables to identify location of MPI libraries + case "$WM_MPLIB" in + OPENMPI) MPI_INCLUDE_PATH=$OPENMPI_ARCH_PATH/include MPI_LIBRARY=$OPENMPI_ARCH_PATH/lib/libmpi.so MPI_RUN=$OPENMPI_ARCH_PATH/bin/mpirun - elif [ "$WM_MPLIB" = "LAM" ]; then + ;; + LAM) MPI_INCLUDE_PATH=$LAM_ARCH_PATH/include MPI_LIBRARY=$LAM_ARCH_PATH/lib/libmpi.so MPI_RUN=$LAM_ARCH_PATH/bin/mpirun - elif [ "$WM_MPLIB" = "MPICH" ]; then + ;; + MPICH) MPI_INCLUDE_PATH=$MPICH_ARCH_PATH/include MPI_LIBRARY=$MPICH_ARCH_PATH/lib/libmpich.so MPI_RUN=$MPICH_ARCH_PATH/bin/mpirun + ;; + *) + unset MPI_INCLUDE_PATH + ;; + esac + + if [ "$MPI_INCLUDE_PATH" ]; then + OBJ_ADD="$OBJ_ADD-mpi" + addCMakeVariable "VTK_USE_MPI=ON" + addCMakeVariable "PARAVIEW_USE_MPI=ON" + addCMakeVariable "MPI_INCLUDE_PATH=$MPI_INCLUDE_PATH" + addCMakeVariable "MPI_LIBRARY=$MPI_LIBRARY" + addCMakeVariable "VTK_MPIRUN_EXE=$MPI_RUN" + addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS" + else + echo "unknown/unsupported mpi: $WM_MPLIB" + INCLUDE_MPI=OFF fi - - addCMakeVariable "VTK_USE_MPI=ON" - addCMakeVariable "PARAVIEW_USE_MPI=ON" - addCMakeVariable "MPI_INCLUDE_PATH=$MPI_INCLUDE_PATH" - addCMakeVariable "MPI_LIBRARY=$MPI_LIBRARY" - addCMakeVariable "VTK_MPIRUN_EXE=$MPI_RUN" - addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS" } addPythonSupport () { + [ "$INCLUDE_PYTHON" = ON ] || return + WHICH_PYTHON=`which python` if [ -n "$WHICH_PYTHON" ]; then OBJ_ADD="$OBJ_ADD-py" @@ -130,48 +142,81 @@ addPythonSupport () addMesaSupport () { - OBJ_ADD="$OBJ_ADD-mesa" - - MESA_INCLUDE_DIR=/usr/include/GL - MESA_LIBRARY=/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so - - addCMakeVariable "VTK_OPENGL_HAS_OSMESA=ON" - addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE_DIR" - addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY" + [ "$INCLUDE_MESA" = ON ] || return + + MESA_INCLUDE_DIR=/usr/include/GL + MESA_LIBRARY=/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so + + if [ -d "$MESA_INCLUDE_DIR" -a -f "$MESA_LIBRARY" ]; then + OBJ_ADD="$OBJ_ADD-mesa" + addCMakeVariable "VTK_OPENGL_HAS_OSMESA=ON" + addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE_DIR" + addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY" + else + echo "no MESA information found ... skipping" + INCLUDE_MESA=OFF + fi } buildParaView () { # set general options - addCmakeVariable "DBUILD_SHARED_LIBS:BOOL=ON" + addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON" # set paraview environment - PARAVIEW_SRC_DIR=$PWD/$PARAVIEW_SRC + unset PARAVIEW_SRC_DIR + for i in $PWD $WM_PROJECT_INST_DIR + do + if [ -d $i/$PARAVIEW_SRC ] + then + PARAVIEW_SRC_DIR=$i/$PARAVIEW_SRC + break + fi + done + + [ -d "$PARAVIEW_SRC_DIR" ] || { + echo "did not find $PARAVIEW_SRC in these directories:" + echo " PWD=$PWD" + echo " WM_PROJECT_INST_DIR=$WM_PROJECT_INST_DIR" + echo "abort build" + exit 1 + } + #PARAVIEW_OBJ_DIR=$PARAVIEW_SRC_DIR/platforms/$WM_OPTIONS/obj$OBJ_ADD PARAVIEW_OBJ_DIR=$PARAVIEW_SRC_DIR/platforms/$WM_OPTIONS - # remove existing build folder if present - if [ -e "$PARAVIEW_OBJ_DIR" ]; then - rm -rf $PARAVIEW_OBJ_DIR - fi + # provide a shortcut for repeated builds - use with caution + if [ "$CMAKE_SKIP" = YES ] + then - # create paraview build folder - mkdir -p $PARAVIEW_OBJ_DIR - cd $PARAVIEW_OBJ_DIR + # change to build folder + cd $PARAVIEW_OBJ_DIR || exit 1 - echo "Building $PARAVIEW_SRC" - echo " MPI support : $INCLUDE_MPI" - echo " Python support : $INCLUDE_PYTHON" - echo " MESA support : $INCLUDE_MESA" - echo " Source : $PARAVIEW_SRC_DIR" - echo " Target : $PARAVIEW_OBJ_DIR" + else - # make paraview - cmake \ - -DCMAKE_INSTALL_PREFIX=$PARAVIEW_APP_DIR \ - $CMAKE_VARIABLES \ - $PARAVIEW_SRC_DIR + # remove existing build folder if present + if [ -e "$PARAVIEW_OBJ_DIR" ]; then + rm -rf $PARAVIEW_OBJ_DIR + fi + + # create paraview build folder + mkdir -p $PARAVIEW_OBJ_DIR + cd $PARAVIEW_OBJ_DIR + + echo "Building $PARAVIEW_SRC" + echo " MPI support : $INCLUDE_MPI" + echo " Python support : $INCLUDE_PYTHON" + echo " MESA support : $INCLUDE_MESA" + echo " Source : $PARAVIEW_SRC_DIR" + echo " Target : $PARAVIEW_OBJ_DIR" + + # make paraview + cmake \ + -DCMAKE_INSTALL_PREFIX=$PARAVIEW_APP_DIR \ + $CMAKE_VARIABLES \ + $PARAVIEW_SRC_DIR + fi if [ -r /proc/cpuinfo ]; then WM_NCOMPPROCS=`egrep "^processor" /proc/cpuinfo | wc -l` @@ -201,10 +246,10 @@ installParaView () -print # create a softlink to the $PARAVIEW_OBJ_DIR/bin folder - # - work-around for chosen install location + # - workaround for chosen install location echo " Creating paraview $PARAVIEW_MAJOR_VERSION soft link to /bin" - ( mkdir lib && cd lib && ln -s ../bin \ - paraview-$PARAVIEW_MAJOR_VERSION ) + ( mkdir lib && cd lib && ln -s ../bin \ + paraview-$PARAVIEW_MAJOR_VERSION ) # info on symlinks to screen echo "" @@ -215,7 +260,16 @@ installParaView () echo " - ParaView_DIR to $PARAVIEW_OBJ_DIR" echo " - PV_PLUGIN_PATH to $FOAM_LIBBIN" echo " Add $PARAVIEW_OBJ_DIR/bin to PATH" - #echo " Add $ParaView_INST_DIR/lib to LD_LIBRARY_PATH" + # echo " Add $ParaView_INST_DIR/lib to LD_LIBRARY_PATH" echo " ---" fi } + + +# for good measure - clear a few variables before using any of the functions + +unset VERBOSE INCLUDE_MPI INCLUDE_PYTHON INCLUDE_MESA PYTHON_LIBRARY +unset CMAKE_VARIABLES OBJ_ADD +unset CMAKE_SKIP + +#------------------------------------------------------------------------------ -- GitLab