146 lines
6.5 KiB
Plaintext
146 lines
6.5 KiB
Plaintext
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 <iostream.h>
|
|
#include <fstream.h>
|
|
namespace nglib {
|
|
#include "nglib.h"
|
|
}
|
|
#define OCCGEOMETRY
|
|
#include <occgeom.hpp>
|
|
,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 <iostream.h>
|
|
#include <fstream.h>
|
|
namespace nglib {
|
|
#include "nglib.h"
|
|
}
|
|
#define OCCGEOMETRY
|
|
#include <occgeom.hpp>
|
|
,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
|