1# -*- autoconf -*- 2# Process this file with autoconf to produce a configure script. 3 4# Copyright (C) 1991-2018 Free Software Foundation, Inc. 5 6# This program is free software: you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation, either version 3 of the License, or 9# (at your option) any later version. 10 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15 16# You should have received a copy of the GNU General Public License 17# along with this program. If not, see <https://www.gnu.org/licenses/>. 18 19dnl Written by Jim Meyering. 20 21AC_PREREQ([2.69]) 22 23# Make inter-release version strings look like, e.g., v6.9-219-g58ddd, which 24# indicates that it is built from the 219th delta (in _some_ repository) 25# following the v6.9 tag, and that 58ddd is a prefix of the commit SHA1. 26# The explicit URL can be removed when autoconf > 2.69 is released. 27AC_INIT([GNU coreutils], 28 m4_esyscmd([build-aux/git-version-gen .tarball-version]), 29 [bug-coreutils@gnu.org], 30 [coreutils], 31 [https://www.gnu.org/software/coreutils/]) 32 33AC_CONFIG_SRCDIR([src/ls.c]) 34 35AC_CONFIG_AUX_DIR([build-aux]) 36AC_CONFIG_HEADERS([lib/config.h:lib/config.hin]) 37 38AM_INIT_AUTOMAKE([1.11.2 no-dist-gzip dist-xz color-tests parallel-tests 39 subdir-objects]) 40AM_SILENT_RULES([yes]) # make --enable-silent-rules the default. 41 42dnl POSIXCHECK is worthwhile for maintainers, but adds several seconds 43dnl (more than 10% execution time) to ./configure, with no benefit for 44dnl most users. Using it to look for bugs requires: 45dnl GNULIB_POSIXCHECK=1 autoreconf -f 46dnl ./configure 47dnl make 48dnl make -C src clean 49dnl make CFLAGS=-DGNULIB_POSIXCHECK=1 50dnl FIXME: Once we figure out how to avoid false positives, we should 51dnl have 'make my-distcheck' in dist-check.mk exercise this. 52m4_syscmd([test "${GNULIB_POSIXCHECK+set}" = set]) 53m4_if(m4_sysval, [0], [], [dnl 54gl_ASSERT_NO_GNULIB_POSIXCHECK]) 55 56AC_PROG_CC_STDC 57AM_PROG_CC_C_O 58AC_PROG_CPP 59AC_PROG_GCC_TRADITIONAL 60AC_PROG_RANLIB 61AC_PROG_LN_S 62gl_EARLY 63gl_INIT 64coreutils_MACROS 65 66# The test suite needs to know if we have a working perl. 67# FIXME: this is suboptimal. Ideally, we would be able to call gl_PERL 68# with an ACTION-IF-NOT-FOUND argument ... 69cu_have_perl=yes 70case $PERL in *"/missing "*) cu_have_perl=no;; esac 71AM_CONDITIONAL([HAVE_PERL], [test $cu_have_perl = yes]) 72 73# gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found]) 74# ------------------------------------------------ 75# If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND. 76# Otherwise, run RUN-IF-NOT-FOUND. 77AC_DEFUN([gl_GCC_VERSION_IFELSE], 78 [AC_PREPROC_IFELSE( 79 [AC_LANG_PROGRAM( 80 [[ 81#if ($1) < __GNUC__ || (($1) == __GNUC__ && ($2) <= __GNUC_MINOR__) 82/* ok */ 83#else 84# error "your version of gcc is older than $1.$2" 85#endif 86 ]]), 87 ], [$3], [$4]) 88 ] 89) 90 91AC_ARG_ENABLE([gcc-warnings], 92 [AS_HELP_STRING([--enable-gcc-warnings], 93 [turn on many GCC warnings (for developers; best with GNU make)])], 94 [case $enableval in 95 yes|no) ;; 96 *) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;; 97 esac 98 gl_gcc_warnings=$enableval], 99 [ 100 # GCC provides fine-grained control over diagnostics which 101 # is used in gnulib for example to suppress warnings from 102 # certain sections of code. So if this is available and 103 # we're running from a git repo, then auto enable the warnings. 104 gl_gcc_warnings=no 105 gl_GCC_VERSION_IFELSE([4], [6], 106 [test -d "$srcdir"/.git \ 107 && ! test -f "$srcdir"/.tarball-version \ 108 && gl_gcc_warnings=yes])] 109) 110 111if test "$gl_gcc_warnings" = yes; then 112 gl_WARN_ADD([-Werror], [WERROR_CFLAGS]) 113 AC_SUBST([WERROR_CFLAGS]) 114 115 nw= 116 # This, $nw, is the list of warnings we disable. 117 nw="$nw -Wdeclaration-after-statement" # too useful to forbid 118 nw="$nw -Waggregate-return" # anachronistic 119 nw="$nw -Wlong-long" # C90 is anachronistic (lib/gethrxtime.h) 120 nw="$nw -Wc++-compat" # We don't care about C++ compilers 121 nw="$nw -Wundef" # Warns on '#if GNULIB_FOO' etc in gnulib 122 nw="$nw -Wtraditional" # Warns on #elif which we use often 123 nw="$nw -Wcast-qual" # Too many warnings for now 124 nw="$nw -Wconversion" # Too many warnings for now 125 nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings 126 nw="$nw -Wsign-conversion" # Too many warnings for now 127 nw="$nw -Wtraditional-conversion" # Too many warnings for now 128 nw="$nw -Wunreachable-code" # Too many warnings for now 129 nw="$nw -Wpadded" # Our structs are not padded 130 nw="$nw -Wredundant-decls" # openat.h declares e.g., mkdirat 131 nw="$nw -Wlogical-op" # Too many warnings until GCC 4.8.0 132 nw="$nw -Wformat-nonliteral" # who.c and pinky.c strftime uses 133 nw="$nw -Wvla" # warnings in gettext.h 134 nw="$nw -Wnested-externs" # use of XARGMATCH/verify_function__ 135 nw="$nw -Wswitch-enum" # Too many warnings for now 136 nw="$nw -Wswitch-default" # Too many warnings for now 137 nw="$nw -Wstack-protector" # not worth working around 138 nw="$nw -Wtype-limits" # False alarms for portable code 139 nw="$nw -Wformat-overflow=2" # False alarms due to GCC bug 80776 140 nw="$nw -Wformat-truncation=2" # False alarm in ls.c, probably related 141 # things I might fix soon: 142 nw="$nw -Wfloat-equal" # sort.c, seq.c 143 nw="$nw -Wmissing-format-attribute" # copy.c 144 nw="$nw -Wunsafe-loop-optimizations" # a few src/*.c 145 nw="$nw -Winline" # system.h's readdir_ignoring_dot_and_dotdot 146 nw="$nw -Wsuggest-attribute=format" # warns about copy.c and factor.c 147 148 # Using -Wstrict-overflow is a pain, but the alternative is worse. 149 # For an example, see the code that provoked this report: 150 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=33498 151 # Code like that still infloops with gcc-4.6.0 and -O2. Scary indeed. 152 153 gl_MANYWARN_ALL_GCC([ws]) 154 gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw]) 155 for w in $ws; do 156 gl_WARN_ADD([$w]) 157 done 158 gl_WARN_ADD([-Wno-sign-compare]) # Too many warnings for now 159 gl_WARN_ADD([-Wno-type-limits]) # False alarms for portable code 160 gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now 161 gl_WARN_ADD([-Wno-format-nonliteral]) 162 163 # Enable this warning only with gcc-4.8 and newer. Before that 164 # bounds checking as done in truncate.c was incorrectly flagged. 165 # See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43772 166 gl_GCC_VERSION_IFELSE([4], [8], [gl_WARN_ADD([-Wlogical-op])]) 167 168 # clang is unduly picky about some things. 169 AC_CACHE_CHECK([whether the compiler is clang], [utils_cv_clang], 170 [AC_COMPILE_IFELSE( 171 [AC_LANG_PROGRAM([[ 172 #ifndef __clang__ 173 #error "not clang" 174 #endif 175 ]])], 176 [utils_cv_clang=yes], 177 [utils_cv_clang=no])]) 178 if test $utils_cv_clang = yes; then 179 gl_WARN_ADD([-Wno-format-extra-args]) 180 gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare]) 181 fi 182 183 gl_WARN_ADD([-fdiagnostics-show-option]) 184 gl_WARN_ADD([-funit-at-a-time]) 185 186 AC_SUBST([WARN_CFLAGS]) 187 188 AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.]) 189 AH_VERBATIM([FORTIFY_SOURCE], 190 [/* Enable compile-time and run-time bounds-checking, and some warnings, 191 without upsetting glibc 2.15+. */ 192 #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__ 193 # define _FORTIFY_SOURCE 2 194 #endif 195 ]) 196 AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks]) 197 198 # We use a slightly smaller set of warning options for lib/. 199 # Remove the following and save the result in GNULIB_WARN_CFLAGS. 200 nw= 201 nw="$nw -Wduplicated-branches" # Too many false alarms 202 nw="$nw -Wformat-truncation=2" 203 nw="$nw -Wstrict-overflow" 204 nw="$nw -Wuninitialized" 205 nw="$nw -Wunused-macros" 206 nw="$nw -Wmissing-prototypes" 207 nw="$nw -Wold-style-definition" 208 # FIXME: it may be easy to remove this, since it affects only one file: 209 # the snprintf call at ftoastr.c:132. 210 nw="$nw -Wdouble-promotion" 211 gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw]) 212 AC_SUBST([GNULIB_WARN_CFLAGS]) 213 214 # For gnulib-tests, the set is slightly smaller still. 215 nw= 216 nw="$nw -Wstrict-prototypes" 217 # It's not worth being this picky about test programs. 218 nw="$nw -Wsuggest-attribute=const" 219 nw="$nw -Wsuggest-attribute=pure" 220 gl_MANYWARN_COMPLEMENT([GNULIB_TEST_WARN_CFLAGS], 221 [$GNULIB_WARN_CFLAGS], [$nw]) 222 AC_SUBST([GNULIB_TEST_WARN_CFLAGS]) 223fi 224 225AC_ARG_ENABLE([single-binary], 226 [AS_HELP_STRING([--enable-single-binary=[shebangs|symlinks]], 227 [Compile all the tools in a single binary, reducing the overall size. 228 When compiled this way, shebangs (default when enabled) or symlinks are 229 installed for each tool that points to the single binary.])], 230 [gl_single_binary=no ; 231 case $enableval in 232 yes) gl_single_binary=shebangs ;; 233 no|shebangs|symlinks) gl_single_binary=$enableval ;; 234 *) AC_MSG_ERROR([bad value $enableval for single-binary option. 235 Options are: symlinks, shebangs, no.]) ;; 236 esac], 237 [gl_single_binary=no] 238) 239AC_ARG_ENABLE([single-binary-exceptions], 240 [AS_HELP_STRING([--enable-single-binary-exceptions=PROG_LIST], 241 [When used with --enable-single-binary, exclude the PROG_LIST from 242 it, so these programs are compiled as separated files 243 (comma-separated, default none))])], 244 [gl_single_binary_exceptions=$enableval], 245 [gl_single_binary_exceptions=] 246) 247if test "$gl_single_binary" = 'symlinks'; then 248 if ! test "`echo ls | sed \"$program_transform_name\"`" = 'ls'; then 249 AC_MSG_ERROR([program name transformations are not currently supported 250 with --enable-single-binary=symlinks.]) 251 fi 252fi 253AM_CONDITIONAL([SINGLE_BINARY], [test "$gl_single_binary" != no]) 254 255AC_FUNC_FORK 256 257optional_bin_progs= 258AC_CHECK_FUNCS([chroot], 259 gl_ADD_PROG([optional_bin_progs], [chroot])) 260AC_CHECK_FUNCS([gethostid], 261 gl_ADD_PROG([optional_bin_progs], [hostid])) 262AC_CHECK_FUNCS([sigsuspend], 263 gl_ADD_PROG([optional_bin_progs], [timeout])) 264 265gl_WINSIZE_IN_PTEM 266 267AC_MSG_CHECKING([whether localtime caches TZ]) 268AC_CACHE_VAL([utils_cv_localtime_cache], 269[if test x$ac_cv_func_tzset = xyes; then 270AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h> 271#if STDC_HEADERS 272# include <stdlib.h> 273#endif 274extern char **environ; 275void unset_TZ (void) 276{ 277 char **from, **to; 278 for (to = from = environ; (*to = *from); from++) 279 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '=')) 280 to++; 281} 282int main() 283{ 284 time_t now = time ((time_t *) 0); 285 int hour_GMT0, hour_unset; 286 if (putenv ("TZ=GMT0") != 0) 287 return 1; 288 hour_GMT0 = localtime (&now)->tm_hour; 289 unset_TZ (); 290 hour_unset = localtime (&now)->tm_hour; 291 if (putenv ("TZ=PST8") != 0) 292 return 1; 293 if (localtime (&now)->tm_hour == hour_GMT0) 294 return 1; 295 unset_TZ (); 296 if (localtime (&now)->tm_hour != hour_unset) 297 return 1; 298 return 0; 299}]])], 300[utils_cv_localtime_cache=no], 301[utils_cv_localtime_cache=yes], 302[# If we have tzset, assume the worst when cross-compiling. 303utils_cv_localtime_cache=yes]) 304else 305 # If we lack tzset, report that localtime does not cache TZ, 306 # since we can't invalidate the cache if we don't have tzset. 307 utils_cv_localtime_cache=no 308fi])dnl 309AC_MSG_RESULT([$utils_cv_localtime_cache]) 310if test $utils_cv_localtime_cache = yes; then 311 AC_DEFINE([LOCALTIME_CACHE], [1], [FIXME]) 312fi 313 314# Assume that if getattrat exists, it's compatible with Solaris 11. 315AC_CHECK_FUNCS([getattrat]) 316if test $ac_cv_func_getattrat = yes; then 317 LIB_NVPAIR=-lnvpair 318 AC_SUBST([LIB_NVPAIR]) 319fi 320 321# SCO-ODT-3.0 is reported to need -los to link programs using initgroups 322AC_CHECK_FUNCS([initgroups]) 323if test $ac_cv_func_initgroups = no; then 324 AC_CHECK_LIB([os], [initgroups]) 325fi 326 327AC_CHECK_FUNCS([syslog]) 328if test $ac_cv_func_syslog = no; then 329 # syslog is not in the default libraries. See if it's in some other. 330 for lib in bsd socket inet; do 331 AC_CHECK_LIB([$lib], [syslog], [AC_DEFINE([HAVE_SYSLOG], [1], [FIXME]) 332 LIBS="$LIBS -l$lib"; break]) 333 done 334fi 335 336AC_CACHE_CHECK([for 3-argument setpriority function], 337 [utils_cv_func_setpriority], 338 [AC_LINK_IFELSE( 339 [AC_LANG_PROGRAM( 340 [[#include <sys/time.h> 341 #include <sys/resource.h> 342 ]], 343 [[setpriority (0, 0, 0);]])], 344 [utils_cv_func_setpriority=yes], 345 [utils_cv_func_setpriority=no])]) 346if test $utils_cv_func_setpriority = no; then 347 AC_CHECK_FUNCS([nice]) 348fi 349case $utils_cv_func_setpriority,$ac_cv_func_nice in 350*yes*) 351 gl_ADD_PROG([optional_bin_progs], [nice]) 352esac 353 354AC_DEFUN([coreutils_DUMMY_1], 355[ 356 AC_REQUIRE([gl_READUTMP]) 357 if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then 358 gl_ADD_PROG([optional_bin_progs], [who]) 359 gl_ADD_PROG([optional_bin_progs], [users]) 360 gl_ADD_PROG([optional_bin_progs], [pinky]) 361 fi 362]) 363coreutils_DUMMY_1 364 365AC_MSG_CHECKING([ut_host in struct utmp]) 366AC_CACHE_VAL([su_cv_func_ut_host_in_utmp], 367[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> 368 #include <utmp.h> 369 struct utmp ut; 370 int s = sizeof ut.ut_host;]])], 371 [su_cv_func_ut_host_in_utmp=yes], 372 [su_cv_func_ut_host_in_utmp=no])]) 373AC_MSG_RESULT([$su_cv_func_ut_host_in_utmp]) 374if test $su_cv_func_ut_host_in_utmp = yes; then 375 have_ut_host=1 376 AC_DEFINE([HAVE_UT_HOST], [1], [FIXME]) 377fi 378 379if test -z "$have_ut_host"; then 380 AC_MSG_CHECKING([ut_host in struct utmpx]) 381 AC_CACHE_VAL([su_cv_func_ut_host_in_utmpx], 382 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> 383 #include <utmpx.h> 384 struct utmpx ut; 385 int s = sizeof ut.ut_host;]])], 386 [su_cv_func_ut_host_in_utmpx=yes], 387 [su_cv_func_ut_host_in_utmpx=no])]) 388 AC_MSG_RESULT([$su_cv_func_ut_host_in_utmpx]) 389 if test $su_cv_func_ut_host_in_utmpx = yes; then 390 AC_DEFINE([HAVE_UTMPX_H], [1], [FIXME]) 391 AC_DEFINE([HAVE_UT_HOST], [1], [FIXME]) 392 fi 393fi 394 395GNULIB_BOOT_TIME([gl_ADD_PROG([optional_bin_progs], [uptime])]) 396 397AC_SYS_POSIX_TERMIOS() 398gl_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL 399 400if test $ac_cv_sys_posix_termios = yes; then 401 gl_ADD_PROG([optional_bin_progs], [stty]) 402 403 AC_MSG_CHECKING([whether termios.h needs _XOPEN_SOURCE]) 404 AC_CACHE_VAL([su_cv_sys_termios_needs_xopen_source], 405 [AC_EGREP_CPP([yes], [#include <termios.h> 406#ifdef IUCLC 407yes 408#endif], su_cv_sys_termios_needs_xopen_source=no, 409 AC_EGREP_CPP([yes], [#define _XOPEN_SOURCE 410#include <termios.h> 411#ifdef IUCLC 412yes 413#endif], su_cv_sys_termios_needs_xopen_source=yes, 414 su_cv_sys_termios_needs_xopen_source=no))]) 415 AC_MSG_RESULT([$su_cv_sys_termios_needs_xopen_source]) 416 test $su_cv_sys_termios_needs_xopen_source = yes && 417 AC_DEFINE([TERMIOS_NEEDS_XOPEN_SOURCE], [1], [FIXME]) 418 419 AC_MSG_CHECKING([c_line in struct termios]) 420 AC_CACHE_VAL([su_cv_sys_c_line_in_termios], 421 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if TERMIOS_NEEDS_XOPEN_SOURCE 422 #define _XOPEN_SOURCE 423 #endif 424 #include <sys/types.h> 425 #include <termios.h> 426 struct termios t; 427 int s = sizeof t.c_line;]])], 428 [su_cv_sys_c_line_in_termios=yes], 429 [su_cv_sys_c_line_in_termios=no])]) 430 AC_MSG_RESULT([$su_cv_sys_c_line_in_termios]) 431 test $su_cv_sys_c_line_in_termios = yes \ 432 && AC_DEFINE([HAVE_C_LINE], [1], [FIXME]) 433fi 434 435# FIXME: note that this macro appears above, too. 436# I'm leaving it here for now. This whole thing needs to be modernized... 437gl_WINSIZE_IN_PTEM 438 439gl_HEADER_TIOCGWINSZ_IN_TERMIOS_H 440 441if test $gl_cv_sys_tiocgwinsz_needs_termios_h = no && \ 442 test $gl_cv_sys_tiocgwinsz_needs_sys_ioctl_h = no; then 443 AC_MSG_CHECKING([TIOCGWINSZ in sys/pty.h]) 444 AC_CACHE_VAL([su_cv_sys_tiocgwinsz_in_sys_pty_h], 445 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> 446#ifdef WINSIZE_IN_PTEM 447# include <sys/stream.h> 448# include <sys/ptem.h> 449#endif 450#include <sys/ioctl.h> 451#include <sys/tty.h> 452#include <sys/pty.h>]], [[int x = TIOCGWINSZ;]])], 453 [su_cv_sys_tiocgwinsz_in_sys_pty_h=yes], 454 [su_cv_sys_tiocgwinsz_in_sys_pty_h=no])]) 455 AC_MSG_RESULT([$su_cv_sys_tiocgwinsz_in_sys_pty_h]) 456 457 test $su_cv_sys_tiocgwinsz_in_sys_pty_h = yes \ 458 && AC_DEFINE([GWINSZ_IN_SYS_PTY], [1], 459 [Define if your system defines TIOCGWINSZ in sys/pty.h.]) 460fi 461 462# For src/kill.c. 463AC_CHECK_DECLS([strsignal, sys_siglist, _sys_siglist, __sys_siglist], , , 464 [AC_INCLUDES_DEFAULT 465#include <signal.h>]) 466 467cu_GMP 468 469# Build df only if there's a point to it. 470if test $gl_cv_list_mounted_fs = yes && test $gl_cv_fs_space = yes; then 471 gl_ADD_PROG([optional_bin_progs], [df]) 472fi 473 474# Build stdbuf only if supported 475ac_save_CFLAGS=$CFLAGS 476ac_save_LDFLAGS=$LDFLAGS 477# Detect warnings about ignored "constructor" attributes. 478gl_WARN_ADD([-Werror], [CFLAGS]) 479gl_WARN_ADD([-errwarn], [CFLAGS]) 480# Put this message here, after gl_WARN_ADD's chatter. 481AC_MSG_CHECKING([whether this system supports stdbuf]) 482CFLAGS="-fPIC $CFLAGS" 483LDFLAGS="-shared $LDFLAGS" 484stdbuf_supported=no 485# Note we only LINK here rather than RUN to support cross compilation 486AC_LINK_IFELSE( 487 [AC_LANG_PROGRAM([[ 488 static int stdbuf = 0; 489 490 void __attribute__ ((constructor)) 491 stdbuf_init (void) 492 { 493 stdbuf = 1; 494 }]],[[ 495 if (stdbuf != 1) 496 return 1;]]) 497 ], 498 [stdbuf_supported=yes]) 499AC_MSG_RESULT([$stdbuf_supported]) 500if test "$stdbuf_supported" = "yes" && test -z "$EXEEXT"; then 501 gl_ADD_PROG([optional_bin_progs], [stdbuf]) 502fi 503CFLAGS=$ac_save_CFLAGS 504LDFLAGS=$ac_save_LDFLAGS 505 506# Detect when using xlc to determine whether to use -qinclude= 507AC_CACHE_CHECK([whether the system supports xlc include], [utils_cv_xlc], 508 [AC_COMPILE_IFELSE( 509 [AC_LANG_PROGRAM([[ 510 #ifndef __xlc__ 511 #error "not xlc" 512 #endif 513 ]])], 514 [utils_cv_xlc=yes], 515 [utils_cv_xlc=no])]) 516AM_CONDITIONAL([USE_XLC_INCLUDE], [test "$utils_cv_xlc" = yes]) 517 518############################################################################ 519 520dnl Autogenerated by the 'gen-lists-of-programs.sh' auxiliary script. 521dnl Issue proper calls to the macros gl_INCLUDE_EXCLUDE_PROG and 522dnl gl_ADD_PROG (updating $optional_bin_progs), and generate the list 523dnl of coreutils programs to be built only upon explicit user request, 524dnl saving that list in the $no_install_progs_default shell variable. 525m4_include([m4/cu-progs.m4]) 526 527# Now that we know which programs will actually be built, determine 528# which optional helper progs should be compiled. 529# Note it adding to pkglibexec_PROGRAMS, $(transform) in src/local.mk 530# may need to be updated accordingly. 531case " $optional_bin_progs " in 532 *' stdbuf '*) pkglibexec_PROGRAMS='src/libstdbuf.so';; 533 *) pkglibexec_PROGRAMS='';; 534esac 535 536man1_MANS=` 537 for p in $optional_bin_progs; do 538 # Change "ginstall.1" to "install.1". 539 test $p = ginstall && p=install 540 # Ignore the "[" program, since writing a portable make rule to 541 # generate its manpage is not practical. 542 dnl Use the autoconf-provided quadrigraph to represent "[", 543 dnl otherwise we will incur in dreadful quoting issues. 544 test x$p = x'@<:@' && continue 545 echo "man/$p.1" 546 done` 547 548# Not installed by "make install", but must be built when creating 549# a distribution tarball. 550EXTRA_MANS=`for p in $no_install_progs_default $gl_no_install_prog; do 551 echo man/$p.1 552 done` 553 554# Replace all the programs by the single binary and symlinks if specified. 555single_binary_progs= 556single_binary_libs= 557single_binary_deps= 558single_binary_install_type= 559if test "$gl_single_binary" != no; then 560 man1_MANS="$man1_MANS man/coreutils.1" 561 # Convert the list to a space separated list 562 gl_single_binary_exceptions=`echo $gl_single_binary_exceptions | tr ',' ' '` 563 564 single_binary_progs=`echo $optional_bin_progs` 565 optional_bin_progs="coreutils" 566 for prog in $gl_single_binary_exceptions; do 567 # Fail if requested to exclude a program than was not part of coreutils. 568 case " $single_binary_progs " in 569 *" $prog "*) 570 gl_REMOVE_PROG([single_binary_progs], [$prog]) ; 571 gl_ADD_PROG([optional_bin_progs], [$prog]) ;; 572 *) AC_MSG_ERROR(['$prog' is not being compiled.]) ;; 573 esac 574 done 575 576 # single_binary_libs holds the list of libs required by the selected 577 # programs, such as for example -lrt. 578 single_binary_libs=` 579 for p in $single_binary_progs; do 580 # Convert '[' to '_' 581 test x"$p" = x'@<:@' && p='_' 582 printf '$(src_libsinglebin_%s_a_ldadd) ' "$p" 583 done` 584 # single_binary_deps holds the list of libsinglebin_*.a files that have the 585 # compiled code of each selected program in a "library" format. 586 single_binary_deps=` 587 for p in $single_binary_progs; do 588 # Convert '[' to '_' 589 test x"$p" = x'@<:@' && p='_' 590 printf 'src/libsinglebin_%s.a ' "$p" 591 done` 592 single_binary_install_type="$gl_single_binary" 593fi 594AC_SUBST([single_binary_progs], [$single_binary_progs]) 595AC_SUBST([single_binary_libs], [$single_binary_libs]) 596AC_SUBST([single_binary_deps], [$single_binary_deps]) 597AC_SUBST([single_binary_install_type], [$single_binary_install_type]) 598 599 600# The programs built and installed by "make && make install". 601# Since this is AC_SUBST'd, Automake won't be able to perform rewrite 602# with $(EXEEXT) appending on it, so we have to do it ourselves -- in 603# this case, only for $(bin_PROGRAMS). 604bin_PROGRAMS=` 605 for p in $optional_bin_progs; do echo src/"$p"'$(EXEEXT)'; done` 606 607# Normalize whitespace. 608man1_MANS=`echo $man1_MANS` 609EXTRA_MANS=`echo $EXTRA_MANS` 610bin_PROGRAMS=`echo $bin_PROGRAMS` 611pkglibexec_PROGS=`echo $pkglibexec_PROGRAMS` 612 613AC_SUBST([bin_PROGRAMS]) AM_SUBST_NOTMAKE([bin_PROGRAMS]) 614AC_SUBST([pkglibexec_PROGRAMS]) AM_SUBST_NOTMAKE([pkglibexec_PROGRAMS]) 615AC_SUBST([man1_MANS]) AM_SUBST_NOTMAKE([man1_MANS]) 616AC_SUBST([EXTRA_MANS]) AM_SUBST_NOTMAKE([EXTRA_MANS]) 617 618AC_SUBST([built_programs], [$optional_bin_progs]) 619 620AM_CONDITIONAL([CROSS_COMPILING], [test "$cross_compiling" = yes]) 621 622############################################################################ 623 624# As long as "grep 'PRI[diouxX]' po/*.pot" reports matches in 625# translatable strings, we must use need-formatstring-macros here. 626AM_GNU_GETTEXT([external], [need-formatstring-macros]) 627AM_GNU_GETTEXT_VERSION([0.19.2]) 628 629# For a test of uniq: it uses the $LOCALE_FR envvar. 630gt_LOCALE_FR 631 632AC_CONFIG_FILES( 633 Makefile 634 po/Makefile.in 635 gnulib-tests/Makefile 636 ) 637AC_OUTPUT 638