summaryrefslogtreecommitdiffstats
path: root/3rdparty
diff options
context:
space:
mode:
authorSebastien Braun2010-07-12 04:15:13 +0200
committerSebastien Braun2010-07-12 04:15:13 +0200
commit6940ab33b5009b79c3141dde7f98ea78a2662449 (patch)
treee72dfc8f8d53419f1bd9704b82789bba284482e9 /3rdparty
parentImport OpenPGM into the tree, and provide a rudimentary build script. (diff)
downloadpvs-6940ab33b5009b79c3141dde7f98ea78a2662449.tar.gz
pvs-6940ab33b5009b79c3141dde7f98ea78a2662449.tar.xz
pvs-6940ab33b5009b79c3141dde7f98ea78a2662449.zip
Implement multicast transfer protocol.
Diffstat (limited to '3rdparty')
-rw-r--r--3rdparty/CMakeLists.txt110
1 files changed, 53 insertions, 57 deletions
diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt
index 84f366b..8a4cea0 100644
--- a/3rdparty/CMakeLists.txt
+++ b/3rdparty/CMakeLists.txt
@@ -2,15 +2,9 @@
# Build OpenPGM
################################################################################
-# We need GLib
-INCLUDE(${CMAKE_ROOT}/Modules/FindPkgConfig.cmake)
+INCLUDE(../OpenPGMConfig.cmake)
-PKG_CHECK_MODULES(GLIB glib-2.0>=2.10)
-IF(NOT GLIB_FOUND)
- MESSAGE(FATAL_ERROR "You don't seem to have GLib2 installed.")
-ELSE(NOT GLIB_FOUND)
- MESSAGE("-- GLib2 found. Libraries: ${GLIB_LIBRARIES}, CFLAGS: ${GLIB_CFLAGS}")
-ENDIF(NOT GLIB_FOUND)
+ADD_DEFINITIONS(${LIBPGM_CFLAGS})
# Set up build
SET(pgm_VERSION
@@ -19,7 +13,7 @@ SET(pgm_VERSION
# OpenPGM will be built in the binary tree
SET(pgm
- ${CMAKE_CURRENT_BINARY_DIR}/libpgm-${pgm_VERSION}/openpgm/pgm
+ ${CMAKE_CURRENT_BINARY_DIR}/libpgm-src/openpgm/pgm
)
# This has been adapted from SConscript.libpgm
@@ -66,6 +60,35 @@ SET(pgm_SRCS
${pgm}/histogram.c
)
+SET(pgm_HDRS
+ ${pgm}/include/pgm/atomic.h
+ ${pgm}/include/pgm/backtrace.h
+ ${pgm}/include/pgm/engine.h
+ ${pgm}/include/pgm/error.h
+ ${pgm}/include/pgm/gsi.h
+ ${pgm}/include/pgm/http.h
+ ${pgm}/include/pgm/if.h
+ ${pgm}/include/pgm/list.h
+ ${pgm}/include/pgm/log.h
+ ${pgm}/include/pgm/macros.h
+ ${pgm}/include/pgm/mem.h
+ ${pgm}/include/pgm/messages.h
+ ${pgm}/include/pgm/msgv.h
+ ${pgm}/include/pgm/packet.h
+ ${pgm}/include/pgm/pgm.h
+ ${pgm}/include/pgm/signal.h
+ ${pgm}/include/pgm/skbuff.h
+ ${pgm}/include/pgm/snmp.h
+ ${pgm}/include/pgm/socket.h
+ ${pgm}/include/pgm/time.h
+ ${pgm}/include/pgm/tsi.h
+ ${pgm}/include/pgm/types.h
+ ${pgm}/include/pgm/version.h
+ ${pgm}/include/pgm/winint.h
+ ${pgm}/include/pgm/wininttypes.h
+)
+
+
SET(pgm_GENERATED
${CMAKE_CURRENT_BINARY_DIR}/version.c
${CMAKE_CURRENT_BINARY_DIR}/galois_tables.c
@@ -86,10 +109,24 @@ ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.c
# ... and we need to unpack the tree.
ADD_CUSTOM_COMMAND(
OUTPUT
- ${pgm_SRCS}
+ ${pgm_SRCS}
+ ${pgm_HDRS}
${pgm}/galois_generator.pl
${pgm}/version_generator.py
- COMMAND bzip2 -dc ${CMAKE_CURRENT_SOURCE_DIR}/libpgm-${pgm_VERSION}.tar.bz2 | tar -C ${CMAKE_CURRENT_BINARY_DIR} -x
+ DEPENDS
+ "${CMAKE_CURRENT_SOURCE_DIR}/libpgm-${pgm_VERSION}.tar.bz2"
+ COMMAND rm -rf "${CMAKE_CURRENT_BINARY_DIR}/libpgm-src"
+ COMMAND bzip2 -dc "${CMAKE_CURRENT_SOURCE_DIR}/libpgm-${pgm_VERSION}.tar.bz2" | tar -C "${CMAKE_CURRENT_BINARY_DIR}" -x
+ COMMAND mv "${CMAKE_CURRENT_BINARY_DIR}/libpgm-${pgm_VERSION}" "${CMAKE_CURRENT_BINARY_DIR}/libpgm-src"
+)
+
+ADD_CUSTOM_COMMAND(TARGET clean
+ COMMAND rm -rf "${CMAKE_CURRENT_BINARY_DIR}/libpgm-src"
+)
+
+ADD_CUSTOM_TARGET(
+ unpack_libpgm
+ DEPENDS ${pgm_SRCS} ${pgm_HDRS}
)
INCLUDE_DIRECTORIES(
@@ -101,9 +138,14 @@ ADD_LIBRARY(
pgm
STATIC
${pgm_SRCS}
+ ${pgm_HDRS}
${pgm_GENERATED}
)
+TARGET_LINK_LIBRARIES(pgm
+ ${LIBPGM_LIBRARIES}
+)
+
LINK_DIRECTORIES(
${GLIB_LIBRARY_DIRS}
)
@@ -112,49 +154,3 @@ ADD_DEFINITIONS(
${GLIB_CFLAGS}
)
-IF(UNIX)
- IF(CMAKE_COMPILER_IS_GNUCC)
- # The scripts are fine for Linux/GCC, other platforms may or may
- # not work.
- ADD_DEFINITIONS(
- -std=gnu99
- -D_XOPEN_SOURCE=600
- -D_BSD_SOURCE
- -D_REENTRANT
- -DCONFIG_HAVE_GETPROTOBYNAME_R2
- -DCONFIG_HAVE_ISO_VARARGS
- -DCONFIG_HAVE_ALLOCA_H
- -DCONFIG_16BIT_CHECKSUM
- -DCONFIG_HAVE_PROC
- -DCONFIG_HAVE_BACKTRACE
- -DCONFIG_HAVE_PSELECT
- -DCONFIG_HAVE_RTC
- -DCONFIG_HAVE_TSC
- -DCONFIG_HAVE_HPET
- -DCONFIG_HAVE_POLL
- -DCONFIG_HAVE_EPOLL
- -DCONFIG_HAVE_GETIFADDRS
- -DCONFIG_HAVE_IFR_NETMASK
- -DCONFIG_HAVE_MCAST_JOIN
- -DCONFIG_HAVE_IP_MREQN
- -DCONFIG_HAVE_SPRINTF_GROUPING
- -DCONFIG_HAVE_VASPRINTF
- -DCONFIG_HAVE_DSO_VISIBILITY
- -DCONFIG_BIND_INADDR_ANY
- -DCONFIG_GALOIS_MUL_LUT
- -DCONFIG_HAVE_GETOPT
- )
-
- TARGET_LINK_LIBRARIES(pgm
- m rt
- ${GLIB_LIBRARIES})
-
- SET(_SYSTEM_SPECIFICS_SET 1)
- ENDIF(CMAKE_COMPILER_IS_GNUCC)
-ENDIF(UNIX)
-
-# Complain if this is NOT Linux/GCC.
-IF(NOT _SYSTEM_SPECIFICS_SET)
- MESSAGE(FATAL_ERROR "Can only build libpgm on Unix with gcc.")
-ENDIF(NOT _SYSTEM_SPECIFICS_SET)
-