build: add numerous gnulib modules, mostly for improved portability
[coreutils.git] / bootstrap.conf
blob3980259d705698fe62e7ce25de235d4249152967
1 # Bootstrap configuration.
3 # Copyright (C) 2006-2012 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   base64
39   c-strcase
40   c-strtod
41   c-strtold
42   calloc-gnu
43   canon-host
44   canonicalize
45   chown
46   cloexec
47   closein
48   closeout
49   config-h
50   configmake
51   crypto/md5
52   crypto/sha1
53   crypto/sha256
54   crypto/sha512
55   cycle-check
56   d-ino
57   d-type
58   di-set
59   diacrit
60   dirfd
61   dirname
62   do-release-commit-and-tag
63   dtoastr
64   dup2
65   environ
66   error
67   euidaccess
68   exclude
69   exitfail
70   faccessat
71   fadvise
72   fchdir
73   fchmodat
74   fchownat
75   fclose
76   fcntl
77   fcntl-safer
78   fdatasync
79   fdl
80   fdopen
81   fdutimensat
82   file-type
83   fileblocks
84   filemode
85   filenamecat
86   filevercmp
87   fnmatch-gnu
88   fopen-safer
89   fprintftime
90   freopen
91   freopen-safer
92   fseeko
93   fstatat
94   fsusage
95   fsync
96   ftello
97   ftoastr
98   ftruncate
99   fts
100   full-read
101   full-write
102   getgroups
103   gethrxtime
104   getline
105   getloadavg
106   getlogin
107   getndelim2
108   getopt-gnu
109   getpagesize
110   getpass-gnu
111   gettext-h
112   gettime
113   gettimeofday
114   getugroups
115   getusershell
116   git-version-gen
117   gitlog-to-changelog
118   gnu-make
119   gnu-web-doc-update
120   gnumakefile
121   gnupload
122   group-member
123   hard-locale
124   hash
125   hash-pjw
126   heap
127   host-os
128   human
129   idcache
130   ignore-value
131   inttostr
132   inttypes
133   isapipe
134   isatty
135   isblank
136   largefile
137   lchmod
138   lchown
139   ldtoastr
140   lib-ignore
141   linebuffer
142   link
143   link-follow
144   linkat
145   long-options
146   lstat
147   maintainer-makefile
148   malloc-gnu
149   manywarnings
150   mbrlen
151   mbrtowc
152   mbsalign
153   mbswidth
154   memcasecmp
155   memchr
156   memcmp2
157   mempcpy
158   memrchr
159   mgetgroups
160   mkancesdirs
161   mkdir
162   mkdir-p
163   mkfifo
164   mknod
165   mkstemp
166   mktime
167   modechange
168   mountlist
169   mpsort
170   netinet_in
171   nproc
172   obstack
173   parse-datetime
174   perl
175   physmem
176   pipe
177   posix-shell
178   posixtm
179   posixver
180   priv-set
181   progname
182   propername
183   pthread
184   putenv
185   quote
186   quotearg
187   randint
188   randperm
189   read-file
190   readlink
191   readtokens
192   readtokens0
193   readutmp
194   realloc-gnu
195   regex
196   remove
197   rename
198   rmdir
199   root-dev-ino
200   rpmatch
201   safe-read
202   same
203   save-cwd
204   savedir
205   savewd
206   selinux-at
207   settime
208   sig2str
209   sigaction
210   ssize_t
211   stat-macros
212   stat-size
213   stat-time
214   stdbool
215   stdlib-safer
216   stpcpy
217   stpncpy
218   strdup-posix
219   strftime
220   strncat
221   strpbrk
222   strsignal
223   strtod
224   strtoimax
225   strtoumax
226   symlink
227   sys_ioctl
228   sys_stat
229   sys_wait
230   termios
231   timer-time
232   timespec
233   tzset
234   uname
235   unicodeio
236   unistd-safer
237   unlink-busy
238   unlinkat
239   unlocked-io
240   unsetenv
241   update-copyright
242   uptime
243   useless-if-before-free
244   userspec
245   utimecmp
246   utimens
247   vasprintf-posix
248   vc-list-files
249   verify
250   verror
251   version-etc-fsf
252   wcswidth
253   wcwidth
254   winsz-ioctl
255   winsz-termios
256   write-any-file
257   xalloc
258   xfreopen
259   xgetcwd
260   xgetgroups
261   xgethostname
262   xmemcoll
263   xnanosleep
264   xprintf
265   xprintf-posix
266   xreadlink
267   xstrtod
268   xstrtoimax
269   xstrtol
270   xstrtold
271   xstrtoumax
272   yesno
275 # Other locale categories that need message catalogs.
276 EXTRA_LOCALE_CATEGORIES=LC_TIME
278 # Additional xgettext options to use.  Use "\\\newline" to break lines.
279 XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
280  --flag=asnprintf:3:c-format\\\
281  --flag=asprintf:2:c-format\\\
282  --flag=error:3:c-format\\\
283  --flag=error_at_line:5:c-format\\\
284  --flag=vasnprintf:3:c-format\\\
285  --flag=vasprintf:2:c-format\\\
286  --flag=verror:3:c-format\\\
287  --flag=verror_at_line:5:c-format\\\
288  --flag=wrapf:1:c-format\\\
289  --flag=xasprintf:1:c-format\\\
290  --flag=xfprintf:2:c-format\\\
291  --flag=xprintf:1:c-format\\\
292  --from-code=UTF-8\\\
295 # Append these, since we use the propername module.
296 see_manual='"This is a proper name. See the gettext manual, section Names."'
297 see_manual=\'"$see_manual"\'
298 XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
299  --keyword=proper_name:1,'"$see_manual"'\\\
300  --keyword=proper_name_utf8:1,'"$see_manual"'\\\
303 gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests --symlink\
304  --makefile-name=gnulib.mk
307 # Build prerequisites
308 buildreq="\
309 autoconf   2.62
310 automake   1.11.1
311 autopoint  -
312 bison      -
313 gettext    0.17
314 git        1.4.4
315 gperf      -
316 gzip       -
317 makeinfo   4.13
318 patch      -
319 perl       5.5
320 rsync      -
321 tar        -
322 xz         -
325 # Automake requires that ChangeLog exist.
326 touch ChangeLog || exit 1
328 bootstrap_epilogue()
330   # Since this is a "GNU" package, replace this line
331   #   if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null \
332   #      | grep -v 'libtool:' >/dev/null; then
333   # with this:
334   #   if true; then
335   # Why?  That pipeline searches all files in $(top_srcdir), and if you
336   # happen to have large files (or apparently large sparse files), the
337   # first grep may well run out of memory.
338   perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
339     po/Makefile.in.in
341   # Install our git hooks, as long as "cp" accepts the --backup option,
342   # so that we can back up any existing files.
343   case $(cp --help) in *--backup*) backup=1;; *) backup=0;; esac
344   if test $backup = 1; then
345     hooks=$(cd scripts/git-hooks && git ls-files)
346     for f in $hooks; do
347       # If it is identical, skip it.
348       cmp scripts/git-hooks/$f .git/hooks/$f > /dev/null \
349         && continue
350       cp --backup=numbered scripts/git-hooks/$f .git/hooks
351       chmod a-w .git/hooks/$f
352     done
353   fi