Salome HOME
DCQ : Merge with Ecole_Ete_a6.
[modules/smesh.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             WITHNETGEN="yes",WITHNETGEN="no")
14
15 NETGEN_INCLUDES=""
16 NETGEN_LIBS=""
17
18 Netgen_ok=no
19
20 if test "$WITHNETGEN" = yes; then
21
22   echo
23   echo
24   echo -------------------------------------------------
25   echo You are about to choose to use somehow the
26   echo Netgen Library to generate Tetrahedric mesh.
27   echo
28   echo WARNING
29   echo ----------------------------------------------------------
30   echo ----------------------------------------------------------
31   echo You are strongly advised to consult the file
32   echo SMESH_SRC/src/NETGEN/ReadMeForNgUsers, particularly about
33   echo assumptions made on the installation of the Netgen
34   echo application and libraries.
35   echo Ask your system administrator for those details.
36   echo ----------------------------------------------------------
37   echo ----------------------------------------------------------
38   echo 
39   echo
40
41   NETGEN_HOME=$withval
42
43   if test "$NETGEN_HOME"; then
44     NETGEN_INCLUDES="-I$NETGEN_HOME/include"
45     NETGEN_LIBS_DIR="$NETGEN_HOME/lib/LINUX"
46     NETGEN_LIBS="-L$NETGEN_LIBS_DIR"
47   fi
48
49   CPPFLAGS_old="$CPPFLAGS"
50   CPPFLAGS="$NETGEN_INCLUDES $CPPFLAGS"
51   CXXFLAGS_old="$CXXFLAGS"
52   CXXFLAGS="$NETGEN_INCLUDES $CXXFLAGS"
53
54   AC_MSG_CHECKING(for Netgen header file)
55
56   AC_CHECK_HEADER(nglib.h,Netgen_ok=yes,Netgen_ok=no)
57   CPPFLAGS="$CPPFLAGS_old"
58   CXXFLAGS="$CXXFLAGS_old"
59
60   if test "$WITHNETGEN" = "yes";then
61     NETGEN_LIBS="-L. -lNETGEN"
62
63     AC_MSG_CHECKING(for Netgen libraries)
64
65     CPPFLAGS_old="$CPPFLAGS"
66     CPPFLAGS="$NETGEN_INCLUDES $CPPFLAGS"
67     CXXFLAGS_old="$CXXFLAGS"
68     CXXFLAGS="$NETGEN_INCLUDES $CXXFLAGS"
69
70     LDFLAGS_old="$LDFLAGS"
71     LDFLAGS="$NETGEN_LIBS $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     CPPFLAGS="$CPPFLAGS_old"
104     CXXFLAGS="$CXXFLAGS_old"
105   fi
106
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   NETGEN_LIBS="-lNETGEN"
114   CPPFLAGS="${CPPFLAGS} -DHAVE_NETGEN"
115   IDLCXXFLAGS="${IDLCXXFLAGS} -DHAVE_NETGEN"
116   OMNIORB_IDLPYFLAGS="${OMNIORB_IDLPYFLAGS} -DHAVE_NETGEN"
117 fi
118 fi
119 AC_SUBST(NETGEN_INCLUDES)
120 AC_SUBST(NETGEN_LIBS)
121 AC_SUBST(NETGEN_LIBS_DIR)
122 AC_SUBST(WITHNETGEN)
123
124 AC_LANG_RESTORE
125
126 ])dnl