1 dnl Copyright (C) 2007-2020 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, 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([MT_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_REQUIRE([CHECK_PYTHON])
31 AC_CHECKING(for omniORB)
35 #if test "x$PYTHON" = "x"
43 AC_PATH_PROG(OMNIORB_IDL, omniidl)
44 if test "x$OMNIORB_IDL" = "x"
47 AC_MSG_RESULT(omniORB binaries not in PATH variable)
52 if test "x$omniORB_ok" = "xyes"
56 OMNIORB_BIN=`echo ${OMNIORB_IDL} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
57 OMNIORB_ROOT=${OMNIORB_BIN}
59 OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
62 if test -d $OMNIORB_ROOT/include ; then
63 # if $OMNIORB_ROOT/include exists, there are a lot of chance that
64 # this is omniORB4.x installed via configure && make && make install
65 OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin\$,lib,"`
68 # omniORB has been installed old way
69 OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin/,lib/,"`
71 OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
72 if test -d $OMNIORB_ROOT/include/omniORB4 ; then
78 AC_SUBST(OMNIORB_ROOT)
80 OMNIORB_INCLUDES="-I$OMNIORB_ROOT/include -I$OMNIORB_ROOT/include/omniORB${OMNIORB_VERSION} -I$OMNIORB_ROOT/include/COS"
81 AC_SUBST(OMNIORB_INCLUDES)
85 OMNIORB_CXXFLAGS="-DOMNIORB_VERSION=$OMNIORB_VERSION"
88 # AC_DEFINE(__sparc__)
89 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sparc__"
93 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__x86__"
100 AC_DEFINE([__OSVERSION__], [5], [Description])
101 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__osf1__"
104 # AC_DEFINE(__sunos__)
106 AC_DEFINE([__OSVERSION__], [5], [Description])
107 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sunos__"
110 # AC_DEFINE(__linux__)
112 AC_DEFINE([__OSVERSION__], [2], [Description])
113 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__linux__"
116 AC_SUBST(OMNIORB_CXXFLAGS)
118 CPPFLAGS_old=$CPPFLAGS
119 CPPFLAGS="$CPPFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
122 AC_CHECK_HEADER(CORBA.h,omniORB_ok="yes",omniORB_ok="no")
124 CPPFLAGS=$CPPFLAGS_old
128 if test "x$omniORB_ok" = "xyes"
130 if test "x$OMNIORB_LIB" = "x/usr/lib"
135 OMNIORB_LDFLAGS="-L$OMNIORB_LIB"
136 OMNIORB_RFLAGS="-Wl,-R$OMNIORB_LIB"
140 LIBS="$LIBS $OMNIORB_LDFLAGS -lomnithread"
142 CXXFLAGS_old=$CXXFLAGS
143 CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
145 AC_MSG_CHECKING(whether we can link with omnithreads)
146 AC_CACHE_VAL(salome_cv_lib_omnithreads,[
148 #include <omnithread.h>
149 , omni_mutex my_mutex,
150 eval "salome_cv_lib_omnithreads=yes",eval "salome_cv_lib_omnithreads=no")
153 omniORB_ok="$salome_cv_lib_omnithreads"
154 if test "x$omniORB_ok" = "xno"
156 AC_MSG_RESULT(omnithreads not found)
162 CXXFLAGS=$CXXFLAGS_old
167 if test "x$omniORB_ok" = "xyes"
170 AC_CHECK_LIB(socket,socket, LIBS="-lsocket $LIBS",,)
171 AC_CHECK_LIB(nsl,gethostbyname, LIBS="-lnsl $LIBS",,)
174 OMNIORB_LIBS="$OMNIORB_LDFLAGS"
175 OMNIORB_LIBS="$OMNIORB_LIBS -lomniORB${OMNIORB_VERSION}"
176 OMNIORB_LIBS="$OMNIORB_LIBS -lomniDynamic${OMNIORB_VERSION}"
177 OMNIORB_LIBS="$OMNIORB_LIBS -lCOS${OMNIORB_VERSION}"
178 OMNIORB_LIBS="$OMNIORB_LIBS -lCOSDynamic${OMNIORB_VERSION}"
179 OMNIORB_LIBS="$OMNIORB_LIBS -lomnithread"
180 OMNIORB_LIBS="$OMNIORB_LIBS ${OMNIORB_RFLAGS}"
181 if test $OMNIORB_VERSION = 3 ; then
182 OMNIORB_LIBS="$OMNIORB_LIBS -ltcpwrapGK"
184 AC_SUBST(OMNIORB_LIBS)
186 LIBS="$OMNIORB_LIBS $LIBS"
187 CXXFLAGS_old=$CXXFLAGS
188 CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
190 AC_MSG_CHECKING(whether we can link with omniORB)
191 AC_CACHE_VAL(salome_cv_lib_omniorb,[
194 , CORBA::ORB_var orb,
195 eval "salome_cv_lib_omniorb3=yes",eval "salome_cv_lib_omniorb3=no")
197 omniORB_ok="$salome_cv_lib_omniorb3"
200 if test "x$omniORB_ok" = "xno"
202 AC_MSG_RESULT(omniORB library linking failed)
208 CXXFLAGS=$CXXFLAGS_old
212 if test "x$omniORB_ok" = "xyes"
215 OMNIORB_IDLCXXFLAGS="-Wba -nf -I${OMNIORB_ROOT}/idl"
216 OMNIORB_PACOIDLCXXFLAGS="-nf -I${OMNIORB_ROOT}/idl"
217 OMNIORB_IDLPYFLAGS_1='-bpython -nf '
218 OMNIORB_IDLPYFLAGS_2=" -I${OMNIORB_ROOT}/idl"
219 OMNIORB_IDLPYFLAGS=${OMNIORB_IDLPYFLAGS_1}${OMNIORB_IDLPYFLAGS_2}
221 AC_SUBST(OMNIORB_IDLCXXFLAGS)
222 AC_SUBST(OMNIORB_PACOIDLCXXFLAGS)
223 AC_SUBST(OMNIORB_IDLPYFLAGS)
225 OMNIORB_IDL_CLN_H=.hh
226 OMNIORB_IDL_CLN_CXX=SK.cc
227 OMNIORB_IDL_CLN_OBJ=SK.o
228 AC_SUBST(OMNIORB_IDL_CLN_H)
229 AC_SUBST(OMNIORB_IDL_CLN_CXX)
230 AC_SUBST(OMNIORB_IDL_CLN_OBJ)
232 OMNIORB_IDL_SRV_H=.hh
233 OMNIORB_IDL_SRV_CXX=SK.cc
234 OMNIORB_IDL_SRV_OBJ=SK.o
235 AC_SUBST(OMNIORB_IDL_SRV_H)
236 AC_SUBST(OMNIORB_IDL_SRV_CXX)
237 AC_SUBST(OMNIORB_IDL_SRV_OBJ)
241 AC_SUBST(OMNIORB_IDL_TIE_H)
242 AC_SUBST(OMNIORB_IDL_TIE_CXX)
244 AC_DEFINE([OMNIORB], [], [Description])
247 AC_DEFINE([CORBA_HAVE_POA], [], [Description])
249 CORBA_ORB_INIT_HAVE_3_ARGS=1
250 AC_DEFINE([CORBA_ORB_INIT_HAVE_3_ARGS], [], [Description])
251 CORBA_ORB_INIT_THIRD_ARG='"omniORB"'
252 AC_DEFINE([CORBA_ORB_INIT_THIRD_ARG], [], [omniORB])
257 if test "x$omniORB_ok" = "xyes"
259 AC_MSG_CHECKING(omniORBpy)
260 $PYTHON -c "import omniORB" &> /dev/null
261 if test $? = 0 ; then
265 AC_MSG_RESULT(no, check your installation of omniORBpy)
272 AC_MSG_RESULT(for omniORBpy: $omniORBpy_ok)
273 AC_MSG_RESULT(for omniORB: $omniORB_ok)
278 dnl AC_LANG_CPLUSPLUS
280 CXXFLAGS_old=$CXXFLAGS
281 CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
283 LIBS="$LIBS $OMNIORB_LDFLAGS $OMNIORB_LIBS"
284 AC_MSG_CHECKING(whether we have double and CORBA::Double compatibility)
290 CORBA::Double *a=new CORBA::Double(2.5);
295 if( (c==*b) && (sizeof(double)==sizeof(CORBA::Double)) ){
304 ,DOUBLECOMP="yes",DOUBLECOMP="no")
305 if test "$DOUBLECOMP" = yes; then
306 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_DOUBLE"
311 AC_MSG_CHECKING(whether we have int and CORBA::Long compatibility)
317 CORBA::Long *a=new CORBA::Long(2);
322 if( (c==*b) && (sizeof(int)==sizeof(CORBA::Long)) )
327 ,LONGCOMP="yes",LONGCOMP="no")
328 if test "$LONGCOMP" = yes; then
329 OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_LONG"
334 CXXFLAGS=$CXXFLAGS_old
339 AC_SUBST(OMNIORB_CXXFLAGS)