smesh/adm_local/unix/config_files/check_Netgen.m4

123 lines
5.3 KiB
Plaintext

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 You are about to choose to use somehow the
echo Netgen Library to generate Tetrahedric mesh.
echo
echo WARNING
echo -------
echo You should then be sure to have a Netgen Library
echo compiled without -DOPENGL compilation option and
echo to have the object nglib.o in your library
echo libnginterface.a. If it is not the case recompile
echo the Netgen distribution accordingly.
echo ask your system administrator
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 <iostream.h>
#include <fstream.h>
#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 <iostream.h>
#include <fstream.h>
#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