1 dnl Copyright (C) 2006-2016 CEA/DEN, EDF R&D
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.
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.
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
17 dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 AC_DEFUN([CHECK_CAS],[
21 AC_REQUIRE([AC_PROG_CXX])dnl
22 AC_REQUIRE([AC_PROG_CXXCPP])dnl
24 AC_CHECKING(for OpenCascade)
29 AC_SUBST(CAS_CPPFLAGS)
30 AC_SUBST(CAS_CXXFLAGS)
34 AC_SUBST(CAS_TKTopAlgo)
38 AC_SUBST(CAS_DATAEXCHANGE)
41 AC_SUBST(CAS_STDPLUGIN)
49 dnl libraries directory location
74 AC_MSG_CHECKING(for OpenCascade directories)
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)
82 CASROOT=`echo ${CASROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
88 if test -d ${CASROOT}/${casdir}/lib; then
89 CAS_LDPATH="-L$CASROOT/$casdir/lib "
92 if test -d ${CASROOT}/lib; then
93 CAS_LDPATH="-L$CASROOT/lib "
102 if test -z "$CASROOT"; then
103 AC_MSG_WARN(You must provide CASROOT variable : see OCC installation manual)
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}'`
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}'`
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}'`
126 if test "x$occ_ok" = "xyes"; then
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
138 CPPFLAGS_old="$CPPFLAGS"
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"
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"
149 CAS_CPPFLAGS="$CAS_CPPFLAGS -DOCC_CONVERT_SIGNALS"
152 CAS_CPPFLAGS="$CAS_CPPFLAGS -I$CASROOT/inc"
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"
158 CPPFLAGS="$CPPFLAGS $CAS_CPPFLAGS"
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";
172 echo testing config.h
174 AC_CHECK_HEADER(config.h, config_h=yes, [
175 echo "config.h file not found!"
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!
183 AC_MSG_RESULT(config.h file ok)
186 AC_CHECK_HEADER(Standard_Type.hxx,occ_ok=yes ,occ_ok=no)
190 if test "x$occ_ok" = xyes ; then
192 AC_MSG_CHECKING(for OpenCascade libraries)
195 LIBS="$LIBS $CAS_LDPATH -lTKernel"
197 AC_CACHE_VAL(salome_cv_lib_occ,[
199 #include <TCollection_AsciiString.hxx>
201 TCollection_AsciiString aStr ("toto");
203 eval "salome_cv_lib_occ=yes",eval "salome_cv_lib_occ=no")
205 occ_ok="$salome_cv_lib_occ"
208 CPPFLAGS="$CPPFLAGS_old"
211 if test "x$occ_ok" = xno ; then
213 AC_MSG_WARN(Opencascade libraries not found)
216 CAS_KERNEL="$CAS_LDPATH -lTKernel"
217 CAS_MATH="$CAS_LDPATH -lTKMath"
219 if test -f $CASROOT/$casdir/lib/libStdPlugin.so ; then
220 # this libraries are only for CASCADE 5.2.3
221 CAS_STDPLUGIN="StdPlugin"
224 CAS_OCAF="$CAS_LDPATH -lPTKernel -lTKernel -lTKCDF -lTKLCAF -lTKPCAF -lTKStdSchema"
225 CAS_OCAFVIS="$CAS_LDPATH -lTKCAF -lStdPlugin -lStdLPlugin -lTKPLCAF -lTKPShape -lTKStdLSchema -lTKShapeSchema"
227 CAS_TKV3d="$CAS_LDPATH -lTKV3d"
228 CAS_VIEWER="$CAS_TKV3d -lTKService"
230 CAS_TKBRep="$CAS_LDPATH -lTKG2d -lTKG3d -lTKGeomBase -lTKBRep"
232 CAS_TKTopAlgo="$CAS_TKBRep -lTKGeomAlgo -lTKTopAlgo"
233 CAS_TKPrim="$CAS_TKTopAlgo -lTKPrim"
235 CAS_MODELER="$CAS_TKPrim -lTKBO -lTKBool -lTKHLR -lTKFillet -lTKOffset -lTKFeat"
237 CAS_DATAEXCHANGE="$CAS_LDPATH -lTKIGES -lTKSTEP"
239 CAS_LDFLAGS="$CAS_KERNEL $CAS_MATH $CAS_OCAF $CAS_OCAFVIS $CAS_VIEWER $CAS_MODELER $CAS_DATAEXCHANGE"