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