PROJECT(SIGAR)

include(CheckIncludeFiles)
include(CheckFunctionExists)
INCLUDE(CheckTypeSize)

INCLUDE_DIRECTORIES(${SIGAR_SOURCE_DIR}/include/)
LINK_DIRECTORIES(${SIGAR_SOURCE_DIR}/build/)

SET(CMAKE_EXTRA_INCLUDE_FILES sys/types.h)
CHECK_TYPE_SIZE(size_t SIZEOF_SIZE_T)
ADD_DEFINITIONS(-DSIZEOF_SIZE_T=${SIZEOF_SIZE_T}) 
SET(CMAKE_EXTRA_INCLUDE_FILES)
MESSAGE(STATUS "sizeof(size_t) is ${SIZEOF_SIZE_T}")

CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H)
IF (HAVE_INTTYPES_H) 
  ADD_DEFINITIONS(-DHAVE_INTTYPES_H) 
ENDIF(HAVE_INTTYPES_H)

CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)
IF (HAVE_UNISTD_H) 
  ADD_DEFINITIONS(-DHAVE_UNISTD_H) 
ENDIF(HAVE_UNISTD_H)

CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H)
IF (HAVE_SYS_TIME_H) 
  ADD_DEFINITIONS(-DHAVE_SYS_TIME_H) 
ENDIF(HAVE_SYS_TIME_H)

CHECK_INCLUDE_FILES(sys/socket.h HAVE_SYS_SOCKET_H)
IF (HAVE_SYS_SOCKET_H) 
  ADD_DEFINITIONS(-DHAVE_SYS_SOCKET_H) 
ENDIF(HAVE_SYS_SOCKET_H)

CHECK_INCLUDE_FILES(sys/ioctl.h HAVE_SYS_IOCTL_H)
IF (HAVE_SYS_IOCTL_H) 
  ADD_DEFINITIONS(-DHAVE_SYS_IOCTL_H) 
ENDIF(HAVE_SYS_IOCTL_H)

CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)
IF (HAVE_STDLIB_H) 
  ADD_DEFINITIONS(-DHAVE_STDLIB_H) 
ENDIF(HAVE_STDLIB_H)

CHECK_INCLUDE_FILES(sys/sockio.h HAVE_SYS_SOCKIO_H)
IF (HAVE_SYS_SOCKIO_H) 
  ADD_DEFINITIONS(-DHAVE_SYS_SOCKIO_H) 
ENDIF(HAVE_SYS_SOCKIO_H)

CHECK_INCLUDE_FILES(net/if.h HAVE_NET_IF_H)
IF (HAVE_NET_IF_H) 
  ADD_DEFINITIONS(-DHAVE_NET_IF_H) 
ENDIF(HAVE_NET_IF_H)

CHECK_INCLUDE_FILES(net/if_dl.h HAVE_NET_IF_DL_H)
IF (HAVE_NET_IF_DL_H) 
  ADD_DEFINITIONS(-DHAVE_NET_IF_DL_H) 
ENDIF(HAVE_NET_IF_DL_H)

CHECK_INCLUDE_FILES(netinet/in.h HAVE_NETINET_IN_H)
IF (HAVE_NETINET_IN_H) 
  ADD_DEFINITIONS(-DHAVE_NETINET_IN_H) 
ENDIF(HAVE_NETINET_IN_H)

CHECK_FUNCTION_EXISTS(signal HAVE_SIGNAL)
IF (HAVE_SIGNAL) 
  ADD_DEFINITIONS(-DHAVE_SIGNAL) 
ENDIF(HAVE_SIGNAL)

CHECK_FUNCTION_EXISTS(srandom HAVE_SRANDOM)
IF (HAVE_SRANDOM) 
  ADD_DEFINITIONS(-DHAVE_SRANDOM) 
ENDIF(HAVE_SRANDOM)

ADD_EXECUTABLE(sigar-test-all sigar-test-all.c)


## macosx needs the core-services
SET(COREFRAMEWORK "")
FIND_LIBRARY(COREFRAMEWORK CoreServices)

TARGET_LINK_LIBRARIES(sigar-test-all sigar ${COREFRAMEWORK})

ADD_SUBDIRECTORY(src build)

