AC_DEFUN([CHECK_NETGEN],[ AC_REQUIRE([AC_PROG_CXX])dnl AC_REQUIRE([AC_PROG_CXXCPP])dnl AC_CHECKING(for Netgen 4.5 and higher Libraries) AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_ARG_WITH(netgen, [ --with-netgen=DIR root directory path of NETGEN installation], NETGEN_HOME=$withval,NETGEN_HOME="") NETGEN_INCLUDES="" NETGEN_LIBS_DIR="" Netgen_ok=no if test "x$NETGEN_HOME" == "x" ; then # no --with-netgen option used if test "x$NETGENHOME" != "x" ; then # NETGENHOME environment variable defined NETGEN_HOME=$NETGENHOME fi # fi if test "x$NETGEN_HOME" != "x"; 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 NETGENPLUGIN_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_INCLUDES="-I${NETGEN_HOME}/include" # check ${NETGEN_HOME}/lib/LINUX directory for libraries if test -f ${NETGEN_HOME}/lib/LINUX/libcsg.a ; then NETGEN_LIBS_DIR="${NETGEN_HOME}/lib/LINUX" else # check ${NETGEN_HOME}/lib/LINUX64 directory for libraries if test -f ${NETGEN_HOME}/lib/LINUX64/libcsg.a ; then NETGEN_LIBS_DIR="${NETGEN_HOME}/lib/LINUX64" else NETGEN_LIBS_DIR="${NETGEN_HOME}/lib" fi fi echo "NETGEN_LIBS_DIR = $NETGEN_LIBS_DIR" CPPFLAGS_old="$CPPFLAGS" CXXFLAGS_old="$CXXFLAGS" CPPFLAGS="$NETGEN_INCLUDES $CAS_CPPFLAGS $CPPFLAGS" CXXFLAGS="$NETGEN_INCLUDES $CAS_CPPFLAGS $CXXFLAGS" AC_MSG_CHECKING(for Netgen header file) AC_CHECK_HEADER(nglib.h,Netgen_ok=yes,Netgen_ok=no) if test "x$Netgen_ok" == "xyes"; then AC_MSG_CHECKING(for Netgen libraries) LDFLAGS_old="$LDFLAGS" LDFLAGS="-L. -lNETGEN $CAS_LDPATH -lTKBRep -lTKShHealing -lTKSTEP -lTKXSBase -lTKIGES -lTKSTL -lTKTopAlgo $LDFLAGS" AC_TRY_COMPILE(#include #include namespace nglib { #include "nglib.h" } #define OCCGEOMETRY #include ,nglib::Ng_Init(); netgen::OCCGeometry occgeo; nglib::Ng_Exit();,Netgen_ok=yes;ar x "$NETGEN_LIBS_DIR/libnginterface.a"; ar x "$NETGEN_LIBS_DIR/libocc.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 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; 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, Netgen_ok=no) AC_CACHE_VAL(salome_netgen_lib,[ AC_TRY_LINK( #include #include namespace nglib { #include "nglib.h" } #define OCCGEOMETRY #include ,nglib::Ng_Init(); netgen::OCCGeometry occgeo; nglib::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" fi CPPFLAGS="$CPPFLAGS_old" CXXFLAGS="$CXXFLAGS_old" 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) fi fi AC_SUBST(NETGEN_INCLUDES) AC_SUBST(NETGEN_LIBS_DIR) AC_LANG_RESTORE ])dnl