|
version 1.1, 2012/02/21 16:23:01
|
version 1.1.1.4, 2013/07/22 10:46:10
|
|
Line 1
|
Line 1
|
| dnl Local m4 macros for autoconf (used by sudo) |
dnl Local m4 macros for autoconf (used by sudo) |
| dnl |
dnl |
| dnl Copyright (c) 1994-1996, 1998-2005, 2007-2011 | dnl Copyright (c) 1994-1996, 1998-2005, 2007-2013 |
| dnl Todd C. Miller <Todd.Miller@courtesan.com> |
dnl Todd C. Miller <Todd.Miller@courtesan.com> |
| dnl |
dnl |
| dnl XXX - should cache values in all cases!!! |
dnl XXX - should cache values in all cases!!! |
|
Line 157 AC_DEFUN([SUDO_IO_LOGDIR], [
|
Line 157 AC_DEFUN([SUDO_IO_LOGDIR], [
|
| ])dnl |
])dnl |
| |
|
| dnl |
dnl |
| dnl SUDO_CHECK_TYPE(TYPE, DEFAULT) |
|
| dnl XXX - should require the check for unistd.h... |
|
| dnl |
|
| AC_DEFUN([SUDO_CHECK_TYPE], |
|
| [AC_REQUIRE([AC_HEADER_STDC])dnl |
|
| AC_MSG_CHECKING(for $1) |
|
| AC_CACHE_VAL(sudo_cv_type_$1, |
|
| [AC_EGREP_CPP($1, [#include <sys/types.h> |
|
| #include <stdio.h> |
|
| #if STDC_HEADERS |
|
| #include <stdlib.h> |
|
| #endif |
|
| #if HAVE_UNISTD_H |
|
| #include <unistd.h> |
|
| #endif], sudo_cv_type_$1=yes, sudo_cv_type_$1=no)])dnl |
|
| AC_MSG_RESULT($sudo_cv_type_$1) |
|
| if test $sudo_cv_type_$1 = no; then |
|
| AC_DEFINE($1, $2, [Define if your system lacks the $1 type.]) |
|
| fi |
|
| ]) |
|
| |
|
| dnl |
|
| dnl Check for size_t declation |
|
| dnl |
|
| AC_DEFUN([SUDO_TYPE_SIZE_T], |
|
| [SUDO_CHECK_TYPE(size_t, int)]) |
|
| |
|
| dnl |
|
| dnl Check for ssize_t declation |
|
| dnl |
|
| AC_DEFUN([SUDO_TYPE_SSIZE_T], |
|
| [SUDO_CHECK_TYPE(ssize_t, int)]) |
|
| |
|
| dnl |
|
| dnl Check for dev_t declation |
|
| dnl |
|
| AC_DEFUN([SUDO_TYPE_DEV_T], |
|
| [SUDO_CHECK_TYPE(dev_t, int)]) |
|
| |
|
| dnl |
|
| dnl Check for ino_t declation |
|
| dnl |
|
| AC_DEFUN([SUDO_TYPE_INO_T], |
|
| [SUDO_CHECK_TYPE(ino_t, unsigned int)]) |
|
| |
|
| dnl |
|
| dnl check for working fnmatch(3) |
dnl check for working fnmatch(3) |
| dnl |
dnl |
| AC_DEFUN([SUDO_FUNC_FNMATCH], |
AC_DEFUN([SUDO_FUNC_FNMATCH], |
|
Line 217 AC_MSG_RESULT($sudo_cv_func_fnmatch)
|
Line 171 AC_MSG_RESULT($sudo_cv_func_fnmatch)
|
| AS_IF([test $sudo_cv_func_fnmatch = yes], [$1], [$2])]) |
AS_IF([test $sudo_cv_func_fnmatch = yes], [$1], [$2])]) |
| |
|
| dnl |
dnl |
| |
dnl Attempt to check for working PIE support. |
| |
dnl This is a bit of a hack but on Solaris 10 with GNU ld and GNU as |
| |
dnl we can end up with strange values from malloc(). |
| |
dnl A better check would be to verify that ASLR works with PIE. |
| |
dnl |
| |
AC_DEFUN([SUDO_WORKING_PIE], |
| |
[AC_MSG_CHECKING([for working PIE support]) |
| |
AC_CACHE_VAL(sudo_cv_working_pie, |
| |
[rm -f conftestdata; > conftestdata |
| |
AC_TRY_RUN(AC_INCLUDES_DEFAULT([]) |
| |
[main() { char *p = malloc(1024); if (p == NULL) return 1; memset(p, 0, 1024); return 0; }], [sudo_cv_working_pie=yes], [sudo_cv_working_pie=no], |
| |
[sudo_cv_working_pie=no]) |
| |
rm -f core core.* *.core]) |
| |
AC_MSG_RESULT($sudo_cv_working_pie) |
| |
AS_IF([test $sudo_cv_working_pie = yes], [$1], [$2])]) |
| |
|
| |
dnl |
| dnl check for isblank(3) |
dnl check for isblank(3) |
| dnl |
dnl |
| AC_DEFUN([SUDO_FUNC_ISBLANK], |
AC_DEFUN([SUDO_FUNC_ISBLANK], |
|
Line 231 AC_DEFUN([SUDO_FUNC_ISBLANK],
|
Line 202 AC_DEFUN([SUDO_FUNC_ISBLANK],
|
| fi |
fi |
| ]) |
]) |
| |
|
| |
AC_DEFUN([SUDO_CHECK_LIB], [ |
| |
_sudo_check_lib_extras=`echo "$5"|sed -e 's/[ ]*//g' -e 's/-l/_/g'` |
| |
AC_MSG_CHECKING([for $2 in -l$1${5+ }$5]) |
| |
AC_CACHE_VAL([sudo_cv_lib_$1''_$2$_sudo_check_lib_extras], [ |
| |
SUDO_CHECK_LIB_OLIBS="$LIBS" |
| |
LIBS="$LIBS -l$1${5+ }$5" |
| |
AC_LINK_IFELSE( |
| |
[AC_LANG_CALL([], [$2])], |
| |
[eval sudo_cv_lib_$1''_$2$_sudo_check_lib_extras=yes], |
| |
[eval sudo_cv_lib_$1''_$2$_sudo_check_lib_extras=no] |
| |
) |
| |
LIBS="$SUDO_CHECK_LIB_OLIBS" |
| |
]) |
| |
if eval test \$sudo_cv_lib_$1''_$2$_sudo_check_lib_extras = "yes"; then |
| |
AC_MSG_RESULT([yes]) |
| |
$3 |
| |
else |
| |
AC_MSG_RESULT([no]) |
| |
$4 |
| |
fi |
| |
]) |
| |
|
| dnl |
dnl |
| dnl check unsetenv() return value |
dnl check unsetenv() return value |
| dnl |
dnl |
|
Line 253 AC_DEFUN([SUDO_FUNC_UNSETENV_VOID],
|
Line 246 AC_DEFUN([SUDO_FUNC_UNSETENV_VOID],
|
| ]) |
]) |
| |
|
| dnl |
dnl |
| |
dnl check putenv() argument for const |
| |
dnl |
| |
AC_DEFUN([SUDO_FUNC_PUTENV_CONST], |
| |
[AC_CACHE_CHECK([whether putenv takes a const argument], |
| |
sudo_cv_func_putenv_const, |
| |
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT |
| |
int putenv(const char *string) {return 0;}], [])], |
| |
[sudo_cv_func_putenv_const=yes], |
| |
[sudo_cv_func_putenv_const=no]) |
| |
]) |
| |
if test $sudo_cv_func_putenv_const = yes; then |
| |
AC_DEFINE(PUTENV_CONST, const, [Define to const if the `putenv' takes a const argument.]) |
| |
else |
| |
AC_DEFINE(PUTENV_CONST, []) |
| |
fi |
| |
]) |
| |
|
| |
dnl |
| dnl check for sa_len field in struct sockaddr |
dnl check for sa_len field in struct sockaddr |
| dnl |
dnl |
| AC_DEFUN([SUDO_SOCK_SA_LEN], [ |
AC_DEFUN([SUDO_SOCK_SA_LEN], [ |
| AC_CHECK_MEMBER([struct sockaddr.sa_len], |
AC_CHECK_MEMBER([struct sockaddr.sa_len], |
| [AC_DEFINE(HAVE_SA_LEN, 1, [Define if your struct sockadr has an sa_len field.])], | [AC_DEFINE(HAVE_STRUCT_SOCKADDR_SA_LEN, 1, [Define if your struct sockadr has an sa_len field.])], |
| [], |
[], |
| [ #include <sys/types.h> |
[ #include <sys/types.h> |
| #include <sys/socket.h>] |
#include <sys/socket.h>] |
|
Line 299 AC_DEFINE_UNQUOTED(MAX_UID_T_LEN, $sudo_cv_uid_t_len,
|
Line 310 AC_DEFINE_UNQUOTED(MAX_UID_T_LEN, $sudo_cv_uid_t_len,
|
| ]) |
]) |
| |
|
| dnl |
dnl |
| dnl append a libpath to an LDFLAGS style variable | dnl Append a libpath to an LDFLAGS style variable if not already present. |
| | dnl Also appends to the _R version unless rpath is disabled. |
| dnl |
dnl |
| AC_DEFUN([SUDO_APPEND_LIBPATH], [ |
AC_DEFUN([SUDO_APPEND_LIBPATH], [ |
| if test X"$with_rpath" = X"yes"; then | case "${$1}" in |
| case "$host" in | *"-L$2"|*"-L$2 ") |
| *-*-hpux*) $1="${$1} -L$2 -Wl,+b,$2" | ;; |
| ;; | *) |
| *) $1="${$1} -L$2 -Wl,-R$2" | $1="${$1} -L$2" |
| ;; | if test X"$enable_rpath" = X"yes"; then |
| esac | $1_R="${$1_R} -R$2" |
| else | fi |
| $1="${$1} -L$2" | ;; |
| fi | esac |
| if test X"$blibpath" != X"" -a "$1" = "SUDO_LDFLAGS"; then | |
| blibpath_add="${blibpath_add}:$2" | |
| fi | |
| ]) |
]) |
| |
|
| dnl |
dnl |
| |
dnl Append a directory to CPPFLAGS if not already present. |
| |
dnl |
| |
AC_DEFUN([SUDO_APPEND_CPPFLAGS], [ |
| |
case "${CPPFLAGS}" in |
| |
*"$1"|*"$1 ") |
| |
;; |
| |
*) |
| |
if test X"${CPPFLAGS}" = X""; then |
| |
CPPFLAGS="$1" |
| |
else |
| |
CPPFLAGS="${CPPFLAGS} $1" |
| |
fi |
| |
;; |
| |
esac |
| |
]) |
| |
|
| |
dnl |
| dnl Determine the mail spool location |
dnl Determine the mail spool location |
| dnl NOTE: must be run *after* check for paths.h |
dnl NOTE: must be run *after* check for paths.h |
| dnl |
dnl |
|
Line 370 EOF
|
Line 396 EOF
|
| dnl |
dnl |
| dnl Pull in libtool macros |
dnl Pull in libtool macros |
| dnl |
dnl |
| m4_include([libtool.m4]) | m4_include([m4/libtool.m4]) |
| m4_include([ltoptions.m4]) | m4_include([m4/ltoptions.m4]) |
| m4_include([ltsugar.m4]) | m4_include([m4/ltsugar.m4]) |
| m4_include([ltversion.m4]) | m4_include([m4/ltversion.m4]) |
| m4_include([lt~obsolete.m4]) | m4_include([m4/lt~obsolete.m4]) |
| | dnl |
| | dnl Pull in other non-standard macros |
| | dnl |
| | m4_include([m4/ax_check_compile_flag.m4]) |
| | m4_include([m4/ax_check_link_flag.m4]) |