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