1 dnl Copyright (C) 2007-2024 CEA, EDF, 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, or (at your option) any later version.
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_OMNIORB],[
24 AC_REQUIRE([AC_PROG_CC])dnl
25 AC_REQUIRE([AC_PROG_CXX])dnl
26 AC_REQUIRE([AC_PROG_CPP])dnl
27 AC_REQUIRE([AC_PROG_CXXCPP])dnl
29 AC_CHECKING(for omniORB)
32 if test "x$PYTHON" = "x"
40 AC_PATH_PROG(OMNIORB_IDL, omniidl)
41 if test "x$OMNIORB_IDL" = "x"
44 AC_MSG_RESULT(omniORB binaries not in PATH variable)
49 if test "x$omniORB_ok" = "xyes"
53 OMNIORB_BIN=`echo ${OMNIORB_IDL} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
54 OMNIORB_ROOT=${OMNIORB_BIN}
56 OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
59 if test -d $OMNIORB_ROOT/include ; then
60 # if $OMNIORB_ROOT/include exists, there are a lot of chance that
61 # this is omniORB4.x installed via configure && make && make install
62 OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin\$,lib,"`
65 # omniORB has been installed old way
66 OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin/,lib/,"`
68 OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
69 if test -d $OMNIORB_ROOT/include/omniORB4 ; then
75 AC_SUBST(OMNIORB_ROOT)
77 OMNIORB_INCLUDES="-I$OMNIORB_ROOT/include -I$OMNIORB_ROOT/include/omniORB${OMNIORB_VERSION} -I$OMNIORB_ROOT/include/COS"
78 AC_SUBST(OMNIORB_INCLUDES)
82 OMNIORB_CXXFLAGS="-DOMNIORB_VERSION=$OMNIORB_VERSION"
85 # AC_DEFINE(__sparc__)
86 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sparc__"
90 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__x86__"
97 AC_DEFINE([__OSVERSION__], [5], [Description])
98 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__osf1__"
101 # AC_DEFINE(__sunos__)
103 AC_DEFINE([__OSVERSION__], [5], [Description])
104 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sunos__"
107 # AC_DEFINE(__linux__)
109 AC_DEFINE([__OSVERSION__], [2], [Description])
110 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__linux__"
113 AC_SUBST(OMNIORB_CXXFLAGS)
115 CPPFLAGS_old=$CPPFLAGS
116 CPPFLAGS="$CPPFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
119 AC_CHECK_HEADER(CORBA.h,omniORB_ok="yes",omniORB_ok="no")
121 CPPFLAGS=$CPPFLAGS_old
125 if test "x$omniORB_ok" = "xyes"
127 if test "x$OMNIORB_LIB" = "x/usr/lib"
132 OMNIORB_LDFLAGS="-L$OMNIORB_LIB"
133 OMNIORB_RFLAGS="-Wl,-R$OMNIORB_LIB"
137 LIBS="$LIBS $OMNIORB_LDFLAGS -lomnithread"
139 CXXFLAGS_old=$CXXFLAGS
140 CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
142 AC_MSG_CHECKING(whether we can link with omnithreads)
143 AC_CACHE_VAL(salome_cv_lib_omnithreads,[
145 #include <omnithread.h>
146 , omni_mutex my_mutex,
147 eval "salome_cv_lib_omnithreads=yes",eval "salome_cv_lib_omnithreads=no")
150 omniORB_ok="$salome_cv_lib_omnithreads"
151 if test "x$omniORB_ok" = "xno"
153 AC_MSG_RESULT(omnithreads not found)
159 CXXFLAGS=$CXXFLAGS_old
164 if test "x$omniORB_ok" = "xyes"
167 AC_CHECK_LIB(socket,socket, LIBS="-lsocket $LIBS",,)
168 AC_CHECK_LIB(nsl,gethostbyname, LIBS="-lnsl $LIBS",,)
171 OMNIORB_LIBS="$OMNIORB_LDFLAGS"
172 OMNIORB_LIBS="$OMNIORB_LIBS -lomniORB${OMNIORB_VERSION}"
173 OMNIORB_LIBS="$OMNIORB_LIBS -lomniDynamic${OMNIORB_VERSION}"
174 OMNIORB_LIBS="$OMNIORB_LIBS -lCOS${OMNIORB_VERSION}"
175 OMNIORB_LIBS="$OMNIORB_LIBS -lCOSDynamic${OMNIORB_VERSION}"
176 OMNIORB_LIBS="$OMNIORB_LIBS -lomnithread"
177 OMNIORB_LIBS="$OMNIORB_LIBS ${OMNIORB_RFLAGS}"
178 if test $OMNIORB_VERSION = 3 ; then
179 OMNIORB_LIBS="$OMNIORB_LIBS -ltcpwrapGK"
181 AC_SUBST(OMNIORB_LIBS)
183 LIBS="$OMNIORB_LIBS $LIBS"
184 CXXFLAGS_old=$CXXFLAGS
185 CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
187 AC_MSG_CHECKING(whether we can link with omniORB)
188 AC_CACHE_VAL(salome_cv_lib_omniorb,[
191 , CORBA::ORB_var orb,
192 eval "salome_cv_lib_omniorb3=yes",eval "salome_cv_lib_omniorb3=no")
194 omniORB_ok="$salome_cv_lib_omniorb3"
197 if test "x$omniORB_ok" = "xno"
199 AC_MSG_RESULT(omniORB library linking failed)
205 CXXFLAGS=$CXXFLAGS_old
209 if test "x$omniORB_ok" = "xyes"
212 OMNIORB_IDLCXXFLAGS="-Wba -nf -I${OMNIORB_ROOT}/idl"
213 OMNIORB_PACOIDLCXXFLAGS="-nf -I${OMNIORB_ROOT}/idl"
214 OMNIORB_IDLPYFLAGS_1='-bpython -nf '
215 OMNIORB_IDLPYFLAGS_2=" -I${OMNIORB_ROOT}/idl"
216 OMNIORB_IDLPYFLAGS=${OMNIORB_IDLPYFLAGS_1}${OMNIORB_IDLPYFLAGS_2}
218 AC_SUBST(OMNIORB_IDLCXXFLAGS)
219 AC_SUBST(OMNIORB_PACOIDLCXXFLAGS)
220 AC_SUBST(OMNIORB_IDLPYFLAGS)
222 OMNIORB_IDL_CLN_H=.hh
223 OMNIORB_IDL_CLN_CXX=SK.cc
224 OMNIORB_IDL_CLN_OBJ=SK.o
225 AC_SUBST(OMNIORB_IDL_CLN_H)
226 AC_SUBST(OMNIORB_IDL_CLN_CXX)
227 AC_SUBST(OMNIORB_IDL_CLN_OBJ)
229 OMNIORB_IDL_SRV_H=.hh
230 OMNIORB_IDL_SRV_CXX=SK.cc
231 OMNIORB_IDL_SRV_OBJ=SK.o
232 AC_SUBST(OMNIORB_IDL_SRV_H)
233 AC_SUBST(OMNIORB_IDL_SRV_CXX)
234 AC_SUBST(OMNIORB_IDL_SRV_OBJ)
238 AC_SUBST(OMNIORB_IDL_TIE_H)
239 AC_SUBST(OMNIORB_IDL_TIE_CXX)
241 AC_DEFINE([OMNIORB], [], [Description])
244 AC_DEFINE([CORBA_HAVE_POA], [], [Description])
246 CORBA_ORB_INIT_HAVE_3_ARGS=1
247 AC_DEFINE([CORBA_ORB_INIT_HAVE_3_ARGS], [], [Description])
248 CORBA_ORB_INIT_THIRD_ARG='"omniORB"'
249 AC_DEFINE([CORBA_ORB_INIT_THIRD_ARG], [], [omniORB])
254 if test "x$omniORB_ok" = "xyes"
256 AC_MSG_CHECKING(omniORBpy)
257 $PYTHON -c "import omniORB" &> /dev/null
258 if test $? = 0 ; then
262 AC_MSG_RESULT(no, check your installation of omniORBpy)
269 AC_MSG_RESULT(for omniORBpy: $omniORBpy_ok)
270 AC_MSG_RESULT(for omniORB: $omniORB_ok)
275 dnl AC_LANG_CPLUSPLUS
277 CXXFLAGS_old=$CXXFLAGS
278 CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
280 LIBS="$LIBS $OMNIORB_LDFLAGS $OMNIORB_LIBS"
281 AC_MSG_CHECKING(whether we have double and CORBA::Double compatibility)
287 CORBA::Double *a=new CORBA::Double(2.5);
292 if( (c==*b) && (sizeof(double)==sizeof(CORBA::Double)) ){
301 ,DOUBLECOMP="yes",DOUBLECOMP="no")
302 if test "$DOUBLECOMP" = yes; then
303 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_DOUBLE"
308 AC_MSG_CHECKING(whether we have int and CORBA::Long compatibility)
314 CORBA::Long *a=new CORBA::Long(2);
319 if( (c==*b) && (sizeof(int)==sizeof(CORBA::Long)) )
324 ,LONGCOMP="yes",LONGCOMP="no")
325 if test "$LONGCOMP" = yes; then
326 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_LONG"
331 CXXFLAGS=$CXXFLAGS_old
336 AC_SUBST(OMNIORB_CXXFLAGS)