AC_DEFUN([CHECK_NETGEN],[ AC_REQUIRE([AC_PROG_CXX])dnl AC_REQUIRE([AC_PROG_CXXCPP])dnl AC_CHECKING(for Netgen Libraries) AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_ARG_WITH(netgen, --with-netgen=DIR root directory path of NETGEN installation, WITHNETGEN="yes",WITHNETGEN="no") NETGEN_INCLUDES="" NETGEN_LIBS="" Netgen_ok=no if test "$WITHNETGEN" = yes; then echo echo echo ------------------------------------------------- echo You are about to choose to use somehow the echo Netgen Library to generate Tetrahedric mesh. echo echo WARNING echo ---------------------------------------------------------- echo ---------------------------------------------------------- echo You are strongly advised to consult the file echo SMESH_SRC/src/NETGEN/ReadMeForNgUsers, particularly about echo assumptions made on the installation of the Netgen echo application and libraries. echo Ask your system administrator for those details. echo ---------------------------------------------------------- echo ---------------------------------------------------------- echo echo NETGEN_HOME=$withval if test "$NETGEN_HOME"; then NETGEN_INCLUDES="-I$NETGEN_HOME/include" NETGEN_LIBS_DIR="$NETGEN_HOME/lib/LINUX" NETGEN_LIBS="-L$NETGEN_LIBS_DIR" fi CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$NETGEN_INCLUDES $CPPFLAGS" CXXFLAGS_old="$CXXFLAGS" CXXFLAGS="$NETGEN_INCLUDES $CXXFLAGS" AC_MSG_CHECKING(for Netgen header file) AC_CHECK_HEADER(nglib.h,Netgen_ok=yes,Netgen_ok=no) CPPFLAGS="$CPPFLAGS_old" CXXFLAGS="$CXXFLAGS_old" if test "$WITHNETGEN" = "yes";then NETGEN_LIBS="-L. -lNETGEN" AC_MSG_CHECKING(for Netgen libraries) CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$NETGEN_INCLUDES $CPPFLAGS" CXXFLAGS_old="$CXXFLAGS" CXXFLAGS="$NETGEN_INCLUDES $CXXFLAGS" LDFLAGS_old="$LDFLAGS" LDFLAGS="$NETGEN_LIBS $LDFLAGS" AC_TRY_COMPILE(#include #include #include "nglib.h" ,Ng_Init(); Ng_Exit();,Netgen_ok=yes;ar x "$NETGEN_LIBS_DIR"/libnginterface.a; ar x "$NETGEN_LIBS_DIR"/libcsg.a; ar x "$NETGEN_LIBS_DIR"/libgprim.a; ar x "$NETGEN_LIBS_DIR"/libmesh.a; ar x "$NETGEN_LIBS_DIR"/libopti.a; ar x "$NETGEN_LIBS_DIR"/libgen.a; ar x "$NETGEN_LIBS_DIR"/libla.a; ar x "$NETGEN_LIBS_DIR"/libstlgeom.a; ar x "$NETGEN_LIBS_DIR"/libgeom2d.a; "$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 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.o clusters.o zrefine.o ngexception.o geomtest3d.o geom2d.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 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 spline2d.o splinegeometry2.o ngnewdelete.o nglib.o -o libNETGEN.so; rm -rf adfront2.o adfront3.o adtree.o algprim.o array.o basemat.o bfgs.o bisect.o bitarray.o boundarylayer.o brick.o bspline2d.o clusters.o csgeom.o csgparser.o curve2d.o curvedelems.o delaunay.o densemat.o dynamicmem.o edgeflw.o explicitcurve2d.o extrusion.o flags.o gencyl.o genmesh.o geom2dmesh.o geom2d.o geom3d.o geomfuncs.o geomsearch.o geomtest3d.o global.o hashtabl.o hprefinement.o identify.o importsolution.o improve2gen.o improve2.o improve3.o linopt.o linsearch.o localh.o manifold.o meshclass.o meshfunc2d.o meshfunc.o meshing2.o meshing3.o meshstlsurface.o meshsurf.o meshtool.o meshtype.o moveablemem.o msghandler.o mystring.o netrule2.o netrule3.o ngexception.o nglib.o ngnewdelete.o optmem.o parser2.o parser3.o parthreads.o polyhedra.o polynomial.o prism2rls.o pyramid2rls.o pyramidrls.o quadrls.o readuser.o refine.o revolution.o ruler2.o ruler3.o secondorder.o seti.o singularref.o smoothing2.o smoothing3.o solid.o sort.o sparsmat.o spbita2d.o specials.o specpoin.o spline2d.o spline3d.o splinegeometry2.o stlgeomchart.o stlgeommesh.o stlgeom.o stlline.o stltool.o stltopology.o surface.o symbolta.o table.o tetrarls.o topology.o transform3d.o triapprox.o triarls.o vector.o writeabaqus.o writediffpack.o writefeap.o writefluent.o writepermas.o writetecplot.o writetochnog.o writeuser.o wuchemnitz.o zrefine.o, Netgen_ok=no) AC_CACHE_VAL(salome_netgen_lib,[ AC_TRY_LINK( #include #include #include "nglib.h" ,Ng_Init(); Ng_Exit();, eval "salome_netgen_lib=yes";rm -rf libNETGEN.so,eval "salome_netgen_lib=no";rm -rf libNETGEN.so) ]) Netgen_ok="$salome_netgen_lib" LDFLAGS="$LDFLAGS_old" CPPFLAGS="$CPPFLAGS_old" CXXFLAGS="$CXXFLAGS_old" fi if test "x$Netgen_ok" = xno ; then AC_MSG_RESULT(no) AC_MSG_WARN(Netgen libraries not found or not properly installed) else AC_MSG_RESULT(yes) NETGEN_LIBS="-lNETGEN" fi fi AC_SUBST(NETGEN_INCLUDES) AC_SUBST(NETGEN_LIBS) AC_SUBST(NETGEN_LIBS_DIR) AC_SUBST(WITHNETGEN) AC_LANG_RESTORE ])dnl