dd: synchronize output after write errors
[coreutils.git] / bootstrap.conf
blob5ca56f91772f4ec1812f8ece41eed18c3f2b9f7e
1 # Bootstrap configuration.
3 # Copyright (C) 2006-2022 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   alignof
31   alloca
32   announce-gen
33   areadlink-with-size
34   areadlinkat-with-size
35   argmatch
36   argv-iter
37   assert
38   attribute
39   autobuild
40   backupfile
41   backup-rename
42   base32
43   base64
44   btowc
45   buffer-lcm
46   byteswap
47   c-strcase
48   cl-strtod
49   cl-strtold
50   calloc-gnu
51   canon-host
52   canonicalize
53   chmodat
54   chown
55   chownat
56   cloexec
57   closein
58   closeout
59   config-h
60   configmake
61   copy-file-range
62   crypto/md5
63   crypto/sha1
64   crypto/sha256
65   crypto/sha512
66   crypto/sm3
67   cycle-check
68   d-ino
69   d-type
70   di-set
71   dirfd
72   dirname
73   do-release-commit-and-tag
74   dtoastr
75   dup2
76   environ
77   error
78   euidaccess
79   exclude
80   exitfail
81   explicit_bzero
82   faccessat
83   fadvise
84   fchdir
85   fchmodat
86   fchownat
87   fclose
88   fcntl
89   fcntl-safer
90   fd-reopen
91   fdatasync
92   fdopen
93   fdutimensat
94   file-has-acl
95   file-type
96   fileblocks
97   filemode
98   filenamecat
99   filevercmp
100   flexmember
101   fnmatch-gnu
102   fopen-safer
103   fprintftime
104   freopen
105   freopen-safer
106   fseeko
107   fstatat
108   fsusage
109   fsync
110   ftoastr
111   ftruncate
112   fts
113   full-read
114   full-write
115   getgroups
116   gethrxtime
117   getline
118   getloadavg
119   getlogin
120   getndelim2
121   getopt-gnu
122   getpagesize
123   getpass-gnu
124   gettext-h
125   gettime
126   gettime-res
127   getugroups
128   getusershell
129   git-version-gen
130   gitlog-to-changelog
131   gnu-make
132   gnu-web-doc-update
133   gnumakefile
134   gnupload
135   group-member
136   hard-locale
137   hash
138   hash-triple
139   heap
140   host-os
141   human
142   idcache
143   idx
144   ignore-value
145   inttostr
146   inttypes
147   isapipe
148   isatty
149   isblank
150   largefile
151   lchmod
152   lchown
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   mbrtowc
167   mbsalign
168   mbschr
169   mbslen
170   mbswidth
171   memcasecmp
172   memchr
173   memcmp2
174   mempcpy
175   memrchr
176   minmax
177   mgetgroups
178   mkancesdirs
179   mkdir
180   mkdir-p
181   mkdirat
182   mkfifo
183   mkfifoat
184   mknod
185   mkostemp
186   mkstemp
187   mktime
188   modechange
189   mountlist
190   mpsort
191   netinet_in
192   nproc
193   nstrftime
194   obstack
195   open
196   openat-safer
197   parse-datetime
198   parse-datetime2
199   pathmax
200   perl
201   physmem
202   pipe-posix
203   pipe2
204   posix-shell
205   posixtm
206   posixver
207   priv-set
208   progname
209   propername
210   pthread-cond
211   pthread-mutex
212   pthread-thread
213   pthread_sigmask
214   putenv
215   quote
216   quotearg
217   randint
218   randperm
219   rawmemchr
220   read-file
221   readlink
222   readtokens
223   readtokens0
224   readutmp
225   realloc-gnu
226   regex
227   remove
228   rename
229   renameat
230   renameatu
231   rmdir
232   root-dev-ino
233   rpmatch
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   smack
246   ssize_t
247   stat-macros
248   stat-size
249   stat-time
250   statat
251   stdbool
252   stdlib-safer
253   stpcpy
254   stpncpy
255   strdup-posix
256   strncat
257   strnumcmp
258   strsignal
259   strtoimax
260   strtoumax
261   symlinkat
262   sys_ioctl
263   sys_resource
264   sys_stat
265   sys_wait
266   tempname
267   termios
268   time_rz
269   timer-time
270   timespec
271   tzset
272   uname
273   unicodeio
274   unistd-safer
275   unlink-busy
276   unlinkat
277   unlinkdir
278   unlocked-io
279   unsetenv
280   update-copyright
281   uptime
282   useless-if-before-free
283   userspec
284   utimecmp
285   utimens
286   utimensat
287   vasprintf-posix
288   vc-list-files
289   verify
290   verror
291   version-etc-fsf
292   wchar-single
293   wcswidth
294   wcwidth
295   winsz-ioctl
296   winsz-termios
297   write-any-file
298   xalignalloc
299   xalloc
300   xbinary-io
301   xdectoint
302   xfts
303   xgetcwd
304   xgetgroups
305   xgethostname
306   xmemcoll
307   xnanosleep
308   xprintf
309   xprintf-posix
310   xreadlink
311   xstrtod
312   xstrtoimax
313   xstrtol
314   xstrtol-error
315   xstrtold
316   xstrtoumax
317   year2038
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_utf8: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 makeinfo   6.1
364 patch      -
365 perl       5.5
366 rsync      -
367 tar        -
368 xz         -
371 bootstrap_post_import_hook ()
373   # Automake requires that ChangeLog exist.
374   touch ChangeLog || return 1
375   # List of coreutils programs.  See heading comments in the invoked
376   # script for more info.  Keep this in sync with the rules in
377   (m4f=m4/cu-progs.m4 mkf=src/cu-progs.mk tmp=cu-progs.tmp \
378     && rm -f $m4f $mkf $tmp-1 $tmp-2 \
379     && build-aux/gen-lists-of-programs.sh --autoconf >$tmp-1 \
380     && build-aux/gen-lists-of-programs.sh --automake >$tmp-2 \
381     && chmod a-w $tmp-1 $tmp-2 \
382     && mv -f $tmp-1 $m4f && mv -f $tmp-2 $mkf)
384   # Regenerate src/single-binary.mk
385   (mkf=src/single-binary.mk tmp=single-binary.tmp \
386     && rm -f $mkf $tmp \
387     && build-aux/gen-single-binary.sh src/local.mk >$tmp \
388     && chmod a-w $tmp \
389     && mv -f $tmp $mkf)
393 bootstrap_epilogue()
395   # Since this is a "GNU" package, replace this line
396   #   if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null \
397   #      | grep -v 'libtool:' >/dev/null; then
398   # with this:
399   #   if true; then
400   # Why?  That pipeline searches all files in $(top_srcdir), and if you
401   # happen to have large files (or apparently large sparse files), the
402   # first grep may well run out of memory.
403   perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
404     po/Makefile.in.in
406   # Add dummy 'install-html' target, required for packages using
407   # non-recursive makefiles with older gettext.
408   # See https://debbugs.gnu.org/25690
409   if ! grep -w 'install-html' po/Makefile.in.in ; then
410     printf 'install-%s:;\n' dvi ps pdf html >> po/Makefile.in.in
411   fi
413   # Install our git hooks, as long as "cp" accepts the --backup option,
414   # so that we can back up any existing files.
415   case $(cp --help) in *--backup*) backup=1;; *) backup=0;; esac
416   if test $backup = 1; then
417     hooks=$(cd scripts/git-hooks && git ls-files)
418     for f in $hooks; do
419       # If it is identical, skip it.
420       cmp scripts/git-hooks/$f .git/hooks/$f > /dev/null \
421         && continue
422       cp --backup=numbered scripts/git-hooks/$f .git/hooks
423       chmod a-w .git/hooks/$f
424     done
425   fi