1 dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
3 dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 dnl This library is free software; you can redistribute it and/or
7 dnl modify it under the terms of the GNU Lesser General Public
8 dnl License as published by the Free Software Foundation; either
9 dnl version 2.1 of the License.
11 dnl This library is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 dnl Lesser General Public License for more details.
16 dnl You should have received a copy of the GNU Lesser General Public
17 dnl License along with this library; if not, write to the Free Software
18 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 AC_DEFUN([CHECK_NETGEN],[
25 AC_REQUIRE([AC_PROG_CXX])dnl
26 AC_REQUIRE([AC_PROG_CXXCPP])dnl
28 AC_CHECKING(for Netgen 4.5 and higher Libraries)
34 [ --with-netgen=DIR root directory path of NETGEN installation],
35 NETGEN_HOME=$withval,NETGEN_HOME="")
44 if test "x$NETGEN_HOME" == "x" ; then
46 # no --with-netgen option used
47 if test "x$NETGENHOME" != "x" ; then
49 # NETGENHOME environment variable defined
50 NETGEN_HOME=$NETGENHOME
56 if test "x$NETGEN_HOME" != "x"; then
58 if test -f ${NETGEN_HOME}/lib/libnglib.so ; then
62 echo ----------------------------------------------------------
63 echo ----------------------------------------------------------
64 echo You are about to choose to use somehow the
65 echo Netgen Library to generate Tetrahedric mesh.
66 echo ----------------------------------------------------------
67 echo ----------------------------------------------------------
68 echo You are strongly advised to consult the file
69 echo NETGENPLUGIN_SRC/src/NETGEN/ReadMeForNgUsers, particularly
70 echo about assumptions made on the installation of the Netgen
71 echo application and libraries.
72 echo ----------------------------------------------------------
73 echo ----------------------------------------------------------
75 NETGEN_INCLUDES="-I${NETGEN_HOME}/include"
77 if test "$NETGEN_NEW" = "yes" ; then
78 NETGEN_INCLUDES="${NETGEN_INCLUDES} -DNETGEN_NEW -I${NETGEN_HOME}/share/netgen/include"
81 # check ${NETGEN_HOME}/lib/LINUX directory for libraries
82 if test -f ${NETGEN_HOME}/lib/LINUX/libcsg.a ; then
83 NETGEN_LIBS_DIR="${NETGEN_HOME}/lib/LINUX"
85 # check ${NETGEN_HOME}/lib/LINUX64 directory for libraries
86 if test -f ${NETGEN_HOME}/lib/LINUX64/libcsg.a ; then
87 NETGEN_LIBS_DIR="${NETGEN_HOME}/lib/LINUX64"
89 NETGEN_LIBS_DIR="${NETGEN_HOME}/lib"
93 echo "NETGEN_LIBS_DIR = $NETGEN_LIBS_DIR"
95 CPPFLAGS_old="$CPPFLAGS"
96 CXXFLAGS_old="$CXXFLAGS"
97 CPPFLAGS="$CAS_CPPFLAGS $NETGEN_INCLUDES $CPPFLAGS"
98 CXXFLAGS="$CAS_CPPFLAGS $NETGEN_INCLUDES $CXXFLAGS"
100 AC_MSG_CHECKING(for Netgen header file)
102 AC_CHECK_HEADER(nglib.h,Netgen_ok=yes,Netgen_ok=no)
103 if test "x$Netgen_ok" == "xyes"; then
105 if test "$NETGEN_NEW" = "no" ; then
107 AC_MSG_CHECKING(for Netgen libraries)
110 LIBS="-L. -lNETGEN $CAS_LDPATH -lTKernel -lTKMath -lTKG3d -lTKBRep -lTKShHealing -lTKSTEP -lTKXSBase -lTKIGES -lTKSTL -lTKTopAlgo $LIBS"
112 AC_TRY_COMPILE(#include <iostream>
118 #include <occgeom.hpp>
120 netgen::OCCGeometry occgeo;
121 nglib::Ng_Exit();,Netgen_ok=yes;ar x "$NETGEN_LIBS_DIR/libnginterface.a";
122 ar x "$NETGEN_LIBS_DIR/libocc.a";
123 ar x "$NETGEN_LIBS_DIR/libcsg.a";
124 ar x "$NETGEN_LIBS_DIR/libgprim.a";
125 ar x "$NETGEN_LIBS_DIR/libmesh.a";
126 ar x "$NETGEN_LIBS_DIR/libopti.a";
127 ar x "$NETGEN_LIBS_DIR/libgen.a";
128 ar x "$NETGEN_LIBS_DIR/libla.a";
129 ar x "$NETGEN_LIBS_DIR/libstlgeom.a";
130 ar x "$NETGEN_LIBS_DIR/libgeom2d.a";
131 $CXX -shared linopt.o bfgs.o linsearch.o global.o bisect.o meshtool.o refine.o ruler3.o improve3.o adfront3.o tetrarls.o prism2rls.o profiler.o pyramidrls.o pyramid2rls.o netrule3.o ruler2.o meshclass.o improve2.o adfront2.o netrule2.o triarls.o geomsearch.o secondorder.o meshtype.o parser3.o quadrls.o specials.o parser2.o meshing2.o meshing3.o meshfunc.o localh.o improve2gen.o delaunay.o boundarylayer.o msghandler.o meshfunc2d.o smoothing2.o smoothing3.o topology.o curvedelems_new.o clusters.o zrefine.o ngexception.o geomtest3d.o geom2d.o geom2dmesh.o geom3d.o adtree.o transform3d.o geomfuncs.o polynomial.o densemat.o vector.o basemat.o sparsmat.o algprim.o brick.o manifold.o bspline2d.o meshsurf.o csgeom.o polyhedra.o curve2d.o singularref.o edgeflw.o solid.o explicitcurve2d.o specpoin.o gencyl.o revolution.o genmesh.o genmesh2d.o spline3d.o surface.o identify.o triapprox.o meshstlsurface.o stlline.o stltopology.o stltool.o stlgeom.o stlgeomchart.o stlgeommesh.o table.o optmem.o spbita2d.o hashtabl.o sort.o flags.o seti.o bitarray.o array.o symbolta.o mystring.o moveablemem.o spline.o splinegeometry.o ngnewdelete.o nglib.o hprefinement.o Partition_Inter2d.o Partition_Loop.o Partition_Loop3d.o Partition_Inter3d.o Partition_Loop2d.o Partition_Spliter.o occgeom.o occgenmesh.o occmeshsurf.o -o libNETGEN.so;
132 rm -rf linopt.o bfgs.o linsearch.o global.o bisect.o meshtool.o refine.o ruler3.o improve3.o adfront3.o tetrarls.o prism2rls.o profiler.o pyramidrls.o pyramid2rls.o netrule3.o ruler2.o meshclass.o improve2.o adfront2.o netrule2.o triarls.o geomsearch.o secondorder.o meshtype.o parser3.o quadrls.o specials.o parser2.o meshing2.o meshing3.o meshfunc.o localh.o improve2gen.o delaunay.o boundarylayer.o msghandler.o meshfunc2d.o smoothing2.o smoothing3.o topology.o curvedelems_new.o clusters.o zrefine.o ngexception.o geomtest3d.o geom2d.o geom2dmesh.o geom3d.o adtree.o transform3d.o geomfuncs.o polynomial.o densemat.o vector.o basemat.o sparsmat.o algprim.o brick.o manifold.o bspline2d.o meshsurf.o csgeom.o polyhedra.o curve2d.o singularref.o edgeflw.o solid.o explicitcurve2d.o specpoin.o gencyl.o revolution.o genmesh.o genmesh2d.o spline3d.o surface.o identify.o triapprox.o meshstlsurface.o stlline.o stltopology.o stltool.o stlgeom.o stlgeomchart.o stlgeommesh.o table.o optmem.o spbita2d.o hashtabl.o sort.o flags.o seti.o bitarray.o array.o symbolta.o mystring.o moveablemem.o spline.o splinegeometry.o ngnewdelete.o nglib.o hprefinement.o Partition_Inter2d.o Partition_Loop.o Partition_Loop3d.o Partition_Inter3d.o Partition_Loop2d.o Partition_Spliter.o occgeom.o occgenmesh.o occmeshsurf.o csgparser.o dynamicmem.o extrusion.o occconstruction.o parthreads.o readuser.o writeabaqus.o writediffpack.o writeelmer.o writefeap.o writefluent.o writegmsh.o writejcm.o writepermas.o writetecplot.o writetochnog.o writeuser.o wuchemnitz.o,
135 AC_CACHE_VAL(salome_cv_netgen_lib,[
143 #include <occgeom.hpp>
146 netgen::OCCGeometry occgeo;
149 [eval "salome_cv_netgen_lib=yes";rm -rf libNETGEN.so],
150 [eval "salome_cv_netgen_lib=no";rm -rf libNETGEN.so])
152 Netgen_ok="$salome_cv_netgen_lib"
157 LIBS="-L${NETGEN_LIBS_DIR} -lnglib $CAS_LDPATH -lTKernel -lTKMath -lTKG3d -lTKBRep -lTKShHealing -lTKSTEP -lTKXSBase -lTKIGES -lTKSTL -lTKTopAlgo -lTKGeomBase $LIBS"
159 AC_MSG_CHECKING(for official Netgen libraries)
160 AC_CACHE_VAL(salome_cv_netgen_lib,[
171 [eval "salome_cv_netgen_lib=yes"],
172 [eval "salome_cv_netgen_lib=no"])
174 Netgen_ok="$salome_cv_netgen_lib"
176 if test "$Netgen_ok" = "yes" ; then
178 AC_MSG_CHECKING(for occ support in Netgen libraries)
179 AC_CACHE_VAL(salome_cv_netgen_occ_lib,[
189 nglib::Ng_OCC_Geometry * ng_occ_geom = nglib::Ng_OCC_NewGeometry();
192 [eval "salome_cv_netgen_occ_lib=yes"],
193 [eval "salome_cv_netgen_occ_lib=no"])
195 Netgen_ok="$salome_cv_netgen_occ_lib"
198 if test "$Netgen_ok" = "yes" ; then
200 AC_MSG_CHECKING(for salome patch in Netgen installation)
201 AC_CACHE_VAL(salome_cv_netgen_salome_patch_lib,[
209 #include <occgeom.hpp>
212 netgen::OCCGeometry occgeo;
215 [eval "salome_cv_netgen_salome_patch_lib=yes"],
216 [eval "salome_cv_netgen_salome_patch_lib=no"])
218 Netgen_ok="$salome_cv_netgen_salome_patch_lib"
221 if test "x$Netgen_ok" == xno ; then
223 AC_MSG_ERROR(Netgen is not properly installed. Read NETGENPLUGIN_SRC/src/NETGEN/ReadMeForNgUsers for details.)
226 NETGEN_LIBS="-L${NETGEN_LIBS_DIR} -lnglib"
233 CPPFLAGS="$CPPFLAGS_old"
234 CXXFLAGS="$CXXFLAGS_old"
236 if test "x$Netgen_ok" == xno ; then
238 AC_MSG_ERROR(Netgen libraries not found or not properly installed)
245 AC_MSG_ERROR(Netgen libraries not found. Please define NETGENHOME or use --with-netgen option)
249 AC_SUBST(NETGEN_INCLUDES)
250 AC_SUBST(NETGEN_LIBS_DIR)
251 AC_SUBST(NETGEN_LIBS)
252 AM_CONDITIONAL(NETGEN_NEW, [test x"$NETGEN_NEW" = x"yes"])