1# environ.m4 serial 6 2dnl Copyright (C) 2001-2004, 2006-2012 Free Software Foundation, Inc. 3dnl This file is free software; the Free Software Foundation 4dnl gives unlimited permission to copy and/or distribute it, 5dnl with or without modifications, as long as this notice is preserved. 6 7AC_DEFUN_ONCE([gl_ENVIRON], 8[ 9 AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) 10 dnl Persuade glibc <unistd.h> to declare environ. 11 AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) 12 13 AC_CHECK_HEADERS_ONCE([unistd.h]) 14 gt_CHECK_VAR_DECL( 15 [#if HAVE_UNISTD_H 16 #include <unistd.h> 17 #endif 18 /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */ 19 #include <stdlib.h> 20 ], 21 [environ]) 22 if test $gt_cv_var_environ_declaration != yes; then 23 HAVE_DECL_ENVIRON=0 24 fi 25]) 26 27# Check if a variable is properly declared. 28# gt_CHECK_VAR_DECL(includes,variable) 29AC_DEFUN([gt_CHECK_VAR_DECL], 30[ 31 define([gt_cv_var], [gt_cv_var_]$2[_declaration]) 32 AC_MSG_CHECKING([if $2 is properly declared]) 33 AC_CACHE_VAL([gt_cv_var], [ 34 AC_COMPILE_IFELSE( 35 [AC_LANG_PROGRAM( 36 [[$1 37 extern struct { int foo; } $2;]], 38 [[$2.foo = 1;]])], 39 [gt_cv_var=no], 40 [gt_cv_var=yes])]) 41 AC_MSG_RESULT([$gt_cv_var]) 42 if test $gt_cv_var = yes; then 43 AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1, 44 [Define if you have the declaration of $2.]) 45 fi 46 undefine([gt_cv_var]) 47]) 48