Revision: 6756
http://playerstage.svn.sourceforge.net/playerstage/?rev=6756&view=rev
Author: gbiggs
Date: 2008-07-03 19:44:27 -0700 (Thu, 03 Jul 2008)
Log Message:
-----------
Fixes to make player compile on QNX and Solaris
Modified Paths:
--------------
code/player/trunk/client_libs/libplayerc/CMakeLists.txt
code/player/trunk/client_libs/libplayerc/client.c
code/player/trunk/client_libs/libplayerc++/CMakeLists.txt
code/player/trunk/cmake/internal/SearchForStuff.cmake
code/player/trunk/libplayercore/CMakeLists.txt
code/player/trunk/libplayertcp/CMakeLists.txt
code/player/trunk/libplayerxdr/CMakeLists.txt
code/player/trunk/libplayerxdr/functiontable.c
code/player/trunk/libplayerxdr/functiontable.h
code/player/trunk/playerconfig.h.in
code/player/trunk/replace/clock_gettime.c
code/player/trunk/server/drivers/rfid/rfi341_protocol.cc
Modified: code/player/trunk/client_libs/libplayerc/CMakeLists.txt
===================================================================
--- code/player/trunk/client_libs/libplayerc/CMakeLists.txt 2008-07-03
23:46:19 UTC (rev 6755)
+++ code/player/trunk/client_libs/libplayerc/CMakeLists.txt 2008-07-04
02:44:27 UTC (rev 6756)
@@ -59,16 +59,18 @@
TARGET_LINK_LIBRARIES (playerc playerxdr playerutils playererror
${PLAYERC_EXTRA_LINK_LIBRARIES})
IF (HAVE_JPEG)
TARGET_LINK_LIBRARIES (playerc playerjpeg)
- PLAYERC_ADD_LINK_LIB (jpeg)
ENDIF (HAVE_JPEG)
IF (HAVE_Z)
TARGET_LINK_LIBRARIES (playerc z)
- PLAYERC_ADD_LINK_LIB (z)
ENDIF (HAVE_Z)
IF (HAVE_GEOS)
TARGET_LINK_LIBRARIES (playerc ${GEOS_LIBS})
- PLAYERC_ADD_LINK_LIB (${GEOS_LIBS})
ENDIF (HAVE_GEOS)
+IF (PLAYER_OS_QNX)
+ TARGET_LINK_LIBRARIES (playerc socket rpc)
+ELSEIF (PLAYER_OS_SOLARIS)
+ TARGET_LINK_LIBRARIES (playerc socket nsl)
+ENDIF (PLAYER_OS_QNX)
PLAYER_INSTALL_HEADERS (playerc playerc.h)
Modified: code/player/trunk/client_libs/libplayerc/client.c
===================================================================
--- code/player/trunk/client_libs/libplayerc/client.c 2008-07-03 23:46:19 UTC
(rev 6755)
+++ code/player/trunk/client_libs/libplayerc/client.c 2008-07-04 02:44:27 UTC
(rev 6756)
@@ -1180,7 +1180,7 @@
if((encode_msglen =
(*packfunc)(client->write_xdrdata + PLAYERXDR_MSGHDR_SIZE,
PLAYER_MAX_MESSAGE_SIZE - PLAYERXDR_MSGHDR_SIZE,
- data, PLAYERXDR_ENCODE)) < 0)
+ (void*) data, PLAYERXDR_ENCODE)) < 0)
{
PLAYERC_ERR4("encoding failed on message from %s:%u with type %s:%u",
interf_to_str(header->addr.interf), header->addr.index,
msgtype_to_str(header->type), header->subtype);
Modified: code/player/trunk/client_libs/libplayerc++/CMakeLists.txt
===================================================================
--- code/player/trunk/client_libs/libplayerc++/CMakeLists.txt 2008-07-03
23:46:19 UTC (rev 6755)
+++ code/player/trunk/client_libs/libplayerc++/CMakeLists.txt 2008-07-04
02:44:27 UTC (rev 6756)
@@ -1,6 +1,11 @@
ADD_SUBDIRECTORY (test)
-OPTION (BUILD_PLAYERCC "Build the C++ client library" ON)
+IF (HAVE_STL)
+ OPTION (BUILD_PLAYERCC "Build the C++ client library" ON)
+ELSE (HAVE_STL)
+ MESSAGE (STATUS "PlayerC++ client library will not be built - STL is not
available.")
+ SET (BUILD_PLAYERCC OFF CACHE BOOL "Build the C++ client library" FORCE)
+ENDIF (HAVE_STL)
IF (PLAYER_OS_OSX AND CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION
EQUAL 4)
# Boost is off by default on OS X under CMake 2.4
@@ -191,6 +196,13 @@
PLAYER_ADD_LIBRARY (playerc++ ${playerccSrcs} ${playercppconfig_h})
TARGET_LINK_LIBRARIES (playerc++ playerxdr playerutils playerc
${PLAYERCC_EXTRA_LINK_LIBRARIES})
+ IF (PLAYER_OS_SOLARIS)
+ TARGET_LINK_LIBRARIES (playerc++ socket nsl)
+ SET (pkgconfigLibFlags "-lsocket -lnsl")
+ ELSE (PLAYER_OS_SOLARIS)
+ SET (pkgconfigLibFlags)
+ ENDIF (PLAYER_OS_SOLARIS)
+
PLAYER_MAKE_PKGCONFIG ("playerc++"
"C++ wrapper for libplayerc - part of the Player
Project"
"playerxdr playerc" "" "-I${boostIncludeDir}"
Modified: code/player/trunk/cmake/internal/SearchForStuff.cmake
===================================================================
--- code/player/trunk/cmake/internal/SearchForStuff.cmake 2008-07-03
23:46:19 UTC (rev 6755)
+++ code/player/trunk/cmake/internal/SearchForStuff.cmake 2008-07-04
02:44:27 UTC (rev 6756)
@@ -12,6 +12,16 @@
CHECK_FUNCTION_EXISTS (getaddrinfo HAVE_GETADDRINFO)
SET (CMAKE_REQUIRED_LIBRARIES)
+IF (PLAYER_OS_QNX)
+ SET (CMAKE_REQUIRED_LIBRARIES rpc)
+ENDIF (PLAYER_OS_QNX)
+CHECK_FUNCTION_EXISTS (xdr_free HAVE_XDR)
+IF (NOT HAVE_XDR)
+ MESSAGE (STATUS "XDR was not found. This is necessary for Player to
function.")
+ENDIF (NOT HAVE_XDR)
+CHECK_FUNCTION_EXISTS (xdr_longlong_t HAVE_XDR_LONGLONG_T)
+SET (CMAKE_REQUIRED_LIBRARIES)
+
CHECK_FUNCTION_EXISTS (cfmakeraw HAVE_CFMAKERAW)
CHECK_FUNCTION_EXISTS (dirname HAVE_DIRNAME)
CHECK_LIBRARY_EXISTS (ltdl lt_dlopenext "" HAVE_LIBLTDL)
@@ -93,6 +103,20 @@
IF (PLAYER_OS_QNX)
SET (PTHREAD_LIB)
+ SET (SOCKET_LIBS socket)
+ SET (SOCKET_LIBS_FLAGS -lsocket)
+ELSEIF (PLAYER_OS_SOLARIS)
+ SET (PTHREAD_LIB -lpthread)
+ SET (SOCKET_LIBS socket nsl)
+ SET (SOCKET_LIBS_FLAGS "-lsocket -lnsl")
ELSE (PLAYER_OS_QNX)
SET (PTHREAD_LIB -lpthread)
+ SET (SOCKET_LIBS)
+ SET (SOCKET_LIBS_FLAGS)
ENDIF (PLAYER_OS_QNX)
+
+# STL check
+SET (testSTLSource ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/test_stl.cpp)
+FILE (WRITE ${testSTLSource}
+ "#include <string>\nint main () {std::string a = \"blag\"; return 0;}\n")
+TRY_COMPILE (HAVE_STL ${CMAKE_CURRENT_BINARY_DIR} ${testSTLSource})
Modified: code/player/trunk/libplayercore/CMakeLists.txt
===================================================================
--- code/player/trunk/libplayercore/CMakeLists.txt 2008-07-03 23:46:19 UTC
(rev 6755)
+++ code/player/trunk/libplayercore/CMakeLists.txt 2008-07-04 02:44:27 UTC
(rev 6756)
@@ -61,10 +61,11 @@
# from the fact that message cloning functions are auto-generated into
# playerxdr and used here. Those functions should go into a separate
# library.
-SET (coreLibs playerutils playererror playerxdr pthread)
+SET (coreLibs playerutils playererror playerxdr)
IF (PLAYER_OS_QNX)
SET (corePCLibs)
ELSE (PLAYER_OS_QNX)
+ SET (coreLibs ${coreLibs} pthread)
SET (corePCLibs "-lpthread")
PLAYER_ADD_LINK_LIB (pthread)
ENDIF (PLAYER_OS_QNX)
Modified: code/player/trunk/libplayertcp/CMakeLists.txt
===================================================================
--- code/player/trunk/libplayertcp/CMakeLists.txt 2008-07-03 23:46:19 UTC
(rev 6755)
+++ code/player/trunk/libplayertcp/CMakeLists.txt 2008-07-04 02:44:27 UTC
(rev 6756)
@@ -3,6 +3,17 @@
INCLUDE_DIRECTORIES (${PROJECT_BINARY_DIR}/libplayercore)
+IF (PLAYER_OS_QNX)
+ SET (socketLibs socket)
+ SET (socketLibsFlags -lsocket)
+ELSEIF (PLAYER_OS_SOLARIS)
+ SET (socketLibs socket nsl)
+ SET (socketLibsFlags "-lsocket -lnsl")
+ELSE (PLAYER_OS_QNX)
+ SET (socketLibs)
+ SET (socketLibsFlags)
+ENDIF (PLAYER_OS_QNX)
+
IF (INCLUDE_TCP)
OPTION (ENABLE_TCP_NODELAY "Turn off Nagel's buffering algorithm (which
may increase socket latency when used)" OFF)
@@ -14,12 +25,17 @@
SET (playertcpSrcs ${playertcpSrcs}
${PROJECT_SOURCE_DIR}/replace/compressBound.c)
ENDIF (NOT HAVE_COMPRESSBOUND)
PLAYER_ADD_LIBRARY (playertcp ${playertcpSrcs})
- TARGET_LINK_LIBRARIES (playertcp playercore playererror playerutils
playerxdr)
+ TARGET_LINK_LIBRARIES (playertcp playercore playererror playerutils
playerxdr ${SOCKET_LIBS})
+ IF (SOCKET_LIBS)
+ PLAYER_ADD_LINK_LIB (${SOCKET_LIBS})
+ ENDIF (SOCKET_LIBS)
IF (HAVE_Z)
TARGET_LINK_LIBRARIES (playertcp z)
PLAYER_ADD_LINK_LIB (z)
+ SET (zLibFlag -lz)
ENDIF (HAVE_Z)
- PLAYER_MAKE_PKGCONFIG ("playertcp" "Player TCP messaging library - part of
the Player Project" "playererror playercore" "" "" "")
+ PLAYER_MAKE_PKGCONFIG ("playertcp" "Player TCP messaging library - part of
the Player Project"
+ "playererror playercore" "" "" "${zLibFlag}
${SOCKET_LIBS_FLAGS}")
PLAYER_INSTALL_HEADERS (playertcp playertcp.h)
ENDIF (INCLUDE_TCP)
@@ -33,9 +49,12 @@
SET (playerudpSrcs ${playerudpSrcs}
${PROJECT_SOURCE_DIR}/replace/compressBound.c)
ENDIF (NOT HAVE_COMPRESSBOUND)
PLAYER_ADD_LIBRARY (playerudp ${playerudpSrcs})
- TARGET_LINK_LIBRARIES (playerudp playercore playererror playerutils
playerxdr)
- TARGET_LINK_LIBRARIES (playerudp z)
- PLAYER_MAKE_PKGCONFIG ("playerudp" "Player UDP messaging library - part of
the Player Project" "playererror playercore" "" "" "")
+ TARGET_LINK_LIBRARIES (playerudp playercore playererror playerutils
playerxdr ${SOCKET_LIBS} z)
+ IF (SOCKET_LIBS)
+ PLAYER_ADD_LINK_LIB (${SOCKET_LIBS} z)
+ ENDIF (SOCKET_LIBS)
+ PLAYER_MAKE_PKGCONFIG ("playerudp" "Player UDP messaging library - part of
the Player Project"
+ "playererror playercore" "" "" "-lz
${SOCKET_LIBS_FLAGS}")
PLAYER_INSTALL_HEADERS (playertcp playerudp.h)
ENDIF (INCLUDE_UDP)
Modified: code/player/trunk/libplayerxdr/CMakeLists.txt
===================================================================
--- code/player/trunk/libplayerxdr/CMakeLists.txt 2008-07-03 23:46:19 UTC
(rev 6755)
+++ code/player/trunk/libplayerxdr/CMakeLists.txt 2008-07-04 02:44:27 UTC
(rev 6756)
@@ -36,9 +36,19 @@
functiontable.c
${functiontable_gen_h})
+IF (PLAYER_OS_QNX)
+ SET (xdrLibFlag -lrpc)
+ELSE (PLAYER_OS_QNX)
+ SET (xdrLibFlag)
+ENDIF (PLAYER_OS_QNX)
+
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR})
PLAYER_ADD_LIBRARY (playerxdr ${playerxdrSrcs})
SET_SOURCE_FILES_PROPERTIES (${playerxdr_h} ${playerxdr_c} PROPERTIES
GENERATED TRUE)
-PLAYER_MAKE_PKGCONFIG ("playerxdr" "Player XDR messaging library - part of the
Player Project" "" "" "" "")
+IF (PLAYER_OS_QNX)
+ TARGET_LINK_LIBRARIES (playerxdr rpc)
+ PLAYER_ADD_LINK_LIB (rpc)
+ENDIF (PLAYER_OS_QNX)
+PLAYER_MAKE_PKGCONFIG ("playerxdr" "Player XDR messaging library - part of the
Player Project" "" "" "" "${xdrLibFlag}")
PLAYER_INSTALL_HEADERS (playerxdr ${playerxdr_h} functiontable.h)
Modified: code/player/trunk/libplayerxdr/functiontable.c
===================================================================
--- code/player/trunk/libplayerxdr/functiontable.c 2008-07-03 23:46:19 UTC
(rev 6755)
+++ code/player/trunk/libplayerxdr/functiontable.c 2008-07-04 02:44:27 UTC
(rev 6756)
@@ -56,6 +56,34 @@
#include "playerxdr.h"
#include "functiontable.h"
+#ifndef HAVE_XDR_LONGLONG_T
+#include <rpc/types.h>
+#include <rpc/xdr.h>
+
+bool_t xdr_longlong_t(XDR *xdrs, long long int *llp)
+{
+ long int t1, t2;
+
+ if (xdrs->x_op == XDR_ENCODE)
+ {
+ t1 = (long) ((*llp) >> 32);
+ t2 = (long) (*llp);
+ return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
+ }
+ if (xdrs->x_op == XDR_DECODE)
+ {
+ if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
+ return FALSE;
+ *llp = ((long long int) t1) << 32;
+ *llp |= (uint32_t) t2;
+ return TRUE;
+ }
+ if (xdrs->x_op == XDR_FREE)
+ return TRUE;
+ return FALSE;
+}
+#endif
+
static playerxdr_function_t init_ftable[] =
{
/* This list is currently alphabetized, please keep it that way! */
Modified: code/player/trunk/libplayerxdr/functiontable.h
===================================================================
--- code/player/trunk/libplayerxdr/functiontable.h 2008-07-03 23:46:19 UTC
(rev 6755)
+++ code/player/trunk/libplayerxdr/functiontable.h 2008-07-04 02:44:27 UTC
(rev 6756)
@@ -53,6 +53,12 @@
extern "C" {
#endif
+#ifndef HAVE_XDR_LONGLONG_T
+ #include <rpc/types.h>
+ #include <rpc/xdr.h>
+ bool_t xdr_longlong_t(XDR *xdrs, long long int *llp);
+#endif
+
/** @addtogroup libplayerxdr libplayerxdr @{ */
/** Generic Prototype for a player XDR packing function */
Modified: code/player/trunk/playerconfig.h.in
===================================================================
--- code/player/trunk/playerconfig.h.in 2008-07-03 23:46:19 UTC (rev 6755)
+++ code/player/trunk/playerconfig.h.in 2008-07-04 02:44:27 UTC (rev 6756)
@@ -10,6 +10,8 @@
#cmakedefine INCLUDE_RTK 1
#cmakedefine INCLUDE_RTKGUI 1
#cmakedefine HAVE_CLOCK_GETTIME 1
+#cmakedefine HAVE_XDR_LONGLONG_T 1
+#cmakedefine HAVE_STL 1
#ifdef HAVE_STDINT_H
#include <stdint.h>
Modified: code/player/trunk/replace/clock_gettime.c
===================================================================
--- code/player/trunk/replace/clock_gettime.c 2008-07-03 23:46:19 UTC (rev
6755)
+++ code/player/trunk/replace/clock_gettime.c 2008-07-04 02:44:27 UTC (rev
6756)
@@ -20,6 +20,8 @@
*
*/
+#include <stddef.h>
+#include <time.h>
#include <sys/time.h>
/* This replacement function originally written by Klass Gadeyne
Modified: code/player/trunk/server/drivers/rfid/rfi341_protocol.cc
===================================================================
--- code/player/trunk/server/drivers/rfid/rfi341_protocol.cc 2008-07-03
23:46:19 UTC (rev 6755)
+++ code/player/trunk/server/drivers/rfid/rfi341_protocol.cc 2008-07-04
02:44:27 UTC (rev 6756)
@@ -5,7 +5,6 @@
CVS: $Id$
*/
#include <termios.h>
-#include <iostream>
#include <unistd.h>
#include <fcntl.h>
#include <libplayercore/playercore.h>
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit