split: port ‘split -n N /dev/null’ better to macOS
[coreutils.git] / bootstrap.conf
blob01430429b41b432182f23d88027f29b48dac4451
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   freopen
107   freopen-safer
108   fseeko
109   fstatat
110   fsusage
111   fsync
112   ftoastr
113   ftruncate
114   fts
115   full-read
116   full-write
117   getgroups
118   gethrxtime
119   getline
120   getloadavg
121   getlogin
122   getndelim2
123   getopt-gnu
124   getpagesize
125   getpass-gnu
126   gettext-h
127   gettime
128   gettime-res
129   getugroups
130   getusershell
131   git-version-gen
132   gitlog-to-changelog
133   gnu-make
134   gnu-web-doc-update
135   gnumakefile
136   gnupload
137   group-member
138   hard-locale
139   hash
140   hash-triple
141   heap
142   host-os
143   human
144   idcache
145   idx
146   ignore-value
147   inttostr
148   inttypes
149   isapipe
150   isatty
151   isblank
152   largefile
153   lchmod
154   lchown
155   ldtoastr
156   lib-ignore
157   libgmp
158   linebuffer
159   link
160   link-follow
161   linkat
162   long-options
163   lstat
164   maintainer-makefile
165   malloc-gnu
166   manywarnings
167   mbrlen
168   mbrtowc
169   mbsalign
170   mbschr
171   mbslen
172   mbswidth
173   memcasecmp
174   memchr
175   memcmp2
176   mempcpy
177   memrchr
178   minmax
179   mgetgroups
180   mkancesdirs
181   mkdir
182   mkdir-p
183   mkdirat
184   mkfifo
185   mkfifoat
186   mknod
187   mkostemp
188   mkstemp
189   mktime
190   modechange
191   mountlist
192   mpsort
193   netinet_in
194   nproc
195   nstrftime
196   obstack
197   open
198   openat-safer
199   parse-datetime
200   parse-datetime2
201   pathmax
202   perl
203   physmem
204   pipe-posix
205   pipe2
206   posix-shell
207   posixtm
208   posixver
209   priv-set
210   progname
211   propername
212   pthread-cond
213   pthread-mutex
214   pthread-thread
215   pthread_sigmask
216   putenv
217   quote
218   quotearg
219   randint
220   randperm
221   rawmemchr
222   read-file
223   readlink
224   readtokens
225   readtokens0
226   readutmp
227   realloc-gnu
228   regex
229   remove
230   rename
231   renameat
232   renameatu
233   rmdir
234   root-dev-ino
235   rpmatch
236   safe-read
237   same
238   save-cwd
239   savedir
240   savewd
241   select
242   selinux-at
243   setenv
244   settime
245   sig2str
246   sigaction
247   smack
248   ssize_t
249   stat-macros
250   stat-size
251   stat-time
252   stdbool
253   stdlib-safer
254   stpcpy
255   stpncpy
256   strdup-posix
257   strncat
258   strnumcmp
259   strsignal
260   strtoimax
261   strtoumax
262   symlinkat
263   sys_ioctl
264   sys_resource
265   sys_stat
266   sys_wait
267   targetdir
268   tempname
269   termios
270   time_rz
271   timer-time
272   timespec
273   tzset
274   uname
275   unicodeio
276   unistd-safer
277   unlink-busy
278   unlinkat
279   unlinkdir
280   unlocked-io
281   unsetenv
282   update-copyright
283   uptime
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   wchar-single
295   wcswidth
296   wcwidth
297   winsz-ioctl
298   winsz-termios
299   write-any-file
300   xalignalloc
301   xalloc
302   xbinary-io
303   xdectoint
304   xfts
305   xgetcwd
306   xgetgroups
307   xgethostname
308   xmemcoll
309   xnanosleep
310   xprintf
311   xprintf-posix
312   xreadlink
313   xstrtod
314   xstrtoimax
315   xstrtol
316   xstrtol-error
317   xstrtold
318   xstrtoumax
319   year2038
320   yesno
323 # Other locale categories that need message catalogs.
324 EXTRA_LOCALE_CATEGORIES=LC_TIME
326 # Additional xgettext options to use.  Use "\\\newline" to break lines.
327 XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
328  --flag=asnprintf:3:c-format\\\
329  --flag=asprintf:2:c-format\\\
330  --flag=error:3:c-format\\\
331  --flag=error_at_line:5:c-format\\\
332  --flag=vasnprintf:3:c-format\\\
333  --flag=vasprintf:2:c-format\\\
334  --flag=verror:3:c-format\\\
335  --flag=verror_at_line:5:c-format\\\
336  --flag=wrapf:1:c-format\\\
337  --flag=xasprintf:1:c-format\\\
338  --flag=xfprintf:2:c-format\\\
339  --flag=xprintf:1:c-format\\\
340  --from-code=UTF-8\\\
343 # Append these, since we use the propername module.
344 see_manual='"This is a proper name. See the gettext manual, section Names."'
345 see_manual=\'"$see_manual"\'
346 XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
347  --keyword=proper_name:1,'"$see_manual"'\\\
348  --keyword=proper_name_utf8:1,'"$see_manual"'\\\
351 gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests --symlink\
352  --makefile-name=gnulib.mk --automake-subdir
355 # Build prerequisites
356 buildreq="\
357 autoconf   2.64
358 automake   1.11.2
359 autopoint  0.19.2
360 bison      -
361 gettext    0.19.2
362 git        1.4.4
363 gperf      -
364 gzip       -
365 makeinfo   6.1
366 patch      -
367 perl       5.5
368 rsync      -
369 tar        -
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)
395 bootstrap_epilogue()
397   # Since this is a "GNU" package, replace this line
398   #   if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null \
399   #      | grep -v 'libtool:' >/dev/null; then
400   # with this:
401   #   if true; then
402   # Why?  That pipeline searches all files in $(top_srcdir), and if you
403   # happen to have large files (or apparently large sparse files), the
404   # first grep may well run out of memory.
405   perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
406     po/Makefile.in.in
408   # Add dummy 'install-html' target, required for packages using
409   # non-recursive makefiles with older gettext.
410   # See https://debbugs.gnu.org/25690
411   if ! grep -w 'install-html' po/Makefile.in.in ; then
412     printf 'install-%s:;\n' dvi ps pdf html >> po/Makefile.in.in
413   fi
415   # Install our git hooks, as long as "cp" accepts the --backup option,
416   # so that we can back up any existing files.
417   case $(cp --help) in *--backup*) backup=1;; *) backup=0;; esac
418   if test $backup = 1; then
419     hooks=$(cd scripts/git-hooks && git ls-files)
420     for f in $hooks; do
421       # If it is identical, skip it.
422       cmp scripts/git-hooks/$f .git/hooks/$f > /dev/null \
423         && continue
424       cp --backup=numbered scripts/git-hooks/$f .git/hooks
425       chmod a-w .git/hooks/$f
426     done
427   fi