1 dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
3 dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 dnl This library is free software; you can redistribute it and/or
7 dnl modify it under the terms of the GNU Lesser General Public
8 dnl License as published by the Free Software Foundation; either
9 dnl version 2.1 of the License.
11 dnl This library is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 dnl Lesser General Public License for more details.
16 dnl You should have received a copy of the GNU Lesser General Public
17 dnl License along with this library; if not, write to the Free Software
18 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 AC_DEFUN([CHECK_CAS],[
24 AC_REQUIRE([AC_PROG_CXX])dnl
25 AC_REQUIRE([AC_PROG_CXXCPP])dnl
27 AC_CHECKING(for OpenCascade)
32 AC_SUBST(CAS_CPPFLAGS)
33 AC_SUBST(CAS_CXXFLAGS)
37 AC_SUBST(CAS_TKTopAlgo)
41 AC_SUBST(CAS_DATAEXCHANGE)
44 AC_SUBST(CAS_STDPLUGIN)
47 AC_SUBST(OCC_VERSION_DEVELOPMENT)
56 dnl libraries directory location
81 AC_MSG_CHECKING(for OpenCascade directories)
83 if test -z "$CASROOT"; then
84 AC_MSG_RESULT(CASROOT not defined)
85 for d in `echo $LD_LIBRARY_PATH | sed -e "s/:/ /g"` ; do
86 if test -f $d/libTKernel.so ; then
87 AC_MSG_RESULT(libTKernel.so detected in $d)
89 CASROOT=`echo ${CASROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
95 CAS_LIBDIR="$CASROOT/$casdir/lib"
96 if test -d ${CAS_LIBDIR}; then
99 if test -d ${CASROOT}/lib; then
100 CAS_LIBDIR="$CASROOT/lib"
106 CAS_LDPATH="-L$CAS_LIBDIR "
109 if test -z "$CASROOT"; then
110 AC_MSG_WARN(You must provide CASROOT variable : see OCC installation manual)
115 OCC_VERSION_MAINTENANCE=0
116 OCC_VERSION_DEVELOPMENT=0
117 if test -f $CASROOT/inc/Standard_Version.hxx; then
118 ff=$CASROOT/inc/Standard_Version.hxx
120 ff=$CASROOT/include/opencascade/Standard_Version.hxx
123 grep "define OCC_VERSION_MAJOR" $ff > /dev/null
124 if test $? = 0 ; then
125 OCC_VERSION_MAJOR=`grep "define OCC_VERSION_MAJOR" $ff | awk '{i=3 ; print $i}'`
127 grep "define OCC_VERSION_MINOR" $ff > /dev/null
128 if test $? = 0 ; then
129 OCC_VERSION_MINOR=`grep "define OCC_VERSION_MINOR" $ff | awk '{i=3 ; print $i}'`
131 grep "define OCC_VERSION_MAINTENANCE" $ff > /dev/null
132 if test $? = 0 ; then
133 OCC_VERSION_MAINTENANCE=`grep "define OCC_VERSION_MAINTENANCE" $ff | awk '{i=3 ; print $i}'`
135 grep "define OCC_VERSION_DEVELOPMENT" $ff > /dev/null
136 if test $? = 0 ; then
137 OCC_VERSION_DEVELOPMENT_STR=`grep "define OCC_VERSION_DEVELOPMENT" $ff | awk '{i=1 ; print $i}'`
138 if test "${OCC_VERSION_DEVELOPMENT_STR}" = "#define" ; then
139 OCC_VERSION_DEVELOPMENT=1
141 dnl OCC_VERSION_DEVELOPMENT=1
143 AC_MSG_CHECKING(for OpenCascade data files)
144 if test -f ${CASROOT}/src/UnitsAPI/Lexi_Expr.dat; then
145 CAS_DATADIR=${CASROOT}
146 AC_MSG_RESULT(found in $CAS_DATADIR/src)
148 if test -f ${CASROOT}/share/opencascade/${OCC_VERSION_MAJOR}.${OCC_VERSION_MINOR}.${OCC_VERSION_MAINTENANCE}/src/UnitsAPI/Lexi_Expr.dat; then
149 CAS_DATADIR=${CASROOT}/share/opencascade/${OCC_VERSION_MAJOR}.${OCC_VERSION_MINOR}.${OCC_VERSION_MAINTENANCE}
150 AC_MSG_RESULT(found in $CAS_DATADIR/src)
153 AC_MSG_RESULT(not found, check OpenCascade installation)
159 if test "x$occ_ok" = "xyes"; then
161 dnl test c++ compiler flag for unsigned character
162 for opt in -funsigned-char -unsigned ; do
163 AC_CXX_OPTION($opt,CAS_CXXFLAGS,flag=yes,flag=no)
164 if test "$flag" = "yes"; then
171 CPPFLAGS_old="$CPPFLAGS"
174 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"
176 OCC_VERSION_STRING="$OCC_VERSION_MAJOR.$OCC_VERSION_MINOR.$OCC_VERSION_MAINTENANCE"
177 case $OCC_VERSION_STRING in
178 [[0-5]].* | 6.0.* | 6.1.0) # catch versions < 6.1.1
179 CAS_CPPFLAGS="$CAS_CPPFLAGS -DNO_CXX_EXCEPTION"
182 CAS_CPPFLAGS="$CAS_CPPFLAGS -DOCC_CONVERT_SIGNALS"
185 CAS_CPPFLAGS="$CAS_CPPFLAGS -I$CASROOT/inc -I$CASROOT/include/opencascade"
188 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"
191 CPPFLAGS="$CPPFLAGS $CAS_CPPFLAGS"
194 echo testing config.h
196 AC_CHECK_HEADER(config.h, config_h=yes, [
197 echo "config.h file not found!"
200 if test "x$config_h" = xno ; then
201 AC_MSG_WARN(config.h file not found)
202 dnl There is no consequence for SALOME building because
203 dnl this file is not used. SALOME uses SALOMEconfig.h instead!
205 AC_MSG_RESULT(config.h file ok)
208 AC_CHECK_HEADER(Standard_Type.hxx,occ_ok=yes ,occ_ok=no)
212 if test "x$occ_ok" = xyes ; then
214 AC_MSG_CHECKING(for OpenCascade libraries)
217 LIBS="$LIBS $CAS_LDPATH -lTKernel"
219 AC_CACHE_VAL(salome_cv_lib_occ,[
221 #include <TCollection_AsciiString.hxx>
222 , TCollection_AsciiString aStr ("toto");
224 eval "salome_cv_lib_occ=yes",eval "salome_cv_lib_occ=no")
226 occ_ok="$salome_cv_lib_occ"
229 CPPFLAGS="$CPPFLAGS_old"
232 if test "x$occ_ok" = xno ; then
234 AC_MSG_WARN(Opencascade libraries not found)
237 CAS_KERNEL="$CAS_LDPATH -lTKernel"
238 CAS_MATH="$CAS_LDPATH -lTKMath"
240 CAS_OCAF="$CAS_LDPATH -lPTKernel -lTKernel -lTKCDF -lTKLCAF -lTKPCAF -lTKStdSchema"
241 CAS_OCAFVIS="$CAS_LDPATH -lTKCAF -lTKPLCAF -lTKPShape -lTKStdLSchema -lTKShapeSchema"
243 if test -f $CASROOT/$casdir/lib/libStdPlugin.so ; then
244 # standard plugin library libStdPlugin has been added in CASCADE 5.2.3
245 CAS_STDPLUGIN="StdPlugin"
246 CAS_OCAFVIS="$CAS_OCAFVIS -lStdPlugin -lStdLPlugin"
247 elif test -f $CASROOT/$casdir/lib/libTKStdSchema.so ; then
248 # standard plugin has been renamed in CASCADE 6.5
249 CAS_STDPLUGIN=TKStdSchema
250 CAS_OCAFVIS="$CAS_OCAFVIS -lTKStdSchema -lTKStdLSchema"
253 CAS_TKV3d="$CAS_LDPATH -lTKV3d"
254 CAS_VIEWER="$CAS_TKV3d -lTKService"
256 CAS_TKBRep="$CAS_LDPATH -lTKG2d -lTKG3d -lTKGeomBase -lTKBRep"
258 CAS_TKTopAlgo="$CAS_TKBRep -lTKGeomAlgo -lTKTopAlgo"
259 CAS_TKPrim="$CAS_TKTopAlgo -lTKPrim"
261 CAS_MODELER="$CAS_TKPrim -lTKBO -lTKBool -lTKHLR -lTKFillet -lTKOffset -lTKFeat"
263 CAS_DATAEXCHANGE="$CAS_LDPATH -lTKIGES -lTKSTEP"
265 CAS_LDFLAGS="$CAS_KERNEL $CAS_MATH $CAS_OCAF $CAS_OCAFVIS $CAS_VIEWER $CAS_MODELER $CAS_DATAEXCHANGE"