maint: prefer https: to git:
[coreutils.git] / bootstrap.conf
blobf04c906242fa60899d87db2444a205e1e5d17bce
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   alloca
31   announce-gen
32   areadlink-with-size
33   areadlinkat-with-size
34   argmatch
35   argv-iter
36   assert
37   assert-h
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   count-leading-zeros
63   crypto/md5
64   crypto/sha1
65   crypto/sha256
66   crypto/sha512
67   crypto/sm3
68   cycle-check
69   d-ino
70   d-type
71   di-set
72   dirfd
73   dirname
74   do-release-commit-and-tag
75   dtoastr
76   dup2
77   environ
78   error
79   euidaccess
80   exclude
81   exitfail
82   explicit_bzero
83   faccessat
84   fadvise
85   fchdir
86   fchmodat
87   fchownat
88   fclose
89   fcntl
90   fcntl-safer
91   fd-reopen
92   fdatasync
93   fdopen
94   fdutimensat
95   file-has-acl
96   file-type
97   fileblocks
98   filemode
99   filenamecat
100   filevercmp
101   flexmember
102   fnmatch-gnu
103   fopen-safer
104   fprintftime
105   freopen
106   freopen-safer
107   fseeko
108   fstatat
109   fsusage
110   fsync
111   ftoastr
112   ftruncate
113   fts
114   full-read
115   full-write
116   getgroups
117   gethrxtime
118   getline
119   getloadavg
120   getlogin
121   getndelim2
122   getopt-gnu
123   getpagesize
124   getpass-gnu
125   gettext-h
126   gettime
127   gettime-res
128   getugroups
129   getusershell
130   git-version-gen
131   gitlog-to-changelog
132   gnu-make
133   gnu-web-doc-update
134   gnumakefile
135   gnupload
136   group-member
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   lchown
154   ldtoastr
155   lib-ignore
156   libgmp
157   linebuffer
158   link
159   link-follow
160   linkat
161   long-options
162   lstat
163   maintainer-makefile
164   malloc-gnu
165   manywarnings
166   mbrlen
167   mbrtowc
168   mbsalign
169   mbschr
170   mbslen
171   mbswidth
172   memcasecmp
173   memchr
174   memcmp2
175   mempcpy
176   memrchr
177   minmax
178   mgetgroups
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   netinet_in
193   nproc
194   nstrftime
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
211   pthread-cond
212   pthread-mutex
213   pthread-thread
214   pthread_sigmask
215   putenv
216   quote
217   quotearg
218   randint
219   randperm
220   rawmemchr
221   read-file
222   readlink
223   readtokens
224   readtokens0
225   readutmp
226   realloc-gnu
227   regex
228   remove
229   rename
230   renameat
231   renameatu
232   rmdir
233   root-dev-ino
234   rpmatch
235   safe-read
236   same
237   save-cwd
238   savedir
239   savewd
240   select
241   selinux-at
242   setenv
243   settime
244   sig2str
245   sigaction
246   smack
247   ssize_t
248   stat-macros
249   stat-size
250   stat-time
251   stdalign
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