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