Salome HOME
Initial version
[plugins/netgenplugin.git] / adm_local / unix / config_files / check_Netgen.m4
1 AC_DEFUN([CHECK_NETGEN],[
2
3 AC_REQUIRE([AC_PROG_CXX])dnl
4 AC_REQUIRE([AC_PROG_CXXCPP])dnl
5
6 AC_CHECKING(for Netgen Libraries)
7
8 AC_LANG_SAVE
9 AC_LANG_CPLUSPLUS
10
11 AC_ARG_WITH(netgen,
12             [  --with-netgen=DIR root directory path of NETGEN installation],
13             NETGEN_HOME=$withval,NETGEN_HOME="")
14
15 NETGEN_INCLUDES=""
16 NETGEN_LIBS_DIR=""
17
18 Netgen_ok=no
19
20 if test "x$NETGEN_HOME" == "x" ; then
21
22 # no --with-netgen option used
23    if test "x$NETGENHOME" != "x" ; then
24
25     # NETGENHOME environment variable defined
26       NETGEN_HOME=$NETGENHOME
27
28    fi
29
30 fi
31
32 if test "x$NETGEN_HOME" != "x"; then
33
34   echo
35   echo
36   echo -------------------------------------------------
37   echo You are about to choose to use somehow the
38   echo Netgen Library to generate Tetrahedric mesh.
39   echo
40   echo WARNING
41   echo ----------------------------------------------------------
42   echo ----------------------------------------------------------
43   echo You are strongly advised to consult the file
44   echo NETGENPLUGIN_SRC/src/ReadMeForNgUsers, particularly about
45   echo assumptions made on the installation of the Netgen
46   echo application and libraries.
47   echo Ask your system administrator for those details.
48   echo ----------------------------------------------------------
49   echo ----------------------------------------------------------
50   echo 
51   echo
52
53   
54
55   NETGEN_INCLUDES="-I$NETGEN_HOME/include"
56   NETGEN_LIBS_DIR="$NETGEN_HOME/lib/LINUX"
57
58   CPPFLAGS_old="$CPPFLAGS"
59   CXXFLAGS_old="$CXXFLAGS"
60   CPPFLAGS="$NETGEN_INCLUDES $CPPFLAGS"
61   CXXFLAGS="$NETGEN_INCLUDES $CXXFLAGS"
62
63   AC_MSG_CHECKING(for Netgen header file)
64
65   AC_CHECK_HEADER(nglib.h,Netgen_ok=yes,Netgen_ok=no)
66   if test "x$Netgen_ok" == "xyes"; then
67
68     AC_MSG_CHECKING(for Netgen libraries)
69
70     LDFLAGS_old="$LDFLAGS"
71     LDFLAGS="-L. -lNETGEN $LDFLAGS"
72
73     AC_TRY_COMPILE(#include <iostream.h>
74 #include <fstream.h>
75 #include "nglib.h"
76 ,Ng_Init();
77  Ng_Exit();,Netgen_ok=yes;ar x "$NETGEN_LIBS_DIR/libnginterface.a";
78             ar x "$NETGEN_LIBS_DIR/libcsg.a";
79             ar x "$NETGEN_LIBS_DIR/libgprim.a";
80             ar x "$NETGEN_LIBS_DIR/libmesh.a";
81             ar x "$NETGEN_LIBS_DIR/libopti.a";
82             ar x "$NETGEN_LIBS_DIR/libgen.a";
83             ar x "$NETGEN_LIBS_DIR/libla.a";
84             ar x "$NETGEN_LIBS_DIR/libstlgeom.a";
85             ar x "$NETGEN_LIBS_DIR/libgeom2d.a";
86             $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;
87             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,
88             Netgen_ok=no)
89
90     AC_CACHE_VAL(salome_netgen_lib,[
91                  AC_TRY_LINK(
92 #include <iostream.h>
93 #include <fstream.h>
94 #include "nglib.h"
95 ,Ng_Init();
96  Ng_Exit();,
97     eval "salome_netgen_lib=yes";rm -rf libNETGEN.so,eval "salome_netgen_lib=no";rm -rf libNETGEN.so)
98   ])
99     Netgen_ok="$salome_netgen_lib"
100
101
102     LDFLAGS="$LDFLAGS_old"
103   fi
104
105   CPPFLAGS="$CPPFLAGS_old"
106   CXXFLAGS="$CXXFLAGS_old"
107
108   if test "x$Netgen_ok" == xno ; then
109     AC_MSG_RESULT(no)
110     AC_MSG_WARN(Netgen libraries not found or not properly installed)
111   else
112     AC_MSG_RESULT(yes)
113   fi
114 fi
115
116 AC_SUBST(NETGEN_INCLUDES)
117 AC_SUBST(NETGEN_LIBS_DIR)
118
119 AC_LANG_RESTORE
120
121 ])dnl