diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-01-20 10:55:18 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-01-20 10:55:18 +0000 |
commit | 70e9163c9c18e995515598085cb824e554eb7ae7 (patch) | |
tree | a42dc8b2a6c031354bf31472de888bfc8a060132 /m4/jm-macros.m4 | |
parent | cbf5993c43f49281173f185863577d86bfac6eae (diff) | |
download | coreutils-tarball-master.tar.gz |
coreutils-8.25HEADcoreutils-8.25master
Diffstat (limited to 'm4/jm-macros.m4')
-rw-r--r-- | m4/jm-macros.m4 | 246 |
1 files changed, 161 insertions, 85 deletions
diff --git a/m4/jm-macros.m4 b/m4/jm-macros.m4 index 2595542..435c6ff 100644 --- a/m4/jm-macros.m4 +++ b/m4/jm-macros.m4 @@ -1,14 +1,13 @@ -#serial 105 -*- autoconf -*- +#serial 110 -*- autoconf -*- dnl Misc type-related macros for coreutils. -# Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software -# Foundation, Inc. +# Copyright (C) 1998-2016 Free Software Foundation, Inc. -# This program is free software; you can redistribute it and/or modify +# This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,22 +15,14 @@ dnl Misc type-related macros for coreutils. # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# along with this program. If not, see <http://www.gnu.org/licenses/>. # Written by Jim Meyering. AC_DEFUN([coreutils_MACROS], [ - GNU_PACKAGE="GNU $PACKAGE" - AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE", - [The concatenation of the strings `GNU ', and PACKAGE.]) - AC_SUBST(GNU_PACKAGE) - AM_MISSING_PROG(HELP2MAN, help2man) - AC_SUBST(OPTIONAL_BIN_PROGS) - AC_SUBST(MAN) - AC_SUBST(DF_PROG) + AC_SUBST([MAN]) dnl This macro actually runs replacement code. See isc-posix.m4. AC_REQUIRE([AC_ISC_POSIX])dnl @@ -44,90 +35,186 @@ AC_DEFUN([coreutils_MACROS], AC_REQUIRE([AC_FUNC_FSEEKO]) - # By default, argmatch should fail calling usage (1). - AC_DEFINE(ARGMATCH_DIE, [usage (1)], - [Define to the function xargmatch calls on failures.]) - AC_DEFINE(ARGMATCH_DIE_DECL, [extern void usage ()], - [Define to the declaration of the xargmatch failure function.]) + # By default, argmatch should fail calling usage (EXIT_FAILURE). + AC_DEFINE([ARGMATCH_DIE], [usage (EXIT_FAILURE)], + [Define to the function xargmatch calls on failures.]) + AC_DEFINE([ARGMATCH_DIE_DECL], [void usage (int _e)], + [Define to the declaration of the xargmatch failure function.]) - # used by ls - AC_REQUIRE([gl_CLOCK_TIME]) # used by shred - AC_CHECK_FUNCS_ONCE(directio) - - AC_CHECK_FUNCS_ONCE( \ - endgrent \ - endpwent \ - fchown \ - fchmod \ - ftruncate \ - iswspace \ - mkfifo \ - mbrlen \ - setgroups \ - sethostname \ - siginterrupt \ - sync \ - sysctl \ - sysinfo \ - tcgetpgrp \ - ) + AC_CHECK_FUNCS_ONCE([directio]) + + coreutils_saved_libs=$LIBS + LIBS="$LIBS $LIB_SELINUX" + # Used by selinux.c. + AC_CHECK_FUNCS([mode_to_security_class], [], []) + # Used by install.c. + AC_CHECK_FUNCS([matchpathcon_init_prefix], [], + [ + if test "$with_selinux" != no; then + case "$ac_cv_search_setfilecon:$ac_cv_header_selinux_selinux_h" in + no:*) # SELinux disabled + ;; + *:no) # SELinux disabled + ;; + *) + AC_MSG_WARN([SELinux enabled, but matchpathcon_init_prefix not found]) + AC_MSG_WARN([The install utility may run slowly]) + esac + fi + ]) + LIBS=$coreutils_saved_libs + + # Used by sort.c. + AC_CHECK_FUNCS_ONCE([nl_langinfo]) + # Used by timeout.c + AC_CHECK_FUNCS_ONCE([setrlimit prctl]) + + # Used by tail.c. + AC_CHECK_FUNCS([inotify_init], + [AC_DEFINE([HAVE_INOTIFY], [1], + [Define to 1 if you have usable inotify support.])]) + + AC_CHECK_FUNCS_ONCE([ + endgrent + endpwent + fallocate + fchown + fchmod + ftruncate + iswspace + mkfifo + mbrlen + setgroups + sethostname + siginterrupt + sync + syncfs + sysctl + sysinfo + tcgetpgrp + ]) + + # These checks are for Interix, to avoid its getgr* functions, in favor + # of these replacements. The replacement functions are much more efficient + # because they do not query the domain controller for user information + # when it is not needed. + AC_CHECK_FUNCS_ONCE([ + getgrgid_nomembers + getgrnam_nomembers + getgrent_nomembers + ]) dnl This can't use AC_REQUIRE; I'm not quite sure why. cu_PREREQ_STAT_PROG # for dd.c and shred.c - coreutils_saved_libs=$LIBS + # + # Use fdatasync only if declared. On MacOS X 10.7, fdatasync exists but + # is not declared, and is ineffective. + LIB_FDATASYNC= + AC_SUBST([LIB_FDATASYNC]) + AC_CHECK_DECLS_ONCE([fdatasync]) + if test $ac_cv_have_decl_fdatasync = yes; then + coreutils_saved_libs=$LIBS AC_SEARCH_LIBS([fdatasync], [rt posix4], - [test "$ac_cv_search_fdatasync" = "none required" || - LIB_FDATASYNC=$ac_cv_search_fdatasync]) - AC_SUBST([LIB_FDATASYNC]) - AC_CHECK_FUNCS(fdatasync) - LIBS=$coreutils_saved_libs + [test "$ac_cv_search_fdatasync" = "none required" || + LIB_FDATASYNC=$ac_cv_search_fdatasync]) + AC_CHECK_FUNCS([fdatasync]) + LIBS=$coreutils_saved_libs + fi + + # Check whether libcap is usable -- for ls --color support + LIB_CAP= + AC_ARG_ENABLE([libcap], + AC_HELP_STRING([--disable-libcap], [disable libcap support])) + if test "X$enable_libcap" != "Xno"; then + AC_CHECK_LIB([cap], [cap_get_file], + [AC_CHECK_HEADER([sys/capability.h], + [LIB_CAP=-lcap + AC_DEFINE([HAVE_CAP], [1], [libcap usability])] + )]) + if test "X$LIB_CAP" = "X"; then + if test "X$enable_libcap" = "Xyes"; then + AC_MSG_ERROR([libcap library was not found or not usable]) + else + AC_MSG_WARN([libcap library was not found or not usable.]) + AC_MSG_WARN([AC_PACKAGE_NAME will be built without capability support.]) + fi + fi + else + AC_MSG_WARN([libcap support disabled by user]) + fi + AC_SUBST([LIB_CAP]) - # See if linking `seq' requires -lm. + # See if linking 'seq' requires -lm. # It does on nearly every system. The single exception (so far) is # BeOS which has all the math functions in the normal runtime library # and doesn't have a separate math library. - AC_SUBST(SEQ_LIBM) + AC_SUBST([SEQ_LIBM]) ac_seq_body=' static double x, y; x = floor (x); x = rint (x); x = modf (x, &y);' - AC_TRY_LINK([#include <math.h>], $ac_seq_body, , + AC_TRY_LINK([#include <math.h>], [$ac_seq_body], , [ac_seq_save_LIBS="$LIBS" LIBS="$LIBS -lm" - AC_TRY_LINK([#include <math.h>], $ac_seq_body, SEQ_LIBM=-lm) + AC_TRY_LINK([#include <math.h>], [$ac_seq_body], [SEQ_LIBM=-lm]) LIBS="$ac_seq_save_LIBS" ]) + + # See is fpsetprec() required to use extended double precision + # This is needed on 32 bit FreeBSD to give accurate conversion of: + # `numfmt 9223372036854775808` + AC_TRY_LINK([#include <ieeefp.h>], + [#ifdef __i386__ + fpsetprec(FP_PE); + #else + # error not required on 64 bit + #endif + ], [ac_have_fpsetprec=yes], [ac_have_fpsetprec=no]) + if test "$ac_have_fpsetprec" = "yes" ; then + AC_DEFINE([HAVE_FPSETPREC], 1, [whether fpsetprec is present and required]) + fi + AC_REQUIRE([AM_LANGINFO_CODESET]) - # Build df only if there's a point to it. - if test $gl_cv_list_mounted_fs = yes && test $gl_cv_fs_space = yes; then - DF_PROG='df$(EXEEXT)' + # Accept configure options: --with-tty-group[=GROUP], --without-tty-group + # You can determine the group of a TTY via 'stat --format %G /dev/tty' + # Omitting this option is equivalent to using --without-tty-group. + AC_ARG_WITH([tty-group], + AS_HELP_STRING([--with-tty-group[[[=NAME]]]], + [group used by system for TTYs, "tty" when not specified] + [ (default: do not rely on any group used for TTYs)]), + [tty_group_name=$withval], + [tty_group_name=no]) + + if test "x$tty_group_name" != xno; then + if test "x$tty_group_name" = xyes; then + tty_group_name=tty + fi + AC_MSG_NOTICE([TTY group used by system set to "$tty_group_name"]) + AC_DEFINE_UNQUOTED([TTY_GROUP_NAME], ["$tty_group_name"], + [group used by system for TTYs]) fi ]) AC_DEFUN([gl_CHECK_ALL_HEADERS], [ - AC_CHECK_HEADERS_ONCE( \ - hurd.h \ - paths.h \ - priv.h \ - stropts.h \ - sys/ioctl.h \ - sys/param.h \ - sys/resource.h \ - sys/systeminfo.h \ - sys/time.h \ - sys/wait.h \ - syslog.h \ - termios.h \ - ) - AC_CHECK_HEADERS(sys/sysctl.h, [], [], + AC_CHECK_HEADERS_ONCE([ + hurd.h + linux/falloc.h + paths.h + priv.h + stropts.h + sys/param.h + sys/systeminfo.h + syslog.h + ]) + AC_CHECK_HEADERS([sys/sysctl.h], [], [], [AC_INCLUDES_DEFAULT [#if HAVE_SYS_PARAM_H #include <sys/param.h> @@ -137,21 +224,10 @@ AC_DEFUN([gl_CHECK_ALL_HEADERS], # This macro must be invoked before any tests that run the compiler. AC_DEFUN([gl_CHECK_ALL_TYPES], [ - dnl This test must come as early as possible after the compiler configuration - dnl tests, because the choice of the file model can (in principle) affect - dnl whether functions and headers are available, whether they work, etc. - AC_REQUIRE([AC_SYS_LARGEFILE]) - - dnl This test must precede tests of compiler characteristics like - dnl that for the inline keyword, since it may change the degree to - dnl which the compiler supports such features. - AC_REQUIRE([AM_C_PROTOTYPES]) - dnl Checks for typedefs, structures, and compiler characteristics. - AC_REQUIRE([AC_C_BIGENDIAN]) + AC_REQUIRE([gl_BIGENDIAN]) AC_REQUIRE([AC_C_VOLATILE]) AC_REQUIRE([AC_C_INLINE]) - AC_REQUIRE([AC_C_LONG_DOUBLE]) AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) AC_REQUIRE([gl_CHECK_ALL_HEADERS]) @@ -169,12 +245,12 @@ AC_DEFUN([gl_CHECK_ALL_TYPES], AC_REQUIRE([AC_TYPE_PID_T]) AC_REQUIRE([AC_TYPE_SIZE_T]) AC_REQUIRE([AC_TYPE_UID_T]) - AC_CHECK_TYPE(ino_t, unsigned long int) + AC_CHECK_TYPE([ino_t], [unsigned long int]) dnl This relies on the fact that Autoconf's implementation of dnl AC_CHECK_TYPE checks includes unistd.h. - AC_CHECK_TYPE(major_t, unsigned int) - AC_CHECK_TYPE(minor_t, unsigned int) + AC_CHECK_TYPE([major_t], [unsigned int]) + AC_CHECK_TYPE([minor_t], [unsigned int]) AC_REQUIRE([AC_HEADER_MAJOR]) ]) |