2 # Process this file with autoconf to produce a configure script.
4 # Copyright (C) 1991-2022 Free Software Foundation, Inc.
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.
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.
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/>.
19 dnl Written by Jim Meyering.
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.
27 AC_INIT([GNU coreutils],
28 m4_esyscmd([build-aux/git-version-gen .tarball-version]),
29 [bug-coreutils@gnu.org],
31 [https://www.gnu.org/software/coreutils/])
33 AC_CONFIG_SRCDIR([src/ls.c])
35 AC_CONFIG_AUX_DIR([build-aux])
36 AC_CONFIG_HEADERS([lib/config.h:lib/config.hin])
38 AM_INIT_AUTOMAKE([1.11.2 dist-xz color-tests parallel-tests subdir-objects])
39 AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
41 dnl POSIXCHECK is worthwhile for maintainers, but adds several seconds
42 dnl (more than 10% execution time) to ./configure, with no benefit for
43 dnl most users. Using it to look for bugs requires:
44 dnl GNULIB_POSIXCHECK=1 autoreconf -f
48 dnl make CFLAGS=-DGNULIB_POSIXCHECK=1
49 dnl FIXME: Once we figure out how to avoid false positives, we should
50 dnl have 'make my-distcheck' in dist-check.mk exercise this.
51 m4_syscmd([test "${GNULIB_POSIXCHECK+set}" = set])
52 m4_if(m4_sysval, [0], [], [dnl
53 gl_ASSERT_NO_GNULIB_POSIXCHECK])
58 AC_PROG_GCC_TRADITIONAL
62 gl_SET_CRYPTO_CHECK_DEFAULT([auto-gpl-compat])
66 # The test suite needs to know if we have a working perl.
67 AM_CONDITIONAL([HAVE_PERL], [test "$gl_cv_prog_perl" != no])
69 # gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found])
70 # ------------------------------------------------
71 # If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND.
72 # Otherwise, run RUN-IF-NOT-FOUND.
73 AC_DEFUN([gl_GCC_VERSION_IFELSE],
77 #if ($1) < __GNUC__ || (($1) == __GNUC__ && ($2) <= __GNUC_MINOR__)
80 # error "your version of gcc is older than $1.$2"
87 AC_ARG_ENABLE([single-binary],
88 [AS_HELP_STRING([--enable-single-binary=[shebangs|symlinks]],
89 [Compile all the tools in a single binary, reducing the overall size.
90 When compiled this way, shebangs (default when enabled) or symlinks are
91 installed for each tool that points to the single binary.])],
92 [gl_single_binary=no ;
94 yes) gl_single_binary=shebangs ;;
95 no|shebangs|symlinks) gl_single_binary=$enableval ;;
96 *) AC_MSG_ERROR([bad value $enableval for single-binary option.
97 Options are: symlinks, shebangs, no.]) ;;
101 AC_ARG_ENABLE([single-binary-exceptions],
102 [AS_HELP_STRING([--enable-single-binary-exceptions=PROG_LIST],
103 [When used with --enable-single-binary, exclude the PROG_LIST from
104 it, so these programs are compiled as separated files
105 (comma-separated, default none))])],
106 [gl_single_binary_exceptions=$enableval],
107 [gl_single_binary_exceptions=]
109 if test "$gl_single_binary" = 'symlinks'; then
110 if ! test "`echo ls | sed \"$program_transform_name\"`" = 'ls'; then
111 AC_MSG_ERROR([program name transformations are not currently supported
112 with --enable-single-binary=symlinks.])
115 AM_CONDITIONAL([SINGLE_BINARY], [test "$gl_single_binary" != no])
117 AC_ARG_ENABLE([bold-man-page-references],
118 [AS_HELP_STRING([--disable-bold-man-page-references],
119 [When generating man pages, do not apply bold style around any
120 references like name(1) etc.])],
121 [gl_bold_manpages=yes ;
123 no|yes) gl_bold_manpages=$enableval ;;
124 *) AC_MSG_ERROR([bad value $enableval for bold-man-page-references.
125 Options are: yes, no.]) ;;
127 [gl_bold_manpages=yes]
129 AM_CONDITIONAL([BOLD_MAN_REFS], [test "$gl_bold_manpages" != no])
131 AC_ARG_ENABLE([gcc-warnings],
132 [AS_HELP_STRING([--enable-gcc-warnings@<:@=TYPE@:>@],
133 [control generation of GCC warnings. The TYPE 'no' disables
134 warnings (default for non-developer builds); 'yes' generates
135 cheap warnings if available (default for developer builds);
136 'expensive' in addition generates expensive-to-compute warnings
140 *) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;;
142 gl_gcc_warnings=$enableval],
144 # GCC provides fine-grained control over diagnostics which
145 # is used in gnulib for example to suppress warnings from
146 # certain sections of code. So if this is available and
147 # we're running from a git repo, then auto enable the warnings.
149 gl_GCC_VERSION_IFELSE([4], [6],
150 [test -d "$srcdir"/.git \
151 && ! test -f "$srcdir"/.tarball-version \
152 && gl_gcc_warnings=yes])]
155 if test $gl_gcc_warnings != no; then
156 gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
157 AC_SUBST([WERROR_CFLAGS])
160 AS_IF([test $gl_gcc_warnings != expensive],
161 [# -fanalyzer and related options slow GCC considerably.
162 ew="$ew -fanalyzer -Wno-analyzer-double-free -Wno-analyzer-malloc-leak"
163 ew="$ew -Wno-analyzer-null-dereference -Wno-analyzer-use-after-free"])
165 # This, $nw, is the list of warnings we disable.
167 nw="$nw -Wdeclaration-after-statement" # too useful to forbid
168 nw="$nw -Waggregate-return" # anachronistic
169 nw="$nw -Wlong-long" # C90 is anachronistic (lib/gethrxtime.h)
170 nw="$nw -Wc++-compat" # We don't care about C++ compilers
171 nw="$nw -Wundef" # Warns on '#if GNULIB_FOO' etc in gnulib
172 nw="$nw -Wtraditional" # Warns on #elif which we use often
173 nw="$nw -Wcast-qual" # Too many warnings for now
174 nw="$nw -Wconversion" # Too many warnings for now
175 nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings
176 nw="$nw -Wsign-conversion" # Too many warnings for now
177 nw="$nw -Wtraditional-conversion" # Too many warnings for now
178 nw="$nw -Wunreachable-code" # Too many warnings for now
179 nw="$nw -Wpadded" # Our structs are not padded
180 nw="$nw -Wredundant-decls" # openat.h declares e.g., mkdirat
181 nw="$nw -Wformat-nonliteral" # who.c and pinky.c strftime uses
182 nw="$nw -Wnested-externs" # use of XARGMATCH/verify_function__
183 nw="$nw -Wswitch-enum" # Too many warnings for now
184 nw="$nw -Wswitch-default" # Too many warnings for now
185 nw="$nw -Wstack-protector" # not worth working around
186 nw="$nw -Wformat-overflow=2" # False alarms due to GCC bug 80776
187 nw="$nw -Wformat-truncation=2" # False alarm in ls.c, probably related
188 # things I might fix soon:
189 nw="$nw -Wfloat-equal" # sort.c, seq.c
190 nw="$nw -Wmissing-format-attribute" # copy.c
191 nw="$nw -Wunsafe-loop-optimizations" # a few src/*.c
192 nw="$nw -Winline" # system.h's readdir_ignoring_dot_and_dotdot
193 nw="$nw -Wvector-operation-performance" # warns about randperm.c
195 # Suppress noreturn warnings with single binaries; otherwise
196 # GCC complains about the renamed 'main' not being declared noreturn
197 # because 'main_exit' calls 'exit' when linting.
198 if test "$gl_single_binary" != no; then
199 nw="$nw -Wsuggest-attribute=noreturn"
202 # Using -Wstrict-overflow is a pain, but the alternative is worse.
203 # For an example, see the code that provoked this report:
204 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=33498
205 # Code like that still infloops with gcc-4.6.0 and -O2. Scary indeed.
207 gl_MANYWARN_ALL_GCC([ws])
208 gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
212 gl_WARN_ADD([-Wno-sign-compare]) # Too many warnings for now
213 gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now
214 gl_WARN_ADD([-Wno-format-nonliteral])
216 # clang is unduly picky about some things.
217 AC_CACHE_CHECK([whether the compiler is clang], [utils_cv_clang],
224 [utils_cv_clang=yes],
225 [utils_cv_clang=no])])
226 if test $utils_cv_clang = yes; then
227 gl_WARN_ADD([-Wno-format-extra-args])
228 gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare])
231 gl_WARN_ADD([-fdiagnostics-show-option])
232 gl_WARN_ADD([-funit-at-a-time])
234 AC_SUBST([WARN_CFLAGS])
236 AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.])
237 AH_VERBATIM([FORTIFY_SOURCE],
238 [/* Enable compile-time and run-time bounds-checking, and some warnings,
239 without upsetting glibc 2.15+. */
240 #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
241 # define _FORTIFY_SOURCE 2
244 AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks])
246 # We use a slightly smaller set of warning options for lib/.
247 # Remove the following and save the result in GNULIB_WARN_CFLAGS.
249 nw="$nw -Wduplicated-branches" # Too many false alarms
250 nw="$nw -Wformat-truncation=2"
251 nw="$nw -Wstrict-overflow"
252 nw="$nw -Wuninitialized"
253 nw="$nw -Wunused-macros"
254 nw="$nw -Wmissing-prototypes"
255 nw="$nw -Wold-style-definition"
256 # FIXME: it may be easy to remove this, since it affects only one file:
257 # the snprintf call at ftoastr.c:132.
258 nw="$nw -Wdouble-promotion"
260 # FIXME: remove this line when gcc improves
261 # FP in careadlinkat.c w/gcc 10.0.1 20200205
262 gl_WARN_ADD([-Wno-return-local-addr])
264 gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
265 AC_SUBST([GNULIB_WARN_CFLAGS])
267 # For gnulib-tests, the set is slightly smaller still.
269 nw="$nw -Wstrict-prototypes"
270 # It's not worth being this picky about test programs.
271 nw="$nw -Wsuggest-attribute=const"
272 nw="$nw -Wsuggest-attribute=format"
273 nw="$nw -Wsuggest-attribute=pure"
274 gl_MANYWARN_COMPLEMENT([GNULIB_TEST_WARN_CFLAGS],
275 [$GNULIB_WARN_CFLAGS], [$nw])
276 AC_SUBST([GNULIB_TEST_WARN_CFLAGS])
282 AC_CHECK_FUNCS([chroot],
283 gl_ADD_PROG([optional_bin_progs], [chroot]))
284 AC_CHECK_FUNCS([gethostid],
285 gl_ADD_PROG([optional_bin_progs], [hostid]))
286 AC_CHECK_FUNCS([sigsuspend],
287 gl_ADD_PROG([optional_bin_progs], [timeout]))
291 AC_MSG_CHECKING([whether localtime caches TZ])
292 AC_CACHE_VAL([utils_cv_localtime_cache],
293 [if test x$ac_cv_func_tzset = xyes; then
294 AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h>
298 extern char **environ;
302 for (to = from = environ; (*to = *from); from++)
303 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
309 time_t now = time ((time_t *) 0);
310 int hour_GMT0, hour_unset;
311 if (putenv ("TZ=GMT0") != 0)
313 hour_GMT0 = localtime (&now)->tm_hour;
315 hour_unset = localtime (&now)->tm_hour;
316 if (putenv ("TZ=PST8") != 0)
318 if (localtime (&now)->tm_hour == hour_GMT0)
321 if (localtime (&now)->tm_hour != hour_unset)
325 [utils_cv_localtime_cache=no],
326 [utils_cv_localtime_cache=yes],
327 [# If we have tzset, assume the worst when cross-compiling.
328 utils_cv_localtime_cache=yes])
330 # If we lack tzset, report that localtime does not cache TZ,
331 # since we can't invalidate the cache if we don't have tzset.
332 utils_cv_localtime_cache=no
334 AC_MSG_RESULT([$utils_cv_localtime_cache])
335 if test $utils_cv_localtime_cache = yes; then
336 AC_DEFINE([LOCALTIME_CACHE], [1], [FIXME])
340 AC_CHECK_FUNCS([fclonefileat])
342 # Assume that if getattrat exists, it's compatible with Solaris 11.
343 AC_CHECK_FUNCS([getattrat])
344 if test $ac_cv_func_getattrat = yes; then
346 AC_SUBST([LIB_NVPAIR])
349 # glibc >= 2.28 and linux kernel >= 4.11
350 AC_CHECK_FUNCS([statx])
352 # SCO-ODT-3.0 is reported to need -los to link programs using initgroups
353 AC_CHECK_FUNCS([initgroups])
354 if test $ac_cv_func_initgroups = no; then
355 AC_CHECK_LIB([os], [initgroups])
358 AC_CHECK_FUNCS([syslog])
359 if test $ac_cv_func_syslog = no; then
360 # syslog is not in the default libraries. See if it's in some other.
361 for lib in bsd socket inet; do
362 AC_CHECK_LIB([$lib], [syslog], [AC_DEFINE([HAVE_SYSLOG], [1], [FIXME])
363 LIBS="$LIBS -l$lib"; break])
367 AC_CACHE_CHECK([for 3-argument setpriority function],
368 [utils_cv_func_setpriority],
371 [[#include <sys/time.h>
372 #include <sys/resource.h>
374 [[setpriority (0, 0, 0);]])],
375 [utils_cv_func_setpriority=yes],
376 [utils_cv_func_setpriority=no])])
377 if test $utils_cv_func_setpriority = no; then
378 AC_CHECK_FUNCS([nice])
380 case $utils_cv_func_setpriority,$ac_cv_func_nice in
382 gl_ADD_PROG([optional_bin_progs], [nice])
385 if test "$cross_compiling" = yes || test -c /dev/stdin <.; then
386 AC_DEFINE([DEV_FD_MIGHT_BE_CHR], [1],
387 [Define to 1 if /dev/std{in,out,err} and /dev/fd/N, if they exist, might be
388 character-special devices whose minor device number is the file
389 descriptor number, such as on Solaris. Leave undefined if they are
390 definitely the actual files. This determination should be done after any
391 symbolic links are followed.])
394 AC_DEFUN([coreutils_DUMMY_1],
396 AC_REQUIRE([gl_READUTMP])
397 if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then
398 gl_ADD_PROG([optional_bin_progs], [who])
399 gl_ADD_PROG([optional_bin_progs], [users])
400 gl_ADD_PROG([optional_bin_progs], [pinky])
405 AC_MSG_CHECKING([ut_host in struct utmp])
406 AC_CACHE_VAL([su_cv_func_ut_host_in_utmp],
407 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
410 int s = sizeof ut.ut_host;]])],
411 [su_cv_func_ut_host_in_utmp=yes],
412 [su_cv_func_ut_host_in_utmp=no])])
413 AC_MSG_RESULT([$su_cv_func_ut_host_in_utmp])
414 if test $su_cv_func_ut_host_in_utmp = yes; then
416 AC_DEFINE([HAVE_UT_HOST], [1], [FIXME])
419 if test -z "$have_ut_host"; then
420 AC_MSG_CHECKING([ut_host in struct utmpx])
421 AC_CACHE_VAL([su_cv_func_ut_host_in_utmpx],
422 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
425 int s = sizeof ut.ut_host;]])],
426 [su_cv_func_ut_host_in_utmpx=yes],
427 [su_cv_func_ut_host_in_utmpx=no])])
428 AC_MSG_RESULT([$su_cv_func_ut_host_in_utmpx])
429 if test $su_cv_func_ut_host_in_utmpx = yes; then
430 AC_DEFINE([HAVE_UTMPX_H], [1], [FIXME])
431 AC_DEFINE([HAVE_UT_HOST], [1], [FIXME])
435 GNULIB_BOOT_TIME([gl_ADD_PROG([optional_bin_progs], [uptime])])
437 AC_SYS_POSIX_TERMIOS()
438 gl_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
440 if test $ac_cv_sys_posix_termios = yes; then
441 gl_ADD_PROG([optional_bin_progs], [stty])
443 AC_MSG_CHECKING([whether termios.h needs _XOPEN_SOURCE])
444 AC_CACHE_VAL([su_cv_sys_termios_needs_xopen_source],
445 [AC_EGREP_CPP([yes], [#include <termios.h>
448 #endif], su_cv_sys_termios_needs_xopen_source=no,
449 AC_EGREP_CPP([yes], [#define _XOPEN_SOURCE
453 #endif], su_cv_sys_termios_needs_xopen_source=yes,
454 su_cv_sys_termios_needs_xopen_source=no))])
455 AC_MSG_RESULT([$su_cv_sys_termios_needs_xopen_source])
456 test $su_cv_sys_termios_needs_xopen_source = yes &&
457 AC_DEFINE([TERMIOS_NEEDS_XOPEN_SOURCE], [1], [FIXME])
459 AC_MSG_CHECKING([c_line in struct termios])
460 AC_CACHE_VAL([su_cv_sys_c_line_in_termios],
461 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if TERMIOS_NEEDS_XOPEN_SOURCE
462 #define _XOPEN_SOURCE
464 #include <sys/types.h>
467 int s = sizeof t.c_line;]])],
468 [su_cv_sys_c_line_in_termios=yes],
469 [su_cv_sys_c_line_in_termios=no])])
470 AC_MSG_RESULT([$su_cv_sys_c_line_in_termios])
471 test $su_cv_sys_c_line_in_termios = yes \
472 && AC_DEFINE([HAVE_C_LINE], [1], [FIXME])
475 # FIXME: note that this macro appears above, too.
476 # I'm leaving it here for now. This whole thing needs to be modernized...
479 gl_HEADER_TIOCGWINSZ_IN_TERMIOS_H
481 if test $gl_cv_sys_tiocgwinsz_needs_termios_h = no && \
482 test $gl_cv_sys_tiocgwinsz_needs_sys_ioctl_h = no; then
483 AC_MSG_CHECKING([TIOCGWINSZ in sys/pty.h])
484 AC_CACHE_VAL([su_cv_sys_tiocgwinsz_in_sys_pty_h],
485 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
486 #ifdef WINSIZE_IN_PTEM
487 # include <sys/stream.h>
488 # include <sys/ptem.h>
490 #include <sys/ioctl.h>
492 #include <sys/pty.h>]], [[int x = TIOCGWINSZ;]])],
493 [su_cv_sys_tiocgwinsz_in_sys_pty_h=yes],
494 [su_cv_sys_tiocgwinsz_in_sys_pty_h=no])])
495 AC_MSG_RESULT([$su_cv_sys_tiocgwinsz_in_sys_pty_h])
497 test $su_cv_sys_tiocgwinsz_in_sys_pty_h = yes \
498 && AC_DEFINE([GWINSZ_IN_SYS_PTY], [1],
499 [Define if your system defines TIOCGWINSZ in sys/pty.h.])
503 AC_CHECK_DECLS([strsignal, sys_siglist, _sys_siglist, __sys_siglist], , ,
505 #include <signal.h>])
507 # Build df only if there's a point to it.
508 if test $gl_cv_list_mounted_fs = yes && test $gl_cv_fs_space = yes; then
509 gl_ADD_PROG([optional_bin_progs], [df])
512 # Build stdbuf only if supported
513 ac_save_CFLAGS=$CFLAGS
514 ac_save_LDFLAGS=$LDFLAGS
515 cu_save_c_werror_flag=$ac_c_werror_flag
517 # Detect warnings about ignored "constructor" attributes.
518 gl_WARN_ADD([-Werror], [CFLAGS])
519 gl_WARN_ADD([-errwarn], [CFLAGS])
520 # Put this message here, after gl_WARN_ADD's chatter.
521 AC_MSG_CHECKING([whether this system supports stdbuf])
522 CFLAGS="-fPIC $CFLAGS"
523 LDFLAGS="-shared $LDFLAGS"
525 # Note we only LINK here rather than RUN to support cross compilation
528 static int stdbuf = 0;
530 void __attribute__ ((constructor))
538 [stdbuf_supported=yes])
539 AC_MSG_RESULT([$stdbuf_supported])
540 if test "$stdbuf_supported" = "yes" && test -z "$EXEEXT"; then
541 gl_ADD_PROG([optional_bin_progs], [stdbuf])
543 CFLAGS=$ac_save_CFLAGS
544 LDFLAGS=$ac_save_LDFLAGS
545 ac_c_werror_flag=$cu_save_c_werror_flag
547 AC_MSG_CHECKING([if __get_cpuid available])
555 unsigned int eax, ebx, ecx, edx;
556 __get_cpuid (1, &eax, &ebx, &ecx, &edx);
562 AC_DEFINE([HAVE_CPUID], [1], [__get_cpuid available])
568 ac_save_CFLAGS=$CFLAGS
569 CFLAGS="-mavx -mpclmul $CFLAGS"
570 AC_MSG_CHECKING([if pclmul intrinsic exists])
573 #include <x86intrin.h>
579 a = _mm_clmulepi64_si128 (a, b, 0x00);
585 AC_DEFINE([HAVE_PCLMUL_INTRINSIC], [1], [pclmul intrinsic exists])
586 pclmul_intrinsic_exists=yes
590 if test "x$cpuid_exists" = "xyes" &&
591 test "x$pclmul_intrinsic_exists" = "xyes"; then
592 AC_DEFINE([USE_PCLMUL_CRC32], [1],
593 [CRC32 calculation by pclmul hardware instruction enabled])
595 AM_CONDITIONAL([USE_PCLMUL_CRC32],
596 [test "x$cpuid_exists" = "xyes" &&
597 test "x$pclmul_intrinsic_exists" = "xyes"])
598 CFLAGS=$ac_save_CFLAGS
600 AC_MSG_CHECKING([if __get_cpuid_count exists])
608 unsigned int eax = 0, ebx = 0, ecx = 0, edx = 0;
609 __get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx);
615 get_cpuid_count_exists=yes
620 CFLAGS="-mavx2 $CFLAGS"
621 AC_MSG_CHECKING([if avx2 intrinstics exists])
624 #include <x86intrin.h>
630 a = _mm256_sad_epu8 (a, b);
636 AC_DEFINE([HAVE_AVX2_INTRINSIC], [1], [avx2 intrinsics exists])
637 avx2_intrinsic_exists=yes
641 if test "x$get_cpuid_count_exists" = "xyes" &&
642 test "x$avx2_intrinsic_exists" = "xyes"; then
643 AC_DEFINE([USE_AVX2_WC_LINECOUNT], [1], [Counting lines with AVX2 enabled])
645 AM_CONDITIONAL([USE_AVX2_WC_LINECOUNT],
646 [test "x$get_cpuid_count_exists" = "xyes" &&
647 test "x$avx2_intrinsic_exists" = "xyes"])
649 CFLAGS=$ac_save_CFLAGS
651 ############################################################################
653 dnl Autogenerated by the 'gen-lists-of-programs.sh' auxiliary script.
654 dnl Issue proper calls to the macros gl_INCLUDE_EXCLUDE_PROG and
655 dnl gl_ADD_PROG (updating $optional_bin_progs), and generate the list
656 dnl of coreutils programs to be built only upon explicit user request,
657 dnl saving that list in the $no_install_progs_default shell variable.
658 m4_include([m4/cu-progs.m4])
660 # Now that we know which programs will actually be built, determine
661 # which optional helper progs should be compiled.
662 # Note it adding to pkglibexec_PROGRAMS, $(transform) in src/local.mk
663 # may need to be updated accordingly.
664 case " $optional_bin_progs " in
665 *' stdbuf '*) pkglibexec_PROGRAMS='src/libstdbuf.so';;
666 *) pkglibexec_PROGRAMS='';;
670 for p in $optional_bin_progs; do
671 # Change "ginstall.1" to "install.1".
672 test $p = ginstall && p=install
673 # Ignore the "[" program, since writing a portable make rule to
674 # generate its manpage is not practical.
675 dnl Use the autoconf-provided quadrigraph to represent "[",
676 dnl otherwise we will incur in dreadful quoting issues.
677 test x$p = x'@<:@' && continue
681 # Not installed by "make install", but must be built when creating
682 # a distribution tarball.
683 EXTRA_MANS=`for p in $no_install_progs_default $gl_no_install_prog; do
687 # Replace all the programs by the single binary and symlinks if specified.
691 single_binary_install_type=
692 if test "$gl_single_binary" != no; then
693 man1_MANS="$man1_MANS man/coreutils.1"
694 # Convert the list to a space separated list
695 gl_single_binary_exceptions=`echo $gl_single_binary_exceptions | tr ',' ' '`
697 single_binary_progs=`echo $optional_bin_progs`
698 optional_bin_progs="coreutils"
699 for prog in $gl_single_binary_exceptions; do
700 # Fail if requested to exclude a program than was not part of coreutils.
701 case " $single_binary_progs " in
703 gl_REMOVE_PROG([single_binary_progs], [$prog]) ;
704 gl_ADD_PROG([optional_bin_progs], [$prog]) ;;
705 *) AC_MSG_ERROR(['$prog' is not being compiled.]) ;;
709 # single_binary_libs holds the list of libs required by the selected
710 # programs, such as for example -lrt.
712 for p in $single_binary_progs; do
714 test x"$p" = x'@<:@' && p='_'
715 printf '$(src_libsinglebin_%s_a_ldadd) ' "$p"
717 # single_binary_deps holds the list of libsinglebin_*.a files that have the
718 # compiled code of each selected program in a "library" format.
720 for p in $single_binary_progs; do
722 test x"$p" = x'@<:@' && p='_'
723 printf 'src/libsinglebin_%s.a ' "$p"
725 single_binary_install_type="$gl_single_binary"
727 AC_SUBST([single_binary_progs], [$single_binary_progs])
728 AC_SUBST([single_binary_libs], [$single_binary_libs])
729 AC_SUBST([single_binary_deps], [$single_binary_deps])
730 AC_SUBST([single_binary_install_type], [$single_binary_install_type])
733 # The programs built and installed by "make && make install".
734 # Since this is AC_SUBST'd, Automake won't be able to perform rewrite
735 # with $(EXEEXT) appending on it, so we have to do it ourselves -- in
736 # this case, only for $(bin_PROGRAMS).
738 for p in $optional_bin_progs; do echo src/"$p"'$(EXEEXT)'; done`
740 # Normalize whitespace.
741 man1_MANS=`echo $man1_MANS`
742 EXTRA_MANS=`echo $EXTRA_MANS`
743 bin_PROGRAMS=`echo $bin_PROGRAMS`
744 pkglibexec_PROGS=`echo $pkglibexec_PROGRAMS`
746 AC_SUBST([bin_PROGRAMS]) AM_SUBST_NOTMAKE([bin_PROGRAMS])
747 AC_SUBST([pkglibexec_PROGRAMS]) AM_SUBST_NOTMAKE([pkglibexec_PROGRAMS])
748 AC_SUBST([man1_MANS]) AM_SUBST_NOTMAKE([man1_MANS])
749 AC_SUBST([EXTRA_MANS]) AM_SUBST_NOTMAKE([EXTRA_MANS])
751 AC_SUBST([built_programs], [$optional_bin_progs])
753 AM_CONDITIONAL([CROSS_COMPILING], [test "$cross_compiling" = yes])
755 ############################################################################
757 # As long as "grep 'PRI[diouxX]' po/*.pot" reports matches in
758 # translatable strings, we must use need-formatstring-macros here.
759 AM_GNU_GETTEXT([external], [need-formatstring-macros])
760 AM_GNU_GETTEXT_VERSION([0.19.2])
762 # For a test of uniq: it uses the $LOCALE_FR envvar.
768 gnulib-tests/Makefile