aboutsummaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/configure.cmake16
1 files changed, 13 insertions, 3 deletions
diff --git a/cmake/configure.cmake b/cmake/configure.cmake
index ec4c4e52..c8ab206a 100644
--- a/cmake/configure.cmake
+++ b/cmake/configure.cmake
@@ -44,6 +44,7 @@ include(CheckLibraryExists)
include(CheckTypeSize)
include(CheckStructHasMember)
INCLUDE(CheckCSourceCompiles)
+include(CheckPrototypeDefinition)
MACRO(DefineConfigH feature)
# message(STATUS feature=${feature}=${${feature}})
@@ -135,7 +136,8 @@ add_definitions(-D PRINTF_HAS_F_FORMAT)
#/* Define as the return type of signal handlers (`int' or `void'). */
add_definitions(-D RETSIGTYPE=void)
#add_definitions(-D PIPES_SIMULATED)
-add_definitions(-D GETPGRP_VOID)
+check_prototype_definition(getpgrp "pid_t getpgrp(void)" "NULL" "unistd.h" GETPGRP_VOID)
+DefineConfigH(GETPGRP_VOID)
#add_definitions(-D YYPARSE_PARAM)
DefineFunctionIfAvailable(snprintf HAVE_SNPRINTF)
@@ -205,8 +207,16 @@ DefineFunctionIfAvailable(fmod HAVE_FMOD)
DefineFunctionIfAvailable(isinf HAVE_ISINF)
DefineFunctionIfAvailable(ismod HAVE_ISMOD)
DefineFunctionIfAvailable(getgrent HAVE_GETGRENT)
-DefineFunctionIfAvailable(getgroups HAVE_GETGROUPS)
-add_definitions(-D GETGROUPS_T=gid_t)
+DefineSymbolIfAvailable("getgroups" "unistd.h" HAVE_GETGROUPS)
+if (${HAVE_GETGROUPS})
+ check_prototype_definition(getgroups "int getgroups(int size, gid_t list[])" "NULL" "unistd.h" GETGROUPS_T)
+ if (${GETGROUPS_T})
+ DefineConfigHValue(GETGROUPS_T gid_t)
+ else()
+ DefineConfigHValue(GETGROUPS_T int)
+ endif()
+endif()
+
DefineTypeIfAvailable("pid_t" PID_T)
DefineTypeIfAvailable("intmax_t" HAVE_INTMAX_T)
DefineFunctionIfAvailable(grantpt HAVE_GRANTPT)