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