AC_DEFUN([_AI_ORB_BUILDTEST], [ AC_ARG_ENABLE( [orb-buildtest], AS_HELP_STRING(--enable-orb-buildtest,try to build a test ORB program [[[no]]]), [ USE_ORB_BUILDTEST="${enableval}" ], [ USE_ORB_BUILDTEST="no" ]) orbBuildTest() { AC_MSG_CHECKING([whether a test program can be built against the detected ORB]) cat > conftest.idl < conftest_i.cpp < #endif #include "conftestServer.hpp" class Simple_i : public POA_AutotoolsIDL::Simple { public: char *echo(const char *str) throw (CORBA::SystemException); }; char *Simple_i::echo(const char *str) throw (CORBA::SystemException) { return CORBA::string_dup(str); } int main(int argc, char **argv) { try { CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); PortableServer::POA_var poa = PortableServer::POA::_narrow(orb->resolve_initial_references("RootPOA")); Simple_i *simple_i = new Simple_i(); PortableServer::ObjectId_var simpleObjId = poa->activate_object(simple_i); PortableServer::POAManager_var pman = poa->the_POAManager(); pman->activate(); AutotoolsIDL::Simple_var simple = simple_i->_this(); orb->run(); orb->destroy(); } catch (...) { return 1; } return 0; } EOF # The double $ is required by make, but not when running the command directly with sh. IDLC_FIXED=`echo ${IDLC} | sed 's/[[$][$]]/$/g'` if \ echo "${IDLC_FIXED} ${ORB_DEFINES} ${IDLCPPFLAGS} ${IDLCXXFLAGS} conftest.idl" 1>&5 2>&1 && \ ${SHELL} -c "${IDLC_FIXED} ${ORB_DEFINES} ${IDLCPPFLAGS} ${IDLCXXFLAGS} conftest.idl" 1>&5 2>&1 && \ echo "ORB_TYPE=${ORB_TYPE} \"${ac_aux_dir}/idlfix\" conftest" 1>&5 2>&1 && \ ${SHELL} -c "ORB_TYPE=${ORB_TYPE} \"${ac_aux_dir}/idlfix\" conftest" 1>&5 2>&1 && \ echo "${CXX} ${ORB_DEFINES} -I. ${INCLUDES} ${ORB_CPPFLAGS} ${CPPFLAGS} ${ORB_CXXFLAGS} ${CXXFLAGS} -c -o conftestServer.o conftestServer.cpp" 1>&5 2>&1 && \ ${SHELL} -c "${CXX} ${ORB_DEFINES} -I. ${INCLUDES} ${ORB_CPPFLAGS} ${CPPFLAGS} ${ORB_CXXFLAGS} ${CXXFLAGS} -c -o conftestServer.o conftestServer.cpp" 1>&5 2>&1 && \ echo "${CXX} ${ORB_DEFINES} -I. ${INCLUDES} ${ORB_CPPFLAGS} ${CPPFLAGS} ${ORB_CXXFLAGS} ${CXXFLAGS} -c -o conftest_i.o conftest_i.cpp" 1>&5 2>&1 && \ ${SHELL} -c "${CXX} ${ORB_DEFINES} -I. ${INCLUDES} ${ORB_CPPFLAGS} ${CPPFLAGS} ${ORB_CXXFLAGS} ${CXXFLAGS} -c -o conftest_i.o conftest_i.cpp" 1>&5 2>&1 && \ echo "${CXX} ${ORB_CXXFLAGS} ${CXXFLAGS} ${ORB_LDFLAGS} ${LDFLAGS} -o conftest conftest_i.o conftestServer.o ${ORB_LIBS} ${LIBS}" 1>&5 2>&1 && \ ${SHELL} -c "${CXX} ${ORB_CXXFLAGS} ${CXXFLAGS} ${ORB_LDFLAGS} ${LDFLAGS} -o conftest conftest_i.o conftestServer.o ${ORB_LIBS} ${LIBS}" 1>&5 2>&1 then ORB_BUILDTEST="yes" AC_MSG_RESULT([yes]) else ORB_BUILDTEST="no" AC_MSG_RESULT([no]) echo failed conftest.idl was: 1>&5 cat conftest.idl 1>&5 echo failed conftest_i.cpp was: 1>&5 cat conftest_i.cpp 1>&5 fi rm -f conftest* } if test "x${USE_ORB_BUILDTEST}" = "xyes" then orbBuildTest else ORB_BUILDTEST="yes" fi ])