split: advise the kernel of sequential access pattern
[coreutils.git] / bootstrap.conf
blob7ab5f58955e2f473a239a1bf95256c36d26f7463
1 # Bootstrap configuration.
3 # Copyright (C) 2006-2023 Free Software Foundation, Inc.
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
19 # We don't need these modules.
20 avoided_gnulib_modules='
21   --avoid=canonicalize-lgpl
22   --avoid=dummy
25 # gnulib modules used by this package.
26 gnulib_modules="
27   $avoided_gnulib_modules
28   acl
29   alignalloc
30   alignasof
31   alloca
32   announce-gen
33   areadlink-with-size
34   areadlinkat-with-size
35   argmatch
36   argv-iter
37   assert
38   assert-h
39   attribute
40   autobuild
41   backupfile
42   backup-rename
43   base32
44   base64
45   btowc
46   buffer-lcm
47   byteswap
48   c-strcase
49   cl-strtod
50   cl-strtold
51   calloc-gnu
52   canon-host
53   canonicalize
54   chmodat
55   chown
56   chownat
57   cloexec
58   closein
59   closeout
60   config-h
61   configmake
62   copy-file-range
63   count-leading-zeros
64   crypto/md5
65   crypto/sha1
66   crypto/sha256
67   crypto/sha512
68   crypto/sm3
69   cycle-check
70   d-ino
71   d-type
72   di-set
73   dirfd
74   dirname
75   do-release-commit-and-tag
76   dtoastr
77   dup2
78   environ
79   error
80   euidaccess
81   exclude
82   exitfail
83   explicit_bzero
84   faccessat
85   fadvise
86   fchdir
87   fchmodat
88   fchownat
89   fclose
90   fcntl
91   fcntl-safer
92   fd-reopen
93   fdatasync
94   fdopen
95   fdutimensat
96   file-has-acl
97   file-type
98   fileblocks
99   filemode
100   filenamecat
101   filevercmp
102   flexmember
103   fnmatch-gnu
104   fopen-safer
105   fprintftime
106   free-posix
107   freopen
108   freopen-safer
109   fseeko
110   fstatat
111   fsusage
112   fsync
113   ftoastr
114   ftruncate
115   fts
116   full-read
117   full-write
118   getgroups
119   gethrxtime
120   getline
121   getloadavg
122   getlogin
123   getndelim2
124   getopt-gnu
125   getpagesize
126   getpass-gnu
127   gettext-h
128   gettime
129   gettime-res
130   getugroups
131   getusershell
132   git-version-gen
133   gitlog-to-changelog
134   gnu-make
135   gnu-web-doc-update
136   gnumakefile
137   gnupload
138   group-member
139   hard-locale
140   hash
141   hash-triple
142   heap
143   host-os
144   human
145   idcache
146   idx
147   ignore-value
148   inttostr
149   inttypes
150   isapipe
151   isatty
152   isblank
153   largefile
154   lchmod
155   lchown
156   ldtoastr
157   lib-ignore
158   libgmp
159   linebuffer
160   link
161   link-follow
162   linkat
163   long-options
164   lstat
165   maintainer-makefile
166   malloc-gnu
167   manywarnings
168   mbrlen
169   mbrtowc
170   mbsalign
171   mbschr
172   mbslen
173   mbswidth
174   memcasecmp
175   memchr
176   memcmp2
177   mempcpy
178   memrchr
179   minmax
180   mgetgroups
181   mkancesdirs
182   mkdir
183   mkdir-p
184   mkdirat
185   mkfifo
186   mkfifoat
187   mknod
188   mkostemp
189   mkstemp
190   mktime
191   modechange
192   mountlist
193   mpsort
194   netinet_in
195   nproc
196   nstrftime
197   obstack
198   open
199   openat-safer
200   parse-datetime
201   parse-datetime2
202   pathmax
203   perl
204   physmem
205   pipe-posix
206   pipe2
207   posix-shell
208   posixtm
209   posixver
210   priv-set
211   progname
212   propername
213   pthread-cond
214   pthread-mutex
215   pthread-thread
216   pthread_sigmask
217   putenv
218   quote
219   quotearg
220   randint
221   randperm
222   rawmemchr
223   read-file
224   readlink
225   readtokens
226   readtokens0
227   readutmp
228   realloc-gnu
229   regex
230   remove
231   rename
232   renameat
233   renameatu
234   rmdir
235   root-dev-ino
236   rpmatch
237   safe-read
238   same
239   save-cwd
240   savedir
241   savewd
242   select
243   selinux-at
244   setenv
245   settime
246   sig2str
247   sigaction
248   smack
249   ssize_t
250   stat-macros
251   stat-size
252   stat-time
253   stdbool
254   stdlib-safer
255   stpcpy
256   stpncpy
257   strdup-posix
258   strncat
259   strnumcmp
260   strsignal
261   strtoimax
262   strtoumax
263   symlinkat
264   sys_ioctl
265   sys_resource
266   sys_stat
267   sys_wait
268   targetdir
269   tempname
270   termios
271   time_rz
272   timer-time
273   timespec
274   tmpfile
275   tzset
276   uname
277   unicodeio
278   unistd-safer
279   unlink-busy
280   unlinkat
281   unlinkdir
282   unlocked-io
283   unsetenv
284   update-copyright
285   uptime
286   useless-if-before-free
287   userspec
288   utimecmp
289   utimens
290   utimensat
291   vasprintf-posix
292   vc-list-files
293   verify
294   verror
295   version-etc-fsf
296   wchar-single
297   wcswidth
298   wcwidth
299   winsz-ioctl
300   winsz-termios
301   write-any-file
302   xalignalloc
303   xalloc
304   xbinary-io
305   xdectoint
306   xfts
307   xgetcwd
308   xgetgroups
309   xgethostname
310   xmemcoll
311   xnanosleep
312   xprintf
313   xprintf-posix
314   xreadlink
315   xstrtod
316   xstrtoimax
317   xstrtol
318   xstrtol-error
319   xstrtold
320   xstrtoumax
321   year2038-recommended
322   yesno
325 # Other locale categories that need message catalogs.
326 EXTRA_LOCALE_CATEGORIES=LC_TIME
328 # Additional xgettext options to use.  Use "\\\newline" to break lines.
329 XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
330  --flag=asnprintf:3:c-format\\\
331  --flag=asprintf:2:c-format\\\
332  --flag=error:3:c-format\\\
333  --flag=error_at_line:5:c-format\\\
334  --flag=vasnprintf:3:c-format\\\
335  --flag=vasprintf:2:c-format\\\
336  --flag=verror:3:c-format\\\
337  --flag=verror_at_line:5:c-format\\\
338  --flag=wrapf:1:c-format\\\
339  --flag=xasprintf:1:c-format\\\
340  --flag=xfprintf:2:c-format\\\
341  --flag=xprintf:1:c-format\\\
342  --from-code=UTF-8\\\
345 # Append these, since we use the propername module.
346 see_manual='"This is a proper name. See the gettext manual, section Names."'
347 see_manual=\'"$see_manual"\'
348 XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
349  --keyword=proper_name:1,'"$see_manual"'\\\
350  --keyword=proper_name_utf8:1,'"$see_manual"'\\\
353 gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests --symlink\
354  --makefile-name=gnulib.mk --automake-subdir
357 # Build prerequisites
358 buildreq="\
359 autoconf   2.64
360 automake   1.11.2
361 autopoint  0.19.2
362 bison      -
363 gettext    0.19.2
364 git        1.4.4
365 gperf      -
366 gzip       -
367 makeinfo   6.1
368 patch      -
369 perl       5.5
370 rsync      -
371 tar        -
372 xz         -
375 bootstrap_post_import_hook ()
377   # Automake requires that ChangeLog exist.
378   touch ChangeLog || return 1
379   # List of coreutils programs.  See heading comments in the invoked
380   # script for more info.  Keep this in sync with the rules in
381   (m4f=m4/cu-progs.m4 mkf=src/cu-progs.mk tmp=cu-progs.tmp \
382     && rm -f $m4f $mkf $tmp-1 $tmp-2 \
383     && build-aux/gen-lists-of-programs.sh --autoconf >$tmp-1 \
384     && build-aux/gen-lists-of-programs.sh --automake >$tmp-2 \
385     && chmod a-w $tmp-1 $tmp-2 \
386     && mv -f $tmp-1 $m4f && mv -f $tmp-2 $mkf)
388   # Regenerate src/single-binary.mk
389   (mkf=src/single-binary.mk tmp=single-binary.tmp \
390     && rm -f $mkf $tmp \
391     && build-aux/gen-single-binary.sh src/local.mk >$tmp \
392     && chmod a-w $tmp \
393     && mv -f $tmp $mkf)
397 bootstrap_epilogue()
399   # Since this is a "GNU" package, replace this line
400   #   if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null \
401   #      | grep -v 'libtool:' >/dev/null; then
402   # with this:
403   #   if true; then
404   # Why?  That pipeline searches all files in $(top_srcdir), and if you
405   # happen to have large files (or apparently large sparse files), the
406   # first grep may well run out of memory.
407   perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
408     po/Makefile.in.in
410   # Add dummy 'install-html' target, required for packages using
411   # non-recursive makefiles with older gettext.
412   # See https://debbugs.gnu.org/25690
413   if ! grep -w 'install-html' po/Makefile.in.in ; then
414     printf 'install-%s:;\n' dvi ps pdf html >> po/Makefile.in.in
415   fi
417   # Install our git hooks, as long as "cp" accepts the --backup option,
418   # so that we can back up any existing files.
419   case $(cp --help) in *--backup*) backup=1;; *) backup=0;; esac
420   if test $backup = 1; then
421     hooks=$(cd scripts/git-hooks && git ls-files)
422     for f in $hooks; do
423       # If it is identical, skip it.
424       cmp scripts/git-hooks/$f .git/hooks/$f > /dev/null \
425         && continue
426       cp --backup=numbered scripts/git-hooks/$f .git/hooks
427       chmod a-w .git/hooks/$f
428     done
429   fi