Salome HOME
Copyrights update 2015.
[modules/yacs.git] / adm / unix / config_files / check_cas.m4
1 dnl Copyright (C) 2006-2015  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, or (at your option) any later version.
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
20 AC_DEFUN([CHECK_CAS],[
21 AC_REQUIRE([AC_PROG_CXX])dnl
22 AC_REQUIRE([AC_PROG_CXXCPP])dnl
23
24 AC_CHECKING(for OpenCascade)
25
26 AC_LANG_SAVE
27 AC_LANG_CPLUSPLUS
28
29 AC_SUBST(CAS_CPPFLAGS)
30 AC_SUBST(CAS_CXXFLAGS)
31 AC_SUBST(CAS_KERNEL)
32 AC_SUBST(CAS_MATH)
33 AC_SUBST(CAS_VIEWER)
34 AC_SUBST(CAS_TKTopAlgo)
35 AC_SUBST(CAS_MODELER)
36 AC_SUBST(CAS_OCAF)
37 AC_SUBST(CAS_OCAFVIS)
38 AC_SUBST(CAS_DATAEXCHANGE)
39 AC_SUBST(CAS_LDFLAGS)
40 AC_SUBST(CAS_LDPATH)
41 AC_SUBST(CAS_STDPLUGIN)
42
43 CAS_CPPFLAGS=""
44 CAS_CXXFLAGS=""
45 CAS_LDFLAGS=""
46 occ_ok=no
47 config_h=no
48
49 dnl libraries directory location
50 case $host_os in
51    linux*)
52       casdir=Linux
53       ;;
54    freebsd*)
55       casdir=Linux
56       ;;
57    irix5.*)
58       casdir=Linux
59       ;;
60    irix6.*)
61       casdir=Linux
62       ;;
63    osf*)
64       casdir=Linux
65       ;;
66    solaris2.*)
67       casdir=Linux
68       ;;
69    *)
70       casdir=Linux
71       ;;
72 esac
73
74 AC_MSG_CHECKING(for OpenCascade directories)
75
76 if test -z "$CASROOT"; then
77   AC_MSG_RESULT(CASROOT not defined)
78   for d in `echo $LD_LIBRARY_PATH | sed -e "s/:/ /g"` ; do
79     if test -f $d/libTKernel.so ; then
80       AC_MSG_RESULT(libTKernel.so detected in $d)
81       CASROOT=$d
82       CASROOT=`echo ${CASROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
83       break
84     fi
85   done
86 fi
87
88 if test -d ${CASROOT}/${casdir}/lib; then
89   CAS_LDPATH="-L$CASROOT/$casdir/lib "
90   AC_MSG_RESULT(yes)
91 else
92   if test -d ${CASROOT}/lib; then
93     CAS_LDPATH="-L$CASROOT/lib "
94     AC_MSG_RESULT(yes)
95   else
96     AC_MSG_RESULT(no)
97   fi
98 fi
99
100
101 dnl were is OCC ?
102 if test -z "$CASROOT"; then
103   AC_MSG_WARN(You must provide CASROOT variable : see OCC installation manual)
104 else
105   occ_ok=yes
106   OCC_VERSION_MAJOR=0
107   OCC_VERSION_MINOR=0
108   OCC_VERSION_MAINTENANCE=0
109   ff=$CASROOT/inc/Standard_Version.hxx
110   if test -f $ff ; then
111     grep "define OCC_VERSION_MAJOR" $ff > /dev/null
112     if test $? = 0 ; then
113       OCC_VERSION_MAJOR=`grep "define OCC_VERSION_MAJOR" $ff | awk '{i=3 ; print $i}'`
114     fi
115     grep "define OCC_VERSION_MINOR" $ff > /dev/null
116     if test $? = 0 ; then
117       OCC_VERSION_MINOR=`grep "define OCC_VERSION_MINOR" $ff | awk '{i=3 ; print $i}'`
118     fi
119     grep "define OCC_VERSION_MAINTENANCE" $ff > /dev/null
120     if test $? = 0 ; then
121       OCC_VERSION_MAINTENANCE=`grep "define OCC_VERSION_MAINTENANCE" $ff | awk '{i=3 ; print $i}'`
122     fi
123   fi
124 fi
125
126 if test "x$occ_ok" = "xyes"; then
127
128 dnl test c++ compiler flag for unsigned character
129   for opt in -funsigned-char -unsigned ; do
130     AC_CXX_OPTION($opt,CAS_CXXFLAGS,flag=yes,flag=no)
131     if test "$flag" = "yes"; then
132       break
133     fi
134   done
135   
136 dnl cascade headers
137
138   CPPFLAGS_old="$CPPFLAGS"
139 case $host_os in
140    linux*)
141       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"
142
143       OCC_VERSION_STRING="$OCC_VERSION_MAJOR.$OCC_VERSION_MINOR.$OCC_VERSION_MAINTENANCE"
144       case $OCC_VERSION_STRING in
145         [[0-5]].* | 6.0.* | 6.1.0) # catch versions < 6.1.1
146           CAS_CPPFLAGS="$CAS_CPPFLAGS -DNO_CXX_EXCEPTION"
147           ;;
148         *)
149           CAS_CPPFLAGS="$CAS_CPPFLAGS -DOCC_CONVERT_SIGNALS"
150           ;;
151       esac
152       CAS_CPPFLAGS="$CAS_CPPFLAGS -I$CASROOT/inc"
153       ;;
154    osf*)
155       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"
156       ;;
157 esac
158   CPPFLAGS="$CPPFLAGS $CAS_CPPFLAGS"
159
160 dnl test 64 bits
161 case $host_os in
162    linux*)
163       if test x"$host_cpu" = x"x86_64" || test x"$host_cpu" = x"ia64" ;then 
164          CPPFLAGS="-D_OCC64 $CPPFLAGS"; 
165          CXXFLAGS="-D_OCC64 $CXXFLAGS"; 
166          CFLAGS="-D_OCC64 $CFLAGS"; 
167       fi
168       ;;
169 esac
170
171   echo
172   echo testing config.h
173
174   AC_CHECK_HEADER(config.h, config_h=yes, [
175         echo "config.h file not found!"
176   ])
177
178   if test "x$config_h" = xno ; then
179       AC_MSG_WARN(config.h file not found)
180       dnl There is no consequence for SALOME building because
181       dnl this file is not used. SALOME uses SALOMEconfig.h instead!
182   else
183       AC_MSG_RESULT(config.h file ok)    
184   fi
185
186   AC_CHECK_HEADER(Standard_Type.hxx,occ_ok=yes ,occ_ok=no)
187
188 fi
189
190 if test "x$occ_ok" = xyes ; then
191
192   AC_MSG_CHECKING(for OpenCascade libraries)
193
194   LIBS_old="$LIBS"
195   LIBS="$LIBS $CAS_LDPATH -lTKernel"
196   
197   AC_CACHE_VAL(salome_cv_lib_occ,[
198     AC_TRY_LINK(
199 #include <TCollection_AsciiString.hxx>
200 ,   size_t size;
201     TCollection_AsciiString aStr ("toto");
202     aStr.Capitalize();, 
203     eval "salome_cv_lib_occ=yes",eval "salome_cv_lib_occ=no")
204   ])
205   occ_ok="$salome_cv_lib_occ"
206
207 fi
208 CPPFLAGS="$CPPFLAGS_old"
209 LIBS="$LIBS_old"
210
211 if test "x$occ_ok" = xno ; then
212   AC_MSG_RESULT(no)
213   AC_MSG_WARN(Opencascade libraries not found)
214 else
215   AC_MSG_RESULT(yes)
216   CAS_KERNEL="$CAS_LDPATH -lTKernel"
217   CAS_MATH="$CAS_LDPATH -lTKMath"
218
219   if test -f $CASROOT/$casdir/lib/libStdPlugin.so ; then
220     # this libraries are only for CASCADE 5.2.3
221     CAS_STDPLUGIN="StdPlugin"
222   fi
223
224   CAS_OCAF="$CAS_LDPATH -lPTKernel -lTKernel -lTKCDF -lTKLCAF -lTKPCAF -lTKStdSchema"
225   CAS_OCAFVIS="$CAS_LDPATH -lTKCAF -lStdPlugin -lStdLPlugin -lTKPLCAF -lTKPShape -lTKStdLSchema -lTKShapeSchema"
226   
227   CAS_TKV3d="$CAS_LDPATH -lTKV3d"
228   CAS_VIEWER="$CAS_TKV3d -lTKService"
229
230   CAS_TKBRep="$CAS_LDPATH -lTKG2d -lTKG3d -lTKGeomBase -lTKBRep"
231
232   CAS_TKTopAlgo="$CAS_TKBRep -lTKGeomAlgo -lTKTopAlgo"
233   CAS_TKPrim="$CAS_TKTopAlgo -lTKPrim"
234   
235   CAS_MODELER="$CAS_TKPrim -lTKBO -lTKBool -lTKHLR -lTKFillet -lTKOffset -lTKFeat"
236
237   CAS_DATAEXCHANGE="$CAS_LDPATH -lTKIGES -lTKSTEP"
238
239   CAS_LDFLAGS="$CAS_KERNEL $CAS_MATH $CAS_OCAF $CAS_OCAFVIS $CAS_VIEWER $CAS_MODELER $CAS_DATAEXCHANGE"  
240
241 fi
242
243 AC_LANG_RESTORE
244
245 ])dnl
246
247