Salome HOME
a382c635c32f24e0c50ee5431bee1a2196be525d
[modules/yacs.git] / adm / unix / config_files / check_cas.m4
1 dnl  Copyright (C) 2006-2008  CEA/DEN, EDF R&D
2 dnl
3 dnl  This library is free software; you can redistribute it and/or
4 dnl  modify it under the terms of the GNU Lesser General Public
5 dnl  License as published by the Free Software Foundation; either
6 dnl  version 2.1 of the License.
7 dnl
8 dnl  This library is distributed in the hope that it will be useful,
9 dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 dnl  Lesser General Public License for more details.
12 dnl
13 dnl  You should have received a copy of the GNU Lesser General Public
14 dnl  License along with this library; if not, write to the Free Software
15 dnl  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 dnl
17 dnl  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 dnl
19 AC_DEFUN([CHECK_CAS],[
20 AC_REQUIRE([AC_PROG_CXX])dnl
21 AC_REQUIRE([AC_PROG_CXXCPP])dnl
22
23 AC_CHECKING(for OpenCascade)
24
25 AC_LANG_SAVE
26 AC_LANG_CPLUSPLUS
27
28 AC_SUBST(CAS_CPPFLAGS)
29 AC_SUBST(CAS_CXXFLAGS)
30 AC_SUBST(CAS_KERNEL)
31 AC_SUBST(CAS_MATH)
32 AC_SUBST(CAS_VIEWER)
33 AC_SUBST(CAS_TKTopAlgo)
34 AC_SUBST(CAS_MODELER)
35 AC_SUBST(CAS_OCAF)
36 AC_SUBST(CAS_OCAFVIS)
37 AC_SUBST(CAS_DATAEXCHANGE)
38 AC_SUBST(CAS_LDFLAGS)
39 AC_SUBST(CAS_LDPATH)
40 AC_SUBST(CAS_STDPLUGIN)
41
42 CAS_CPPFLAGS=""
43 CAS_CXXFLAGS=""
44 CAS_LDFLAGS=""
45 occ_ok=no
46 config_h=no
47
48 dnl libraries directory location
49 case $host_os in
50    linux*)
51       casdir=Linux
52       ;;
53    freebsd*)
54       casdir=Linux
55       ;;
56    irix5.*)
57       casdir=Linux
58       ;;
59    irix6.*)
60       casdir=Linux
61       ;;
62    osf*)
63       casdir=Linux
64       ;;
65    solaris2.*)
66       casdir=Linux
67       ;;
68    *)
69       casdir=Linux
70       ;;
71 esac
72
73 AC_MSG_CHECKING(for OpenCascade directories)
74
75 if test -z "$CASROOT"; then
76   AC_MSG_RESULT(CASROOT not defined)
77   for d in `echo $LD_LIBRARY_PATH | sed -e "s/:/ /g"` ; do
78     if test -f $d/libTKernel.so ; then
79       AC_MSG_RESULT(libTKernel.so detected in $d)
80       CASROOT=$d
81       CASROOT=`echo ${CASROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
82       break
83     fi
84   done
85 fi
86
87 if test -d ${CASROOT}/${casdir}/lib; then
88   CAS_LDPATH="-L$CASROOT/$casdir/lib "
89   AC_MSG_RESULT(yes)
90 else
91   if test -d ${CASROOT}/lib; then
92     CAS_LDPATH="-L$CASROOT/lib "
93     AC_MSG_RESULT(yes)
94   else
95     AC_MSG_RESULT(no)
96   fi
97 fi
98
99
100 dnl were is OCC ?
101 if test -z "$CASROOT"; then
102   AC_MSG_WARN(You must provide CASROOT variable : see OCC installation manual)
103 else
104   occ_ok=yes
105   OCC_VERSION_MAJOR=0
106   OCC_VERSION_MINOR=0
107   OCC_VERSION_MAINTENANCE=0
108   ff=$CASROOT/inc/Standard_Version.hxx
109   if test -f $ff ; then
110     grep "define OCC_VERSION_MAJOR" $ff > /dev/null
111     if test $? = 0 ; then
112       OCC_VERSION_MAJOR=`grep "define OCC_VERSION_MAJOR" $ff | awk '{i=3 ; print $i}'`
113     fi
114     grep "define OCC_VERSION_MINOR" $ff > /dev/null
115     if test $? = 0 ; then
116       OCC_VERSION_MINOR=`grep "define OCC_VERSION_MINOR" $ff | awk '{i=3 ; print $i}'`
117     fi
118     grep "define OCC_VERSION_MAINTENANCE" $ff > /dev/null
119     if test $? = 0 ; then
120       OCC_VERSION_MAINTENANCE=`grep "define OCC_VERSION_MAINTENANCE" $ff | awk '{i=3 ; print $i}'`
121     fi
122   fi
123 fi
124
125 if test "x$occ_ok" = "xyes"; then
126
127 dnl test c++ compiler flag for unsigned character
128   for opt in -funsigned-char -unsigned ; do
129     AC_CXX_OPTION($opt,CAS_CXXFLAGS,flag=yes,flag=no)
130     if test "$flag" = "yes"; then
131       break
132     fi
133   done
134   
135 dnl cascade headers
136
137   CPPFLAGS_old="$CPPFLAGS"
138 case $host_os in
139    linux*)
140       CAS_CPPFLAGS="-DOCC_VERSION_MAJOR=$OCC_VERSION_MAJOR -DOCC_VERSION_MINOR=$OCC_VERSION_MINOR -DOCC_VERSION_MAINTENANCE=$OCC_VERSION_MAINTENANCE -DLIN -DLINTEL -DCSFDB -DNo_exception -DHAVE_CONFIG_H -DHAVE_LIMITS_H -DHAVE_WOK_CONFIG_H"
141
142       OCC_VERSION_STRING="$OCC_VERSION_MAJOR.$OCC_VERSION_MINOR.$OCC_VERSION_MAINTENANCE"
143       case $OCC_VERSION_STRING in
144         [[0-5]].* | 6.0.* | 6.1.0) # catch versions < 6.1.1
145           CAS_CPPFLAGS="$CAS_CPPFLAGS -DNO_CXX_EXCEPTION"
146           ;;
147         *)
148           CAS_CPPFLAGS="$CAS_CPPFLAGS -DOCC_CONVERT_SIGNALS"
149           ;;
150       esac
151       CAS_CPPFLAGS="$CAS_CPPFLAGS -I$CASROOT/inc"
152       ;;
153    osf*)
154       CAS_CPPFLAGS="-DOCC_VERSION_MAJOR=$OCC_VERSION_MAJOR -DOCC_VERSION_MINOR=$OCC_VERSION_MINOR -DOCC_VERSION_MAINTENANCE=$OCC_VERSION_MAINTENANCE -DLIN -DLINTEL -DCSFDB -DNo_exception -DHAVE_CONFIG_H -DHAVE_LIMITS_H -DHAVE_WOK_CONFIG_H -I$CASROOT/inc"
155       ;;
156 esac
157   CPPFLAGS="$CPPFLAGS $CAS_CPPFLAGS"
158
159 dnl test 64 bits
160 case $host_os in
161    linux*)
162       if test x"$host_cpu" = x"x86_64" || test x"$host_cpu" = x"ia64" ;then 
163          CPPFLAGS="-D_OCC64 $CPPFLAGS"; 
164          CXXFLAGS="-D_OCC64 $CXXFLAGS"; 
165          CFLAGS="-D_OCC64 $CFLAGS"; 
166       fi
167       ;;
168 esac
169
170   echo
171   echo testing config.h
172
173   AC_CHECK_HEADER(config.h, config_h=yes, [
174         echo "config.h file not found!"
175   ])
176
177   if test "x$config_h" = xno ; then
178       AC_MSG_WARN(config.h file not found)
179       dnl There is no consequence for SALOME building because
180       dnl this file is not used. SALOME uses SALOMEconfig.h instead!
181   else
182       AC_MSG_RESULT(config.h file ok)    
183   fi
184
185   AC_CHECK_HEADER(Standard_Type.hxx,occ_ok=yes ,occ_ok=no)
186
187 fi
188
189 if test "x$occ_ok" = xyes ; then
190
191   AC_MSG_CHECKING(for OpenCascade libraries)
192
193   LIBS_old="$LIBS"
194   LIBS="$LIBS $CAS_LDPATH -lTKernel"
195   
196   AC_CACHE_VAL(salome_cv_lib_occ,[
197     AC_TRY_LINK(
198 #include <TCollection_AsciiString.hxx>
199 ,   size_t size;
200     TCollection_AsciiString aStr ("toto");
201     aStr.Capitalize();, 
202     eval "salome_cv_lib_occ=yes",eval "salome_cv_lib_occ=no")
203   ])
204   occ_ok="$salome_cv_lib_occ"
205
206 fi
207 CPPFLAGS="$CPPFLAGS_old"
208 LIBS="$LIBS_old"
209
210 if test "x$occ_ok" = xno ; then
211   AC_MSG_RESULT(no)
212   AC_MSG_WARN(Opencascade libraries not found)
213 else
214   AC_MSG_RESULT(yes)
215   CAS_KERNEL="$CAS_LDPATH -lTKernel"
216   CAS_MATH="$CAS_LDPATH -lTKMath"
217
218   if test -f $CASROOT/$casdir/lib/libStdPlugin.so ; then
219     # this libraries are only for CASCADE 5.2.3
220     CAS_STDPLUGIN="StdPlugin"
221   fi
222
223   CAS_OCAF="$CAS_LDPATH -lPTKernel -lTKernel -lTKCDF -lTKLCAF -lTKPCAF -lTKStdSchema"
224   CAS_OCAFVIS="$CAS_LDPATH -lTKCAF -lStdPlugin -lStdLPlugin -lTKPLCAF -lTKPShape -lTKStdLSchema -lTKShapeSchema"
225   
226   CAS_TKV3d="$CAS_LDPATH -lTKV3d"
227   CAS_VIEWER="$CAS_TKV3d -lTKService"
228
229   CAS_TKBRep="$CAS_LDPATH -lTKG2d -lTKG3d -lTKGeomBase -lTKBRep"
230
231   CAS_TKTopAlgo="$CAS_TKBRep -lTKGeomAlgo -lTKTopAlgo"
232   CAS_TKPrim="$CAS_TKTopAlgo -lTKPrim"
233   
234   CAS_MODELER="$CAS_TKPrim -lTKBO -lTKBool -lTKHLR -lTKFillet -lTKOffset -lTKFeat"
235
236   CAS_DATAEXCHANGE="$CAS_LDPATH -lTKIGES -lTKSTEP"
237
238   CAS_LDFLAGS="$CAS_KERNEL $CAS_MATH $CAS_OCAF $CAS_OCAFVIS $CAS_VIEWER $CAS_MODELER $CAS_DATAEXCHANGE"  
239
240 fi
241
242 AC_LANG_RESTORE
243
244 ])dnl
245
246