]> SALOME platform Git repositories - modules/kernel.git/blob - salome_adm/unix/config_files/check_cas.m4
Salome HOME
PR: mergefrom_BR_CCRT_11Nov04
[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
41 OWN_CONFIG_H=no
42
43 CAS_CPPFLAGS=""
44 CAS_CXXFLAGS=""
45 CAS_LDFLAGS=""
46 occ_ok=no
47 own_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 if test -d ${CASROOT}/${casdir}/lib; then
76   CAS_LDPATH="-L$CASROOT/$casdir/lib "
77   AC_MSG_RESULT(yes)
78 else
79   if test -d ${CASROOT}/lib; then
80     CAS_LDPATH="-L$CASROOT/lib "
81     AC_MSG_RESULT(yes)
82   else
83     AC_MSG_RESULT(no)
84   fi
85 fi
86
87
88 dnl were is OCC ?
89 if test -z $CASROOT; then
90   AC_MSG_WARN(You must provide CASROOT variable : see OCC installation manual)
91 else
92   occ_ok=yes
93   OCC_VERSION_MAJOR=0
94   ff=$CASROOT/inc/Standard_Version.hxx
95   if test -f $ff ; then
96     grep "define OCC_VERSION_MAJOR" $ff > /dev/null
97     if test $? = 0 ; then
98       OCC_VERSION_MAJOR=`grep "define OCC_VERSION_MAJOR" $ff | awk '{i=3 ; print $i}'`
99     fi
100   fi
101 fi
102
103 if test "x$occ_ok" = "xyes"; then
104
105 dnl test c++ compiler flag for unsigned character
106   for opt in -funsigned-char -unsigned ; do
107     AC_CXX_OPTION($opt,CAS_CXXFLAGS,flag=yes,flag=no)
108     if test "$flag" = "yes"; then
109       break
110     fi
111   done
112   
113 dnl cascade headers
114
115   CPPFLAGS_old="$CPPFLAGS"
116   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"
117   CPPFLAGS="$CPPFLAGS $CAS_CPPFLAGS"
118
119   echo
120   echo
121   echo testing config.h
122   echo
123   echo
124
125   AC_CHECK_HEADER(config.h, own_config_h=no, [
126         echo
127         echo
128         echo "config.h file not found! Generating it..."
129         echo
130         echo
131         mv confdefs.h backup_confdefs.h
132         ${ROOT_SRCDIR}/make_config
133         rm -rf ${ROOT_BUILDDIR}/*.log
134         rm -rf ${ROOT_BUILDDIR}/*.status
135         mv backup_confdefs.h confdefs.h
136         rm -f backup_confdefs.h
137         own_config_h=yes
138         echo
139         echo
140   ])
141
142   if test "x$own_config_h" = xyes ; then
143     OWN_CONFIG_H=yes
144   fi
145
146   AC_CHECK_HEADER(Standard_Type.hxx,occ_ok=yes ,occ_ok=no)
147
148 fi
149
150 AC_SUBST(OWN_CONFIG_H)
151
152 if test "x$occ_ok" = xyes ; then
153
154   AC_MSG_CHECKING(for OpenCascade libraries)
155
156   LIBS_old="$LIBS"
157   LIBS="$LIBS $CAS_LDPATH -lTKernel"
158   
159   AC_CACHE_VAL(salome_cv_lib_occ,[
160     AC_TRY_LINK(
161 #include <Standard_Type.hxx>
162 ,   size_t size;
163     const Standard_CString aName="toto";
164     Standard_Type myST(aName) ; 
165     myST.Find(aName);,
166     eval "salome_cv_lib_occ=yes",eval "salome_cv_lib_occ=no")
167   ])
168   occ_ok="$salome_cv_lib_occ"
169
170 fi
171 CPPFLAGS="$CPPFLAGS_old"
172 LIBS="$LIBS_old"
173
174 if test "x$occ_ok" = xno ; then
175   AC_MSG_RESULT(no)
176   AC_MSG_WARN(Opencascade libraries not found)
177 else
178   AC_MSG_RESULT(yes)
179   CAS_KERNEL="$CAS_LDPATH -lTKernel -lTKMath"
180
181   # E.A. compatibility version 4 and 5.x  
182   CAS_OCAF="$CAS_LDPATH -lPTKernel -lTKCAF -lFWOSPlugin -lTKPShape -lTKPCAF -lTKStdSchema -lTKShapeSchema -lPAppStdPlugin"
183   if test $OCC_VERSION_MAJOR -lt 5 ; then
184     CAS_OCAF="$CAS_OCAF -lTKPAppStd"
185   fi
186   CAS_OCAF="$CAS_OCAF -lTKCDF"
187   
188   CAS_VIEWER="$CAS_LDPATH -lTKOpenGl -lTKV3d -lTKService"
189   CAS_MODELER="$CAS_LDPATH -lTKG2d -lTKG3d -lTKGeomBase -lTKBRep -lTKGeomAlgo -lTKTopAlgo -lTKPrim -lTKBool -lTKHLR -lTKFillet -lTKOffset"
190
191   # E.A. compatibility version 4 and 5.x  
192   CAS_DATAEXCHANGE="$CAS_LDPATH -lTKXSBase -lTKIGES -lTKSTEP -lTKShHealing"
193   if test $OCC_VERSION_MAJOR -lt 5 ; then
194     CAS_DATAEXCHANGE="$CAS_DATAEXCHANGE -lTKShHealingStd"
195   fi
196
197
198   CAS_LDFLAGS="$CAS_KERNEL $CAS_OCAF $CAS_VIEWER $CAS_MODELER $CAS_DATAEXCHANGE"  
199
200 fi
201
202 AC_LANG_RESTORE
203
204 ])dnl
205
206