fixed the autotools setup
* fixed compile on all Unixes * added unit-tests * added cmake to build natively on win32 * fixed the "make dist" setup to include all os-dirs
This commit is contained in:
parent
f88489dc73
commit
d65177559d
|
@ -0,0 +1,35 @@
|
|||
PROJECT(sigar C)
|
||||
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
|
||||
INCLUDE(CheckIncludeFiles)
|
||||
INCLUDE(CheckFunctionExists)
|
||||
INCLUDE(CheckTypeSize)
|
||||
INCLUDE(CTest)
|
||||
INCLUDE(InstallRequiredSystemLibraries)
|
||||
|
||||
ENABLE_TESTING()
|
||||
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR "1")
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR "6")
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH "2")
|
||||
SET(CPACK_PACKAGE_VENDOR "Hyperic")
|
||||
## SET(CPACK_*) before the INCLUDE(CPack)
|
||||
INCLUDE(CPack)
|
||||
|
||||
IF(WIN32)
|
||||
## make sure we only use the smallest set of
|
||||
## headers on win32. Otherwise we get clashes
|
||||
## between winsock2.h and winsock.h
|
||||
ADD_DEFINITIONS(-DWIN32_LEAN_AND_MEAN)
|
||||
|
||||
# force the correct version for the redist manifest
|
||||
ADD_DEFINITIONS(-D_BIND_TO_CURRENT_MFC_VERSION=1 -D_BIND_TO_CURRENT_CRT_VERSION=1)
|
||||
# turn off security warnings for system calls
|
||||
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
|
||||
ENDIF(WIN32)
|
||||
|
||||
ADD_SUBDIRECTORY(src build-src)
|
||||
ADD_SUBDIRECTORY(tests build-tests)
|
||||
ADD_SUBDIRECTORY(include build-include)
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
INSTALL(FILES sigar.h
|
||||
sigar_fileinfo.h
|
||||
sigar_format.h
|
||||
sigar_getline.h
|
||||
sigar_log.h
|
||||
sigar_private.h
|
||||
sigar_ptql.h
|
||||
sigar_util.h
|
||||
DESTINATION include/
|
||||
)
|
|
@ -0,0 +1,12 @@
|
|||
include_HEADERS = \
|
||||
sigar.h \
|
||||
sigar_fileinfo.h \
|
||||
sigar_format.h \
|
||||
sigar_getline.h \
|
||||
sigar_log.h \
|
||||
sigar_private.h \
|
||||
sigar_ptql.h \
|
||||
sigar_util.h
|
||||
|
||||
EXTRA_DIST=\
|
||||
CMakeLists.txt
|
|
@ -0,0 +1,92 @@
|
|||
## sigar has some base files + a set of platform specific files
|
||||
|
||||
MESSAGE(STATUS "CMAKE_SYSTEM_NAME is ${CMAKE_SYSTEM_NAME}")
|
||||
|
||||
INCLUDE_DIRECTORIES(../include/)
|
||||
|
||||
## linux
|
||||
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
SET(SIGAR_SRC os/linux/linux_sigar.c)
|
||||
|
||||
INCLUDE_DIRECTORIES(os/linux/)
|
||||
ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
|
||||
## macosx, freebsd
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "(Darwin|FreeBSD)")
|
||||
SET(SIGAR_SRC os/darwin/darwin_sigar.c)
|
||||
|
||||
INCLUDE_DIRECTORIES(os/darwin/)
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "(Darwin)")
|
||||
INCLUDE_DIRECTORIES(/Developer/Headers/FlatCarbon/)
|
||||
ADD_DEFINITIONS(-DDARWIN)
|
||||
SET(SIGAR_LINK_FLAGS "-framework CoreServices -framework IOKit")
|
||||
ELSE(CMAKE_SYSTEM_NAME MATCHES "(Darwin)")
|
||||
## freebsd needs libkvm
|
||||
SET(SIGAR_LINK_FLAGS "-lkvm")
|
||||
ENDIF(CMAKE_SYSTEM_NAME MATCHES "(Darwin)")
|
||||
ENDIF(CMAKE_SYSTEM_NAME MATCHES "(Darwin|FreeBSD)")
|
||||
|
||||
## solaris
|
||||
IF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)" )
|
||||
SET(SIGAR_SRC
|
||||
os/solaris/solaris_sigar.c
|
||||
os/solaris/get_mib2.c
|
||||
os/solaris/kstats.c
|
||||
os/solaris/procfs.c
|
||||
)
|
||||
|
||||
INCLUDE_DIRECTORIES(os/solaris/)
|
||||
ADD_DEFINITIONS(-DSOLARIS)
|
||||
SET(SIGAR_LINK_FLAGS -lkstat -ldl -lnsl -lsocket -lresolv)
|
||||
ENDIF(CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)" )
|
||||
|
||||
## solaris
|
||||
IF (CMAKE_SYSTEM_NAME MATCHES "(hpux)" )
|
||||
SET(SIGAR_SRC
|
||||
os/hpux/hpux_sigar.c
|
||||
os/hpux/dlpi.c
|
||||
)
|
||||
|
||||
INCLUDE_DIRECTORIES(os/hpux/)
|
||||
ADD_DEFINITIONS(-DSIGAR_HPUX)
|
||||
SET(SIGAR_LINK_FLAGS -lnm)
|
||||
ENDIF(CMAKE_SYSTEM_NAME MATCHES "(hpux)" )
|
||||
|
||||
## aix
|
||||
IF (CMAKE_SYSTEM_NAME MATCHES "(AIX)" )
|
||||
SET(SIGAR_SRC os/aix/aix_sigar.c)
|
||||
|
||||
INCLUDE_DIRECTORIES(os/aix/)
|
||||
SET(SIGAR_LINK_FLAGS -lodm -lcfg)
|
||||
ENDIF(CMAKE_SYSTEM_NAME MATCHES "(AIX)" )
|
||||
|
||||
IF(WIN32)
|
||||
ADD_DEFINITIONS(-DSIGAR_SHARED)
|
||||
SET(SIGAR_SRC os/win32/peb.c os/win32/win32_sigar.c)
|
||||
INCLUDE_DIRECTORIES(os/win32)
|
||||
ENDIF(WIN32)
|
||||
|
||||
SET(SIGAR_SRC ${SIGAR_SRC}
|
||||
sigar.c
|
||||
sigar_cache.c
|
||||
sigar_fileinfo.c
|
||||
sigar_format.c
|
||||
sigar_getline.c
|
||||
sigar_ptql.c
|
||||
sigar_signal.c
|
||||
sigar_util.c
|
||||
)
|
||||
|
||||
ADD_LIBRARY(sigar SHARED ${SIGAR_SRC})
|
||||
IF(WIN32)
|
||||
TARGET_LINK_LIBRARIES(sigar ws2_32 netapi32 version)
|
||||
ENDIF(WIN32)
|
||||
IF(SIGAR_LINK_FLAGS)
|
||||
SET_TARGET_PROPERTIES(sigar PROPERTIES LINK_FLAGS "${SIGAR_LINK_FLAGS}")
|
||||
ENDIF(SIGAR_LINK_FLAGS)
|
||||
|
||||
INSTALL(TARGETS sigar
|
||||
RUNTIME DESTINATION bin
|
||||
ARCHIVE DESTINATION lib
|
||||
LIBRARY DESTINATION lib
|
||||
)
|
|
@ -1,7 +1,18 @@
|
|||
INCLUDES = @INCLUDES@
|
||||
|
||||
SIGAR_OS_SRCS = aix_sigar.c
|
||||
|
||||
SIGAR_OS_HDRS = sigar_os.h
|
||||
|
||||
if OS_AIX
|
||||
noinst_LTLIBRARIES = libsigar_os.la
|
||||
|
||||
libsigar_os_la_SOURCES = aix_sigar.c
|
||||
libsigar_os_la_SOURCES = ${SIGAR_OS_SRCS}
|
||||
|
||||
noinst_HEADERS = ${SIGAR_OS_HDRS}
|
||||
else
|
||||
EXTRA_DIST=\
|
||||
${SIGAR_OS_SRCS} \
|
||||
${SIGAR_OS_HDRS}
|
||||
endif
|
||||
|
||||
noinst_HEADERS = sigar_os.h
|
||||
|
|
|
@ -1,7 +1,18 @@
|
|||
INCLUDES = @INCLUDES@
|
||||
|
||||
SIGAR_OS_SRCS=\
|
||||
darwin_sigar.c
|
||||
SIGAR_OS_HDRS=\
|
||||
sigar_os.h
|
||||
|
||||
if OS_MACOSX
|
||||
noinst_LTLIBRARIES = libsigar_os.la
|
||||
|
||||
libsigar_os_la_SOURCES = darwin_sigar.c
|
||||
libsigar_os_la_SOURCES = ${SIGAR_OS_SRCS}
|
||||
|
||||
noinst_HEADERS = sigar_os.h
|
||||
noinst_HEADERS = ${SIGAR_OS_HDRS}
|
||||
else
|
||||
EXTRA_DIST=\
|
||||
${SIGAR_OS_SRCS} \
|
||||
${SIGAR_OS_HDRS}
|
||||
endif
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
EXTRA_DIST=\
|
||||
README
|
|
@ -1,7 +1,17 @@
|
|||
INCLUDES = @INCLUDES@
|
||||
|
||||
SIGAR_OS_SRCS = hpux_sigar.c dlpi.c
|
||||
|
||||
SIGAR_OS_HDRS = sigar_os.h
|
||||
|
||||
if OS_HPUX
|
||||
noinst_LTLIBRARIES = libsigar_os.la
|
||||
|
||||
libsigar_os_la_SOURCES = hpux_sigar.c dlpi.c
|
||||
libsigar_os_la_SOURCES = ${SIGAR_OS_SRCS}
|
||||
|
||||
noinst_HEADERS = sigar_os.h
|
||||
noinst_HEADERS = ${SIGAR_OS_HDRS}
|
||||
else
|
||||
EXTRA_DIST=\
|
||||
${SIGAR_OS_SRCS} \
|
||||
${SIGAR_OS_HDRS}
|
||||
endif
|
||||
|
|
|
@ -1,7 +1,18 @@
|
|||
INCLUDES = @INCLUDES@
|
||||
|
||||
SIGAR_OS_SRCS = linux_sigar.c
|
||||
|
||||
SIGAR_OS_HDRS = sigar_os.h
|
||||
|
||||
if OS_LINUX
|
||||
noinst_LTLIBRARIES = libsigar_os.la
|
||||
|
||||
libsigar_os_la_SOURCES = linux_sigar.c
|
||||
libsigar_os_la_SOURCES = ${SIGAR_OS_SRCS}
|
||||
|
||||
noinst_HEADERS = ${SIGAR_OS_HDRS}
|
||||
else
|
||||
EXTRA_DIST=\
|
||||
${SIGAR_OS_SRCS} \
|
||||
${SIGAR_OS_HDRS}
|
||||
endif
|
||||
|
||||
noinst_HEADERS = sigar_os.h
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
EXTRA_DIST=\
|
||||
Makefile.nw \
|
||||
netware_sigar.c \
|
||||
sigar.def.in \
|
||||
sigar_os.h
|
|
@ -0,0 +1,3 @@
|
|||
EXTRA_DIST=\
|
||||
osf1_sigar.c \
|
||||
sigar_os.h
|
|
@ -1,7 +1,18 @@
|
|||
INCLUDES = @INCLUDES@
|
||||
|
||||
SIGAR_OS_SRCS = solaris_sigar.c get_mib2.c kstats.c procfs.c
|
||||
|
||||
SIGAR_OS_HDRS = sigar_os.h get_mib2.h hmekstat.h
|
||||
|
||||
if OS_SOLARIS
|
||||
noinst_LTLIBRARIES = libsigar_os.la
|
||||
|
||||
libsigar_os_la_SOURCES = solaris_sigar.c get_mib2.c kstats.c procfs.c
|
||||
libsigar_os_la_SOURCES = ${SIGAR_OS_SRCS}
|
||||
|
||||
noinst_HEADERS = ${SIGAR_OS_HDRS}
|
||||
else
|
||||
EXTRA_DIST=\
|
||||
${SIGAR_OS_SRCS} \
|
||||
${SIGAR_OS_HDRS}
|
||||
endif
|
||||
|
||||
noinst_HEADERS = sigar_os.h
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
EXTRA_DIST=\
|
||||
sigar_os.h \
|
||||
stub_sigar.c
|
|
@ -0,0 +1,8 @@
|
|||
EXTRA_DIST=\
|
||||
build-cpu.bat \
|
||||
counter_names.txt \
|
||||
peb.c \
|
||||
sigar.rc.in \
|
||||
sigar_os.h \
|
||||
sigar_pdh.h \
|
||||
win32_sigar.c
|
|
@ -0,0 +1,22 @@
|
|||
#include "sigar.h"
|
||||
|
||||
static sigar_version_t sigar_version = {
|
||||
__DATE__,
|
||||
"@SCM_REVISION@",
|
||||
"@PACKAGE_STRING@",
|
||||
"@build@",
|
||||
"@build_os@",
|
||||
"@build_cpu@",
|
||||
"SIGAR-@PACKAGE_VERSION@, "
|
||||
"SCM revision @SCM_REVISION@, "
|
||||
"built "__DATE__" as @build_cpu@",
|
||||
@VERSION_MAJOR@,
|
||||
@VERSION_MINOR@,
|
||||
@VERSION_MAINT@,
|
||||
@VERSION_BUILD@
|
||||
};
|
||||
|
||||
SIGAR_DECLARE(sigar_version_t *) sigar_version_get(void)
|
||||
{
|
||||
return &sigar_version;
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
@rem $%BEGINLICENSE%$
|
||||
@rem $%ENDLICENSE%$
|
||||
@echo "Run this from a shell started with the Visual Studio Build environment set!"
|
||||
|
||||
@IF DEFINED GENERATOR (GOTO GENERAL_CONF)
|
||||
@rem Sane default is VS2005, but maybe not what we really want...
|
||||
@SET GENERATOR="Visual Studio 8 2005"
|
||||
@GOTO GENERAL_CONF
|
||||
|
||||
:GENERAL_CONF
|
||||
|
||||
@echo Using %GENERATOR%
|
||||
|
||||
@rem MSVC 8 2005 doesn't seem to have devenv.com
|
||||
@SET VS_CMD="%VS90COMNTOOLS%\..\IDE\VCExpress.exe"
|
||||
|
||||
@rem clear the cache if neccesary to let cmake recheck everything
|
||||
@rem del CMakeCache.txt
|
||||
|
||||
:CMAKE
|
||||
@rem make sure that /D NDEBUG isn't set as it disables all the assert()ions in the testcase
|
||||
cmake -G %GENERATOR% -DBUILD_NUMBER=%BUILD_NUMBER% -DCMAKE_INSTALL_PREFIX=%INST_PREFIX% -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="/MD /Zi /O2 /Ob1" .
|
||||
|
||||
@IF NOT %GENERATOR%=="NMake Makefiles" (GOTO VS08BUILD)
|
||||
nmake
|
||||
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
|
||||
cp build-src/sigar.dll build-tests/
|
||||
nmake test
|
||||
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
|
||||
nmake install
|
||||
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
|
||||
|
||||
@GOTO CLEANUP
|
||||
|
||||
:VS08BUILD
|
||||
%VS_CMD% mysql-proxy.sln /Clean
|
||||
%VS_CMD% mysql-proxy.sln /Build Release
|
||||
%VS_CMD% mysql-proxy.sln /Build Release /project RUN_TESTS
|
||||
%VS_CMD% mysql-proxy.sln /Build Release /project PACKAGE
|
||||
%VS_CMD% mysql-proxy.sln /Build Release /project INSTALL
|
||||
|
||||
@GOTO CLEANUP
|
||||
|
||||
@rem if you use VS8 to build then VS80COMNTOOLS should be set
|
||||
@rem "%VS80COMNTOOLS%\..\IDE\devenv.com" mysql-proxy.sln /Clean
|
||||
@rem "%VS80COMNTOOLS%\..\IDE\devenv.com" mysql-proxy.sln /Build
|
||||
@rem "%VS80COMNTOOLS%\..\IDE\devenv.com" mysql-proxy.sln /Build Debug /project RUN_TESTS
|
||||
@rem "%VS80COMNTOOLS%\..\IDE\devenv.com" mysql-proxy.sln /Build Debug /project PACKAGE
|
||||
@rem "%VS80COMNTOOLS%\..\IDE\devenv.com" mysql-proxy.sln /Build Debug /project INSTALL
|
||||
|
||||
:CLEANUP
|
||||
|
||||
:END
|
Loading…
Reference in New Issue