#################################################
#
# (C) 2010-2012 Serghei Amelian
# serghei (DOT) amelian (AT) gmail.com
#
# (C) 2014 Timothy Pearson
# kb9vqf (AT) pearsoncomputing (DOT) net
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
#################################################
# required stuff
tde_setup_architecture_flags ( )
include ( TestBigEndian )
test_big_endian ( WORDS_BIGENDIAN )
tde_setup_largefiles ( )
find_package ( TQt )
find_package ( TDE )
# strlcat and strlcpy check
check_function_exists ( strlcat HAVE_STRLCAT )
check_symbol_exists ( strlcat "string.h" HAVE_STRLCAT_PROTO )
check_function_exists ( strlcpy HAVE_STRLCPY )
check_symbol_exists ( strlcpy "string.h" HAVE_STRLCPY_PROTO )
##### look for the usb.ids file, Its location can be set EG: -DWITH_USBIDS="/opt/share/misc/usb.ids"
if ( WITH_USBIDS )
set ( USBIDS_FILE "${WITH_USBIDS}" )
message ( STATUS "Using specified usb.ids file: ${USBIDS_FILE}" )
else ( )
find_file ( PATH_USBIDS usb.ids
H I N T S / u s r / s h a r e / m i s c
/ v a r / l i b / u s b u t i l s
/ u s r / s h a r e / h w d a t a
)
if ( PATH_USBIDS )
set ( USBIDS_FILE "${PATH_USBIDS}" )
message ( STATUS "Using system usb.ids file: ${PATH_USBIDS}" )
else ( )
set ( USE_BUILTIN_USBIDS 1 )
message ( STATUS "File usb.ids (hwdata) was not found on the system, using builtin" )
endif ( )
endif ( WITH_USBIDS )
##### check for libdl ###########################
set ( DL_LIBRARIES dl )
check_library_exists ( ${ DL_LIBRARIES } dlopen /lib HAVE_LIBDL )
if ( NOT HAVE_LIBDL )
unset ( DL_LIBRARIES )
check_function_exists ( dlopen HAVE_DLOPEN )
if ( HAVE_DLOPEN )
set ( HAVE_LIBDL 1 )
endif ( HAVE_DLOPEN )
endif ( NOT HAVE_LIBDL )
# stdint.h (drkonqi)
if ( BUILD_DRKONQI )
check_include_file ( stdint.h HAVE_STDINT_H )
endif ( )
# termios.h (tdm, tdeioslave)
if ( BUILD_TDM OR BUILD_TDEIOSLAVES )
check_include_file ( termios.h HAVE_TERMIOS_H )
endif ( )
# sys/bitypes.h (drkonqi)
if ( BUILD_DRKONQI )
check_include_file ( sys/bitypes.h HAVE_SYS_BITYPES_H )
endif ( )
# sys/ioctl.h (tdeioslave/fish, kcontrol/info)
if ( BUILD_TDEIOSLAVES OR BUILD_KCONTROL )
check_include_file ( sys/ioctl.h HAVE_SYS_IOCTL_H )
endif ( )
# sys/types.h (drkonqi, tdeioslave/smtp)
if ( BUILD_DRKONQI OR BUILD_TDEIOSLAVES )
check_include_file ( sys/types.h HAVE_SYS_TYPES_H )
endif ( )
# sys/time.h (tdeioslave/sftp, ksmserver, ksplashml)
if ( BUILD_KSMSERVER OR BUILD_KSPLASHML OR BUILD_TDEIOSLAVES )
check_include_file ( sys/time.h HAVE_SYS_TIME_H )
check_include_files ( "sys/time.h;time.h" TIME_WITH_SYS_TIME )
endif ( )
# libssh (tdeioslave/sftp)
if ( BUILD_TDEIOSLAVES AND WITH_SFTP )
pkg_search_module ( LIBSSH libssh )
if ( NOT LIBSSH_FOUND )
tde_message_fatal ( "LibSSH is required, but was not found on your system" )
endif ( )
endif ( )
# pam and shadow
if ( BUILD_KCHECKPASS OR BUILD_TDM )
if ( WITH_PAM )
check_library_exists ( pam pam_start "" HAVE_PAM )
if ( HAVE_PAM )
set ( USE_PAM 1 CACHE INTERNAL "" FORCE )
check_include_file ( "security/pam_appl.h" SECURITY_PAM_APPL_H )
endif ( )
if ( HAVE_PAM AND SECURITY_PAM_APPL_H )
set ( PAM_LIBRARY pam ${ DL_LIBRARIES } )
else ( )
tde_message_fatal ( "pam are requested, but not found on your system" )
endif ( )
elseif ( WITH_SHADOW )
set ( HAVE_SHADOW 1 CACHE INTERNAL "" FORCE )
set ( USESHADOW 1 CACHE INTERNAL "" FORCE )
endif ( )
endif ( )
# crypt
set ( CRYPT_LIBRARY crypt )
check_library_exists ( ${ CRYPT_LIBRARY } crypt "" HAVE_CRYPT )
if ( NOT HAVE_CRYPT )
unset ( CRYPT_LIBRARY )
check_function_exists ( crypt LIBC_HAVE_CRYPT )
if ( LIBC_HAVE_CRYPT )
set ( HAVE_CRYPT 1 CACHE INTERNAL "" FORCE )
endif ( LIBC_HAVE_CRYPT )
endif ( NOT HAVE_CRYPT )
# tdehwlib (drkonqi, kcontrol, kicker, ksmserver, tdeioslaves, tdm)
if ( WITH_TDEHWLIB )
tde_save_and_set ( CMAKE_REQUIRED_INCLUDES "${TDE_INCLUDE_DIR}" )
check_cxx_source_compiles ( "
#include <kdemacros.h>
#ifndef __TDE_HAVE_TDEHWLIB
#error tdecore is not build with tdehwlib
#endif
i n t main ( ) { r e t u r n 0 ; } "
H A V E _ T D E H W L I B
)
tde_restore ( CMAKE_REQUIRED_INCLUDES )
if ( NOT HAVE_TDEHWLIB )
tde_message_fatal ( "tdehwlib is required, but not built in tdecore" )
endif ( NOT HAVE_TDEHWLIB )
set ( TDEHW_LIBRARIES "tdehw-shared" )
endif ( )
# udev (tsak)
if ( BUILD_TSAK )
pkg_search_module ( UDEV udev )
if ( NOT UDEV_FOUND )
tde_message_fatal ( "udev is required, but was not found on your system" )
endif ( )
endif ( )
##### check for gcc visibility support #########
if ( WITH_GCC_VISIBILITY )
tde_setup_gcc_visibility ( )
endif ( )
# xrender (kdesktop, konsole, kcontrol, kicker, twin)
if ( WITH_XRENDER OR BUILD_KDESKTOP OR BUILD_KONSOLE OR BUILD_KCONTROL OR BUILD_KICKER )
pkg_search_module ( XRENDER xrender )
if ( XRENDER_FOUND )
set ( HAVE_XRENDER 1 )
elseif ( WITH_XRENDER )
tde_message_fatal ( "xrender is requested, but was not found on your system" )
endif ( )
endif ( )
# xrandr (kcontrol, twin/compot-tde)
if ( WITH_XRANDR )
pkg_search_module ( XRANDR xrandr )
if ( NOT XRANDR_FOUND )
tde_message_fatal ( "xrandr are requested, but not found on your system" )
endif ( )
endif ( )
# xinerama (ksplashml, twin/compot-tde)
if ( WITH_XINERAMA )
pkg_search_module ( XINERAMA xinerama )
if ( XINERAMA_FOUND )
set ( HAVE_XINERAMA 1 )
else ( )
tde_message_fatal ( "xinerama is requested, but not found on your system" )
endif ( )
endif ( WITH_XINERAMA )
# xcursor (tdeioslave, kcontrol)
if ( WITH_XCURSOR )
pkg_search_module ( XCURSOR xcursor )
if ( XCURSOR_FOUND )
set ( HAVE_XCURSOR 1 )
else ( )
tde_message_fatal ( "xcursor is requested, but was not found on your system" )
endif ( )
endif ( )
# xcomposite (kicker, twin)
if ( WITH_XCOMPOSITE )
pkg_search_module ( XCOMPOSITE xcomposite )
if ( XCOMPOSITE_FOUND )
set ( HAVE_XCOMPOSITE 1 )
else ( XCOMPOSITE_FOUND )
tde_message_fatal ( "xcomposite is requested, but was not found on your system" )
endif ( XCOMPOSITE_FOUND )
# xdamage (twin/kompmgr)
pkg_search_module ( XDAMAGE xdamage )
if ( NOT XDAMAGE_FOUND )
tde_message_fatal ( "xdamage is required for xcomposite support, but was not found on your system" )
endif ( )
# xext (twin/kompmgr)
pkg_search_module ( XEXT xext )
if ( NOT XEXT_FOUND )
tde_message_fatal ( "xext is required for xcomposite support, but was not found on your system" )
endif ( )
# for (twin/compton)
# older libXext (e.g.in debian-6.0) doesn't provide XSyncFence
tde_save_and_set ( CMAKE_REQUIRED_INCLUDES "${XEXT_INCLUDE_DIRS}" )
tde_save_and_set ( CMAKE_REQUIRED_LIBRARIES "${XEXT_LIBRARIES}" )
check_symbol_exists ( "XSyncCreateFence" "X11/Xlib.h;X11/extensions/sync.h" HAVE_XEXT_XSYNCFENCE )
tde_restore ( CMAKE_REQUIRED_LIBRARIES )
tde_restore ( CMAKE_REQUIRED_INCLUDES )
endif ( )
# xfixes (klipper, kicker)
if ( WITH_XFIXES )
pkg_search_module ( XFIXES xfixes )
if ( XFIXES_FOUND )
set ( HAVE_XFIXES 1 CACHE INTERNAL "" FORCE )
else ( )
tde_message_fatal ( "xfixes is requested, but was not found on your system" )
endif ( )
endif ( )
# libconfig (twin/compton-tde)
if ( WITH_LIBCONFIG )
pkg_search_module ( LIBCONFIG libconfig )
if ( LIBCONFIG_FOUND )
set ( HAVE_LIBCONFIG 1 )
# TODO replace with functionality check
if ( LIBCONFIG_VERSION VERSION_LESS 1.4.0 )
set ( HAVE_LIBCONFIG_OLD_API 1 )
endif ( )
else ( LIBCONFIG_FOUND )
tde_message_fatal ( "libconfig is requested, but was not found on your system" )
endif ( )
endif ( )
# pcre (twin/compton-tde)
if ( WITH_PCRE )
pkg_search_module ( LIBPCRE libpcre )
if ( NOT LIBPCRE_FOUND )
tde_message_fatal ( "pcre support is requested, but not found on your system" )
endif ( NOT LIBPCRE_FOUND )
endif ( )
# xtest (kxkb)
if ( WITH_XTEST )
pkg_search_module ( XTEST xtst )
if ( XTEST_FOUND )
set ( HAVE_XTEST 1 )
else ( XTEST_FOUND )
tde_message_fatal ( "xtest is requested, but was not found on your system" )
endif ( )
endif ( )
# xscreensaver ()
if ( WITH_XSCREENSAVER )
pkg_search_module ( XSS xscrnsaver )
if ( XSS_FOUND )
tde_save_and_set ( CMAKE_REQUIRED_INCLUDES "${XSS_INCLUDE_DIRS}" )
check_library_exists ( Xss XScreenSaverQueryInfo "${XSS_LIBRARY_DIRS}" HAVE_XSSLIB )
tde_restore ( CMAKE_REQUIRED_INCLUDES )
else ( XSS_FOUND )
check_library_exists ( Xss XScreenSaverQueryInfo "" HAVE_XSSLIB )
endif ( XSS_FOUND )
if ( NOT HAVE_XSSLIB )
check_library_exists ( Xext XScreenSaverQueryInfo "${XEXT_LIBRARY_DIRS}" HAVE_XEXT_XSS )
if ( HAVE_XEXT_XSS )
set ( HAVE_XSSLIB 1 )
pkg_search_module ( XSS xext )
endif ( )
endif ( )
tde_save_and_set ( CMAKE_REQUIRED_INCLUDES "${XSS_INCLUDE_DIRS}" )
check_include_file ( X11/extensions/scrnsaver.h HAVE_XSCREENSAVER_H )
tde_restore ( CMAKE_REQUIRED_INCLUDES )
if ( HAVE_XSSLIB AND HAVE_XSCREENSAVER_H )
set ( HAVE_XSCREENSAVER 1 )
else ( )
tde_message_fatal ( "xscreensaver is requested, but was not found on your system" )
endif ( )
# We don't really need the xscreensaver package for building, we only need to know
# where xscreensaver stores its executables. So give the user the possibility
# to define XSCREENSAVER_DIR and speficy the location manually.
include ( FindXscreensaver.cmake ) # not really good practise
if ( NOT XSCREENSAVER_DIRS )
tde_message_fatal (
" x s c r e e n s a v e r i s r e q u e s t e d , b u t c m a k e c a n n o t d e t e r m i n e t h e l o c a t i o n o f X S C R E E N S A V E R _ D I R S
Y o u h a v e t o e i t h e r s p e c i f y i t m a n u a l l y w i t h e . g . - D X S C R E E N S A V E R _ D I R S = / u s r / l i b / m i s c / x s c r e e n s a v e r /
o r m a k e s u r e t h a t x s c r e e n s a v e r i n s t a l l e d p r o p e r l y " )
endif ( )
endif ( )
# openGL (kdesktop or kcontrol or tdescreensaver or twin/compot-tde )
if ( WITH_OPENGL )
pkg_search_module ( GL gl )
if ( GL_FOUND )
# some extra check, stricktly speaking they are not necessary
tde_save_and_set ( CMAKE_REQUIRED_LIBRARIES ${ GL_LIBRARIES } )
tde_save_and_set ( CMAKE_REQUIRED_INCLUDES "${GL_INCLUDE_DIRS}" )
tde_save_and_set ( CMAKE_REQUIRED_FLAGS "${GL_LDFLAGS}" )
check_symbol_exists ( glXChooseVisual "GL/glx.h" HAVE_GLXCHOOSEVISUAL )
tde_restore ( CMAKE_REQUIRED_LIBRARIES )
tde_restore ( CMAKE_REQUIRED_INCLUDES )
tde_restore ( CMAKE_REQUIRED_FLAGS )
if ( NOT HAVE_GLXCHOOSEVISUAL )
tde_message_fatal ( "opengl is requested and found, but it doesn't provides glXChooseVisual() or GL/glx.h" )
endif ( )
else ( )
check_library_exists ( GL glXChooseVisual "" HAVE_GLXCHOOSEVISUAL )
if ( HAVE_GLXCHOOSEVISUAL )
set ( GL_LIBRARIES "GL" )
else ( HAVE_GLXCHOOSEVISUAL )
tde_message_fatal ( "opengl is requested, but not found on your system" )
endif ( HAVE_GLXCHOOSEVISUAL )
endif ( )
if ( BUILD_KCONTROL )
pkg_search_module ( GLU glu )
if ( NOT GLU_FOUND )
check_library_exists ( GLU gluGetString "" HAVE_GLUGETSTRING )
if ( HAVE_GLUGETSTRING )
set ( GLU_LIBRARIES "GLU" )
else ( HAVE_GLUGETSTRING )
tde_message_fatal ( "glu is required, but not found on your system" )
endif ( HAVE_GLUGETSTRING )
endif ( )
endif ( BUILD_KCONTROL )
endif ( )
# glib-2.0
if ( BUILD_NSPLUGINS )
pkg_search_module ( GLIB2 glib-2.0 )
if ( NOT GLIB2_FOUND )
tde_message_fatal ( "glib-2.0 are required, but not found on your system" )
endif ( )
endif ( )
# kde_socklen_t
if ( BUILD_TDEIOSLAVES OR BUILD_KSYSGUARD )
set ( kde_socklen_t socklen_t )
endif ( )
# getifaddrs (kcontrol, tdm)
if ( BUILD_KCONTROL OR BUILD_TDM )
check_function_exists ( getifaddrs HAVE_GETIFADDRS )
endif ( )
# xkb (konsole, tdm, kxkb)
if ( BUILD_KONSOLE OR BUILD_TDM OR BUILD_KXKB )
check_include_file ( X11/XKBlib.h HAVE_X11_XKBLIB_H )
if ( HAVE_X11_XKBLIB_H )
check_library_exists ( X11 XkbLockModifiers "" HAVE_XKB )
if ( BUILD_TDM )
check_library_exists ( X11 XkbSetPerClientControls "" HAVE_XKBSETPERCLIENTCONTROLS )
endif ( )
endif ( )
endif ( )
# XBINDIR, XLIBDIR (tdm, kxkb)
if ( BUILD_TDM OR BUILD_KXKB )
find_program ( some_x_program NAMES iceauth xrdb xterm )
if ( NOT some_x_program )
set ( some_x_program /usr/bin/xrdb )
message ( STATUS "Warning: Could not determine X binary directory. Assuming /usr/bin." )
endif ( )
get_filename_component ( proto_xbindir "${some_x_program}" PATH )
get_filename_component ( XBINDIR "${proto_xbindir}" ABSOLUTE )
get_filename_component ( xrootdir "${XBINDIR}" PATH )
set ( XBINDIR ${ XBINDIR } CACHE INTERNAL "" FORCE )
set ( XLIBDIR "${xrootdir}/lib/X11" CACHE INTERNAL "" FORCE )
endif ( )
# arts
if ( WITH_ARTS )
pkg_search_module ( ARTS arts )
if ( NOT ARTS_FOUND )
message ( FATAL_ERROR "\naRts is requested, but was not found on your system" )
endif ( )
else ( )
set ( WITHOUT_ARTS 1 )
endif ( )
# libart
if ( WITH_LIBART )
pkg_search_module ( LIBART libart-2.0 )
if ( NOT LIBART_FOUND )
message ( FATAL_ERROR "\nlibart-2.0 support are requested, but not found on your system" )
endif ( NOT LIBART_FOUND )
set ( HAVE_LIBART 1 )
endif ( WITH_LIBART )
# dbus (tdm, kdesktop, twin/compton-tde.c)
if ( BUILD_TDM OR BUILD_KDESKTOP OR ( BUILD_TWIN AND WITH_XCOMPOSITE ) )
pkg_search_module ( DBUS dbus-1 )
if ( NOT DBUS_FOUND )
tde_message_fatal ( "dbus-1 is required, but was not found on your system" )
endif ( )
endif ( )
# dbus-1-tqt (kdesktop)
if ( BUILD_KDESKTOP )
pkg_search_module ( DBUS_1_TQT dbus-1-tqt )
if ( NOT DBUS_1_TQT_FOUND )
tde_message_fatal ( "dbus-1-tqt is required, but was not found on your system" )
endif ( )
endif ( )
# check for krb5
if ( WITH_KRB5 )
pkg_search_module ( KRB5 krb5 )
if ( NOT KRB5_FOUND )
check_include_file ( kadm5/admin.h HAVE_KRB_KADM_H )
if ( NOT HAVE_KRB_KADM_H )
message ( FATAL_ERROR "\nKerberos support was requested, but krb5 was not found on your system" )
endif ( NOT HAVE_KRB_KADM_H )
endif ( NOT KRB5_FOUND )
set ( HAVE_KRB5 1 )
endif ( )
# check for libr
if ( WITH_ELFICON )
pkg_search_module ( LIBR libr )
if ( NOT LIBR_FOUND )
message ( FATAL_ERROR "\nelficon support was requested, but libr was not found on your system" )
endif ( NOT LIBR_FOUND )
if ( "${LIBR_VERSION}" VERSION_LESS "0.6" )
message ( FATAL_ERROR "\nelficon support was requested, but the libr version on your system may not be compatible with TDE" )
endif ( "${LIBR_VERSION}" VERSION_LESS "0.6" )
set ( HAVE_ELFICON 1 )
endif ( )
#
# For kxkb, try to find the path to the Xkb rules files:
#
# 1: ask for the path from xkeyboard-config's pkg-config file
# 2: ask for the path from xkbcomp's pkg-config file
# 3: look under the "FILES" heading in the man page for setxkbmap
# 4: take the prefix/libdir from xkbfile's pkg-config file and try the
# "${prefix}/share/X11" and "${libdir}/X11" directories
#
# Alternatively, just take an overriding value from the command line.
#
if ( BUILD_KXKB )
if ( NOT X11_XKB_RULES_DIR )
pkg_get_variable ( KB_RULES_DIR xkeyboard-config xkb_base )
if ( KB_RULES_DIR )
string ( REGEX REPLACE "/xkb$" "/" X11_XKB_RULES_DIR "${KB_RULES_DIR}" )
endif ( )
endif ( )
if ( NOT X11_XKB_RULES_DIR )
pkg_get_variable ( KB_RULES_DIR xkbcomp xkbconfigdir )
if ( KB_RULES_DIR )
string ( REGEX REPLACE "/xkb$" "/" X11_XKB_RULES_DIR "${KB_RULES_DIR}" )
endif ( )
endif ( )
if ( NOT X11_XKB_RULES_DIR )
execute_process (
C O M M A N D m a n - P c a t s e t x k b m a p
O U T P U T _ V A R I A B L E S E T X K B M A P _ O U T P U T
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E
E R R O R _ V A R I A B L E S E T X K B M A P _ O U T P U T
E R R O R _ S T R I P _ T R A I L I N G _ W H I T E S P A C E
R E S U L T _ V A R I A B L E S E T X K B M A P _ R C
)
if ( "${SETXKBMAP_RC}" STREQUAL "0" AND
" $ { S E T X K B M A P _ O U T P U T } " M A T C H E S " \ n . * F I L E S . * \ n [ ^ / ] * ( / [ ^ \ n ] * / ) x k b . * \ n " )
if ( EXISTS "${CMAKE_MATCH_1}xkb" )
set ( X11_XKB_RULES_DIR "${CMAKE_MATCH_1}" )
endif ( )
endif ( )
endif ( )
if ( NOT X11_XKB_RULES_DIR )
pkg_get_variable ( KB_RULES_LIBDIR xkbfile libdir )
pkg_get_variable ( KB_RULES_PREFIX xkbfile prefix )
if ( KB_RULES_LIBDIR AND KB_RULES_PREFIX )
find_file ( RULES_FILE
N A M E S x o r g x f r e e 8 6
P A T H S " $ { K B _ R U L E S _ P R E F I X } / s h a r e / X 1 1 "
" $ { K B _ R U L E S _ L I B D I R } / X 1 1 "
P A T H _ S U F F I X E S x k b / r u l e s
N O _ D E F A U L T _ P A T H
)
if ( RULES_FILE )
string ( REGEX REPLACE "/xkb/rules/(xorg|xfree86)$" "/" X11_XKB_RULES_DIR "${RULES_FILE}" )
endif ( )
endif ( )
endif ( )
if ( X11_XKB_RULES_DIR )
if ( NOT "${X11_XKB_RULES_DIR}" MATCHES "/$" )
set ( X11_XKB_RULES_DIR "${X11_XKB_RULES_DIR}/" )
endif ( )
message ( STATUS "Adding ${X11_XKB_RULES_DIR} to XKb rules directory search" )
else ( )
message ( STATUS "No additional XKb rules directory found" )
endif ( )
if ( WITH_XKB_TRANSLATIONS )
if ( NOT XKB_CONFIG_LOCALE_DIR )
pkg_get_variable ( XKB_CONFIG_DATADIR xkeyboard-config datadir )
if ( XKB_CONFIG_DATADIR )
set ( XKB_CONFIG_LOCALE_DIR "${XKB_CONFIG_DATADIR}/locale" CACHE INTERNAL "" )
message ( STATUS "Found xkeybord-config locale dir: ${XKB_CONFIG_LOCALE_DIR}" )
endif ( )
endif ( )
if ( NOT XKB_CONFIG_LOCALE_DIR )
tde_message_fatal ( "Translations for xkb messages were requested but the xkeyboard-config locale directory could not be determined." )
endif ( )
endif ( )
endif ( )
if ( BUILD_KCONTROL OR BUILD_TDM )
# SunOS kstat
check_library_exists ( kstat kstat_open "" HAVE_KSTAT )
if ( HAVE_KSTAT )
set ( KSTAT_LIBRARIES kstat )
else ( )
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "SunOS" )
tde_message_fatal ( "libkstat not found on SunOS platform!" )
endif ( )
set ( KSTAT_LIBRARIES "" )
endif ( )
if ( NOT DEFINED REBOOT_BINARY )
message ( STATUS "Looking for reboot" )
find_program ( REBOOT_BINARY reboot
H I N T S / s b i n
/ u s r / s b i n
)
if ( REBOOT_BINARY )
message ( STATUS "Looking for reboot - ${REBOOT_BINARY}" )
endif ( REBOOT_BINARY )
endif ( NOT DEFINED REBOOT_BINARY )
if ( NOT DEFINED POWEROFF_BINARY )
message ( STATUS "Looking for poweroff" )
find_program ( POWEROFF_BINARY poweroff
H I N T S / s b i n
/ u s r / s b i n
)
if ( POWEROFF_BINARY )
message ( STATUS "Looking for poweroff - ${POWEROFF_BINARY}" )
endif ( POWEROFF_BINARY )
endif ( NOT DEFINED POWEROFF_BINARY )
if ( NOT DEFINED HALT_BINARY )
message ( STATUS "Looking for halt" )
find_program ( HALT_BINARY halt
H I N T S / s b i n
/ u s r / s b i n
)
if ( HALT_BINARY )
message ( STATUS "Looking for halt - ${HALT_BINARY}" )
endif ( HALT_BINARY )
endif ( NOT DEFINED HALT_BINARY )
if ( NOT DEFINED SHUTDOWN_BINARY )
message ( STATUS "Looking for shutdown" )
find_program ( SHUTDOWN_BINARY shutdown
H I N T S / s b i n
/ u s r / s b i n
)
if ( SHUTDOWN_BINARY )
message ( STATUS "Looking for shutdown - ${SHUTDOWN_BINARY}" )
endif ( SHUTDOWN_BINARY )
endif ( NOT DEFINED SHUTDOWN_BINARY )
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "SunOS" )
# SunOS based systems
if ( NOT REBOOT_BINARY AND SHUTDOWN_BINARY )
# emulate reboot
set ( REBOOT_BINARY "${SHUTDOWN_BINARY} -y -i 6" )
endif ( NOT REBOOT_BINARY AND SHUTDOWN_BINARY )
if ( NOT POWEROFF_BINARY AND SHUTDOWN_BINARY )
# emulate poweroff
set ( POWEROFF_BINARY "${SHUTDOWN_BINARY} -y -i 5" )
endif ( NOT POWEROFF_BINARY AND SHUTDOWN_BINARY )
else ( ) # default condition
if ( NOT REBOOT_BINARY AND SHUTDOWN_BINARY )
# emulate reboot
set ( REBOOT_BINARY "${SHUTDOWN_BINARY} -r now" )
endif ( NOT REBOOT_BINARY AND SHUTDOWN_BINARY )
if ( NOT POWEROFF_BINARY AND SHUTDOWN_BINARY )
# emulate poweroff
set ( POWEROFF_BINARY "${SHUTDOWN_BINARY} -h now" )
endif ( NOT POWEROFF_BINARY AND SHUTDOWN_BINARY )
if ( NOT POWEROFF_BINARY AND HALT_BINARY )
# emulate poweroff
set ( POWEROFF_BINARY "${HALT_BINARY} -p" )
endif ( NOT POWEROFF_BINARY AND HALT_BINARY )
endif ( ${ CMAKE_SYSTEM_NAME } MATCHES "SunOS" )
if ( NOT REBOOT_BINARY )
tde_message_fatal ( "reboot command is not defined" )
endif ( NOT REBOOT_BINARY )
if ( NOT POWEROFF_BINARY )
tde_message_fatal ( "poweroff command is not defined" )
endif ( NOT POWEROFF_BINARY )
message ( STATUS "poweroff - ${POWEROFF_BINARY}" )
message ( STATUS "reboot - ${REBOOT_BINARY}" )
endif ( BUILD_KCONTROL OR BUILD_TDM )
check_include_files ( "sys/time.h;sys/loadavg.h" HAVE_SYS_LOADAVG_H )