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