diff options
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/configure.cmake | 16 |
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) |