View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003065 | ThirdParty | Patch | public | 2018-09-02 13:33 | 2018-09-02 23:02 |
Reporter | usrOF | Assigned To | henry | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | GNU/Linux | OS | CentOS | OS Version | 7.5 |
Fixed in Version | dev | ||||
Summary | 0003065: ThirdParty Allwmake script seems to be incomplete for optional CGAL build | ||||
Description | After successful compilation of CGAL from ThirdParty sources the Allwmake script complains "optional component was not found" under the Build CGAL section. All path variables are OK. It seems that the ThirdParty Allwmake script is missing some pre-checks under the optional CGAL section. Current workaround is to add following lines before the $CGAL_ARCH_PATH is checked: >> . $WM_PROJECT_DIR/etc/config.sh/functions # get CGAL_VERSION, CGAL_ARCH_PATH if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL` then . $settings else echo echo "Error: no config.sh/CGAL settings" echo fi << | ||||
Steps To Reproduce | a) set-up fresh OpenFOAM-dev or OpenFOAM-6 installation b) build CGAL from ThirdParty sources via ./makeCGAL c) run Allwmake script under ThirdParty directory d) See terminal output: >> ======================================== Build CGAL optional component was not found ======================================== Done ThirdParty Allwmake ======================================== << | ||||
Additional Information | ThirdParty versions used for CGAL: * boost_1_55_0 * CGAL-4.10 | ||||
Tags | No tags attached. | ||||
|
It took me a couple of minutes to figure out why that was happening, but I've now spotted the issue: the "config.sh/CGAL" file is not being sourced by "OpenFOAM-*/etc/bashrc" because the environment variable "FOAMY_HEX_MESH" is not set. Therefore, if "FOAMY_HEX_MESH" is not set, then that means that CGAL is not going to be used anyway. Which means that the patch you've proposed doesn't seem necessary... However, do you propose any other change related to this? |
|
@Henry: Given that the origin of this report was that CGAL was custom built and was reported as not found because foamyHexMesh was not selected to be built, attached are the following files to solve this: - 'proposition_Allwmake_v2.patch' - the proposed changes, where it now reports: - When it's skipped if 'foamyHexMesh' is not selected to be built - When the system CGAL is selected and if 'foamyHexMesh' is selected to be built - Updated the default message to be consistent with the one for Metis a few lines above, by indicating the name of the component. - 'Allwmake_v2' - The complete modified file for replacing "ThirdParty-*/Allwmake", usable for OpenFOAM-dev and OpenFOAM 6. Allwmake_v2 (10,790 bytes)
#!/bin/sh #------------------------------------------------------------------------------ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM. # # OpenFOAM is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # OpenFOAM is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. # # Script # Allwmake # # Description # Build script for ThirdParty # #------------------------------------------------------------------------------ # 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 #------------------------------------------------------------------------------ # export WM settings in a form that GNU configure recognizes [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" [ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS" [ -n "$WM_CXXFLAGS" ] && export CXXFLAGS="$WM_CXXFLAGS" [ -n "$WM_LDFLAGS" ] && export LDFLAGS="$WM_LDFLAGS" echo echo ======================================== echo Start ThirdParty Allwmake echo ======================================== echo echo ======================================== echo Build MPI libraries if required echo 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 ( set -x cd "${MPI_ARCH_PATH##*/}" || exit 1 # change to openmpi-VERSION [ -e Makefile ] && make distclean 2>/dev/null rm -rf $MPI_ARCH_PATH # start with GridEngine support, # it can be built without external libraries configOpt="--with-sge" # Infiniband support # if [ -d /usr/local/ofed -a -d /usr/local/ofed/lib64 ] # then # configOpt="$configOpt --with-openib=/usr/local/ofed" # configOpt="$configOpt --with-openib-libdir=/usr/local/ofed/lib64" # fi ./configure \ --prefix=$MPI_ARCH_PATH \ --disable-orterun-prefix-by-default \ --enable-shared --disable-static \ --enable-mpi-thread-multiple \ --libdir=$MPI_ARCH_PATH/lib${WM_COMPILER_LIB_ARCH} \ --enable-mpi-fortran=none \ --disable-mpi-profile \ $configOpt \ ; make -j $WM_NCOMPPROCS && make install make distclean ) fi ;; MPICH) if [ -r $MPI_ARCH_PATH/lib/libmpich.so ] then echo " have $WM_MPLIB shared library ($FOAM_MPI)" echo echo elif [ -r $MPI_ARCH_PATH/lib/libmpich.a ] then echo " have $WM_MPLIB static library ($FOAM_MPI)" echo else ( set -x cd $MPI_HOME || exit 1 # change to mpich-VERSION [ -e Makefile ] && make distclean 2>/dev/null rm -rf $MPI_ARCH_PATH rm 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 # get SCOTCH_VERSION, SCOTCH_ARCH_PATH if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch` then . $settings else echo echo "Error: no config.sh/scotch settings" echo fi # building scotch is still a bit of a pain echo ======================================== echo "Build Scotch decomposition library $SCOTCH_VERSION" echo " $SCOTCH_ARCH_PATH" # this needs generalizing for any compiler, since it's hard-coded to GCC scotchMakefile=../../etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \ -a -r $FOAM_EXT_LIBBIN/libscotch.so \ -a -r $FOAM_EXT_LIBBIN/libscotcherrexit.so ] then echo " scotch header in $SCOTCH_ARCH_PATH/include" echo " scotch libs in $FOAM_EXT_LIBBIN" echo else ( set -x cd $SCOTCH_VERSION/src || exit 1 prefixDIR=$SCOTCH_ARCH_PATH libDIR=$FOAM_EXT_LIBBIN mkdir -p $prefixDIR 2>/dev/null mkdir -p $libDIR 2>/dev/null configOpt="prefix=$prefixDIR libdir=$libDIR" 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" make realclean 2>/dev/null # for safety make -j $WM_NCOMPPROCS $configEnv scotch \ && make $configOpt install # cleanup, could also remove Makefile.inc make realclean 2>/dev/null ) fi # verify existence of scotch include [ -f $SCOTCH_ARCH_PATH/include/scotch.h ] || { echo echo " WARNING: required include file 'scotch.h' not found!" echo } # build ptscotch if MPI (ThirdParty or system) is available if [ "${FOAM_MPI:-dummy}" != dummy ] then echo ======================================== echo "Build PTScotch decomposition library $SCOTCH_VERSION (uses MPI)" echo " $SCOTCH_ARCH_PATH" echo if [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h \ -a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotch.so \ -a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotcherrexit.so ] then echo " ptscotch header in $SCOTCH_ARCH_PATH/include/$FOAM_MPI" echo " ptscotch libs in $FOAM_EXT_LIBBIN/$FOAM_MPI" echo else ( set -x cd $SCOTCH_VERSION/src || exit 1 prefixDIR=$SCOTCH_ARCH_PATH libDIR=$FOAM_EXT_LIBBIN/$FOAM_MPI incDIR=$SCOTCH_ARCH_PATH/include/$FOAM_MPI mkdir -p $prefixDIR 2>/dev/null mkdir -p $libDIR 2>/dev/null configOpt="prefix=$prefixDIR libdir=$libDIR includedir=$incDIR" 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" make realclean 2>/dev/null # for safety make -j $WM_NCOMPPROCS $configEnv ptscotch \ && make $configOpt install # cleanup, could also remove Makefile.inc make realclean 2>/dev/null ) fi # verify existence of scotch include [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h ] || { echo echo " WARNING: required include file 'ptscotch.h' not found!" echo } fi #------------------------------------------------------------------------------ # Metis is optional echo ======================================== echo Build Metis decomposition # get METIS_VERSION, METIS_ARCH_PATH if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis` then . $settings fi if [ -d "$METIS_VERSION" ] then if [ -f $METIS_ARCH_PATH/include/metis.h \ -a -r $FOAM_EXT_LIBBIN/libmetis.so ] then echo " metis header in $METIS_ARCH_PATH/include" echo " metis libs in $FOAM_EXT_LIBBIN" echo else ( set -x cd $METIS_VERSION || exit 1 # Change user settings automatically sed -i -e 's=\(#define IDXTYPEWIDTH\).*=\1 '$WM_LABEL_SIZE'=' \ include/metis.h make config shared=1 prefix=$METIS_ARCH_PATH make -j $WM_NCOMPPROCS install cp $METIS_ARCH_PATH/lib/libmetis.so $FOAM_EXT_LIBBIN ) fi else echo " optional component Metis was not found" fi # CGAL is optional echo ======================================== echo Build CGAL if [ -n "$CGAL_ARCH_PATH" ] then ( if [ -r $CGAL_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libCGAL.so ] then echo " CGAL headers in $CGAL_ARCH_PATH/include" echo " CGAL libs in $CGAL_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" else ./makeCGAL fi ) elif [ -z "$FOAMY_HEX_MESH" ] then echo " skipped because foamyHexMesh is not selected" elif [ -n "$FOAMY_HEX_MESH" -a -z "$CGAL_ARCH_PATH" ] then echo " using system CGAL" else echo " optional component CGAL was not found" fi echo echo ======================================== echo Done ThirdParty Allwmake echo ======================================== echo #------------------------------------------------------------------------------ proposition_Allwmake_v2.patch (884 bytes)
diff --git a/Allwmake b/Allwmake index 1fd86cf..e226186 100755 --- a/Allwmake +++ b/Allwmake @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -360,8 +360,14 @@ then ./makeCGAL fi ) +elif [ -z "$FOAMY_HEX_MESH" ] +then + echo " skipped because foamyHexMesh is not selected" +elif [ -n "$FOAMY_HEX_MESH" -a -z "$CGAL_ARCH_PATH" ] +then + echo " using system CGAL" else - echo " optional component was not found" + echo " optional component CGAL was not found" fi echo |
|
Thanks Bruno. Resolved in ThirdParty-dev by commit c3964d2ae411bd04e3160a27978deea62115a7ca Resolved in ThirdParty-6 by commit 416b1fa8c1e15c054797dec6ef31839ed1e4b5dc |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-09-02 13:33 | usrOF | New Issue | |
2018-09-02 14:34 | wyldckat | Note Added: 0010033 | |
2018-09-02 21:23 | wyldckat | File Added: Allwmake_v2 | |
2018-09-02 21:23 | wyldckat | File Added: proposition_Allwmake_v2.patch | |
2018-09-02 21:23 | wyldckat | Note Added: 0010034 | |
2018-09-02 21:23 | wyldckat | Assigned To | => henry |
2018-09-02 21:23 | wyldckat | Status | new => assigned |
2018-09-02 23:02 | henry | Status | assigned => resolved |
2018-09-02 23:02 | henry | Resolution | open => fixed |
2018-09-02 23:02 | henry | Fixed in Version | => dev |
2018-09-02 23:02 | henry | Note Added: 0010035 |