summaryrefslogtreecommitdiff
path: root/bootstrap.conf
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap.conf')
-rw-r--r--bootstrap.conf447
1 files changed, 363 insertions, 84 deletions
diff --git a/bootstrap.conf b/bootstrap.conf
index 3043321..985018f 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -1,11 +1,11 @@
# Bootstrap configuration.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2006-2016 Free Software Foundation, Inc.
-# This program is free software; you can redistribute it and/or modify
+# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,61 +13,278 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# We don't need these modules, even though gnulib-tool mistakenly
-# includes them because of gettext and fchdir dependencies.
+# We don't need these modules.
avoided_gnulib_modules='
- --avoid=lock
- --avoid=size_max
- --avoid=xsize
- --avoid=canonicalize-lgpl
-'
-
-# These modules are obsolete and can probably be removed soon,
-# but leave them in for now to minimize changes.
-obsolete_gnulib_modules='
- atexit free memchr memcmp memcpy memmove memset rename
- strcspn strtod strtol utime
+ --avoid=canonicalize-lgpl
+ --avoid=dummy
'
# gnulib modules used by this package.
gnulib_modules="
- $avoided_gnulib_modules
- $obsolete_gnulib_modules
- acl alloca announce-gen argmatch assert backupfile base64
- c-strcase c-strtod
- c-strtold calloc canon-host canonicalize chown cloexec
- config-h configmake
- closeout cycle-check d-ino d-type diacrit dirfd dirname dup2
- error euidaccess exclude exitfail fchdir fcntl fcntl-safer fdl
- file-type fileblocks filemode filenamecat fnmatch-gnu
- fopen-safer
- fprintftime fsusage ftruncate fts getdate getgroups gethrxtime
- getline getloadavg getndelim2 getopt getpagesize getpass-gnu
- gettext gettime gettimeofday getugroups getusershell gnupload
- group-member hard-locale hash hash-pjw host-os human idcache
- inttostr inttypes isapipe
- lchmod lchown lib-ignore linebuffer link-follow
- long-options lstat malloc mbswidth md5 memcasecmp mempcpy
- memrchr mkancesdirs mkdir mkdir-p mkstemp mktime modechange
- mountlist mpsort obstack pathmax perl physmem posixtm posixver putenv
- quote quotearg raise readlink readtokens readtokens0 readutmp
- realloc regex rename-dest-slash rmdir rmdir-errno
- root-dev-ino
- rpmatch
- safe-read same
- save-cwd savedir savewd settime sha1 sig2str ssize_t stat-macros
- stat-time stdbool stdlib-safer stpcpy strftime
- strpbrk strtoimax strtoumax strverscmp sys_stat timespec tzset
- unicodeio unistd-safer unlink-busy unlinkdir unlocked-io
- uptime userspec utimecmp utimens vasprintf verify version-etc-fsf
- wcwidth winsz-ioctl winsz-termios xalloc xgetcwd xgethostname
- xmemcoll xnanosleep xreadlink xreadlink-with-size xstrtod xstrtoimax
- xstrtol xstrtold xstrtoumax yesno
+ $avoided_gnulib_modules
+ acl
+ alignof
+ alloca
+ announce-gen
+ areadlink-with-size
+ argmatch
+ argv-iter
+ assert
+ autobuild
+ backupfile
+ base64
+ base32
+ buffer-lcm
+ c-strcase
+ c-strtod
+ c-strtold
+ calloc-gnu
+ canon-host
+ canonicalize
+ chown
+ cloexec
+ closein
+ closeout
+ config-h
+ configmake
+ crypto/md5
+ crypto/sha1
+ crypto/sha256
+ crypto/sha512
+ cycle-check
+ d-ino
+ d-type
+ di-set
+ diacrit
+ dirfd
+ dirname
+ do-release-commit-and-tag
+ dtoastr
+ dup2
+ environ
+ error
+ euidaccess
+ exclude
+ exitfail
+ faccessat
+ fadvise
+ fchdir
+ fchmodat
+ fchownat
+ fclose
+ fcntl
+ fcntl-safer
+ fd-reopen
+ fdatasync
+ fdl
+ fdopen
+ fdutimensat
+ file-has-acl
+ file-type
+ fileblocks
+ filemode
+ filenamecat
+ filevercmp
+ fnmatch-gnu
+ fopen-safer
+ fprintftime
+ freopen
+ freopen-safer
+ fseeko
+ fstatat
+ fsusage
+ fsync
+ ftello
+ ftoastr
+ ftruncate
+ fts
+ full-read
+ full-write
+ getgroups
+ gethrxtime
+ getline
+ getloadavg
+ getlogin
+ getndelim2
+ getopt-gnu
+ getpagesize
+ getpass-gnu
+ gettext-h
+ gettime
+ gettimeofday
+ getugroups
+ getusershell
+ git-version-gen
+ gitlog-to-changelog
+ gnu-make
+ gnu-web-doc-update
+ gnumakefile
+ gnupload
+ group-member
+ hard-locale
+ hash
+ hash-pjw
+ heap
+ host-os
+ human
+ idcache
+ ignore-value
+ inttostr
+ inttypes
+ isapipe
+ isatty
+ isblank
+ largefile
+ lchmod
+ lchown
+ ldtoastr
+ lib-ignore
+ linebuffer
+ link
+ link-follow
+ linkat
+ long-options
+ lstat
+ maintainer-makefile
+ malloc-gnu
+ manywarnings
+ mbrlen
+ mbrtowc
+ mbsalign
+ mbswidth
+ memcasecmp
+ memchr
+ memcmp2
+ mempcpy
+ memrchr
+ mgetgroups
+ mkancesdirs
+ mkdir
+ mkdir-p
+ mkfifo
+ mknod
+ mkstemp
+ mktime
+ modechange
+ mountlist
+ mpsort
+ netinet_in
+ non-recursive-gnulib-prefix-hack
+ nproc
+ obstack
+ parse-datetime
+ pathmax
+ perl
+ physmem
+ pipe-posix
+ posix-shell
+ posixtm
+ posixver
+ priv-set
+ progname
+ propername
+ pthread
+ putenv
+ quote
+ quotearg
+ randint
+ randperm
+ read-file
+ readlink
+ readtokens
+ readtokens0
+ readutmp
+ realloc-gnu
+ regex
+ remove
+ rename
+ rmdir
+ root-dev-ino
+ rpmatch
+ safe-read
+ same
+ save-cwd
+ savedir
+ savewd
+ selinux-at
+ setenv
+ settime
+ sig2str
+ sigaction
+ smack
+ ssize_t
+ statat
+ stat-macros
+ stat-size
+ stat-time
+ stdbool
+ stdlib-safer
+ stpcpy
+ stpncpy
+ strdup-posix
+ strftime
+ strncat
+ strnumcmp
+ strpbrk
+ strsignal
+ strtod
+ strtoimax
+ strtoumax
+ symlink
+ sys_ioctl
+ sys_resource
+ sys_stat
+ sys_wait
+ tempname
+ termios
+ time_rz
+ timer-time
+ timespec
+ tzset
+ uname
+ unicodeio
+ unistd-safer
+ unlink-busy
+ unlinkat
+ unlocked-io
+ unsetenv
+ update-copyright
+ uptime
+ useless-if-before-free
+ userspec
+ utimecmp
+ utimens
+ vasprintf-posix
+ vc-list-files
+ verify
+ verror
+ version-etc-fsf
+ wcswidth
+ wcwidth
+ winsz-ioctl
+ winsz-termios
+ write-any-file
+ xalloc
+ xfreopen
+ xfts
+ xgetcwd
+ xgetgroups
+ xgethostname
+ xmemcoll
+ xnanosleep
+ xprintf
+ xprintf-posix
+ xreadlink
+ xdectoint
+ xstrtod
+ xstrtoimax
+ xstrtol
+ xstrtold
+ xstrtoumax
+ yesno
"
# Other locale categories that need message catalogs.
@@ -75,38 +292,100 @@ EXTRA_LOCALE_CATEGORIES=LC_TIME
# Additional xgettext options to use. Use "\\\newline" to break lines.
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
- --from-code=UTF-8\\\
- --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\
- --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\
+ --flag=asnprintf:3:c-format\\\
+ --flag=asprintf:2:c-format\\\
+ --flag=error:3:c-format\\\
+ --flag=error_at_line:5:c-format\\\
+ --flag=vasnprintf:3:c-format\\\
+ --flag=vasprintf:2:c-format\\\
+ --flag=verror:3:c-format\\\
+ --flag=verror_at_line:5:c-format\\\
--flag=wrapf:1:c-format\\\
+ --flag=xasprintf:1:c-format\\\
+ --flag=xfprintf:2:c-format\\\
+ --flag=xprintf:1:c-format\\\
+ --from-code=UTF-8\\\
'
-# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
-# appears in configure.ac, exclude some unnecessary files.
-# Without grep's -E option (not portable enough, pre-configure),
-# the following test is ugly. Also, this depends on the existence
-# of configure.ac, not the obsolescent-named configure.in. But if
-# you're using this infrastructure, you should care about such things.
-
-gettext_external=0
-grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
- gettext_external=1
-grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
- gettext_external=1
-
-if test $gettext_external = 1; then
- # Gettext supplies these files, but we don't need them since
- # we don't have an intl subdirectory.
- excluded_files='
- m4/glibc2.m4
- m4/intdiv0.m4
- m4/lcmessage.m4
- m4/lock.m4
- m4/printf-posix.m4
- m4/size_max.m4
- m4/uintmax_t.m4
- m4/ulonglong.m4
- m4/visibility.m4
- m4/xsize.m4
- '
-fi
+# Append these, since we use the propername module.
+see_manual='"This is a proper name. See the gettext manual, section Names."'
+see_manual=\'"$see_manual"\'
+XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
+ --keyword=proper_name:1,'"$see_manual"'\\\
+ --keyword=proper_name_utf8:1,'"$see_manual"'\\\
+'
+
+gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests --symlink\
+ --makefile-name=gnulib.mk
+"
+
+# Build prerequisites
+buildreq="\
+autoconf 2.64
+automake 1.11.2
+autopoint 0.19.2
+bison -
+gettext 0.19.2
+git 1.4.4
+gperf -
+gzip -
+makeinfo 4.13
+patch -
+perl 5.5
+rsync -
+tar -
+xz -
+"
+
+bootstrap_post_import_hook ()
+{
+ # Automake requires that ChangeLog exist.
+ touch ChangeLog || return 1
+ # List of coreutils programs. See heading comments in the invoked
+ # script for more info. Keep this in sync with the rules in
+ (m4f=m4/cu-progs.m4 mkf=src/cu-progs.mk tmp=cu-progs.tmp \
+ && rm -f $m4f $mkf $tmp-1 $tmp-2 \
+ && build-aux/gen-lists-of-programs.sh --autoconf >$tmp-1 \
+ && build-aux/gen-lists-of-programs.sh --automake >$tmp-2 \
+ && chmod a-w $tmp-1 $tmp-2 \
+ && mv -f $tmp-1 $m4f && mv -f $tmp-2 $mkf)
+
+ # Massage lib/gnulib.mk before using it later in the bootstrapping process.
+ build-aux/prefix-gnulib-mk --lib-name=$gnulib_name lib/$gnulib_mk
+
+ # Regenerate src/single-binary.mk
+ (mkf=src/single-binary.mk tmp=single-binary.tmp \
+ && rm -f $mkf $tmp \
+ && build-aux/gen-single-binary.sh src/local.mk >$tmp \
+ && chmod a-w $tmp \
+ && mv -f $tmp $mkf)
+}
+
+
+bootstrap_epilogue()
+{
+ # Since this is a "GNU" package, replace this line
+ # if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null \
+ # | grep -v 'libtool:' >/dev/null; then
+ # with this:
+ # if true; then
+ # Why? That pipeline searches all files in $(top_srcdir), and if you
+ # happen to have large files (or apparently large sparse files), the
+ # first grep may well run out of memory.
+ perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
+ po/Makefile.in.in
+
+ # Install our git hooks, as long as "cp" accepts the --backup option,
+ # so that we can back up any existing files.
+ case $(cp --help) in *--backup*) backup=1;; *) backup=0;; esac
+ if test $backup = 1; then
+ hooks=$(cd scripts/git-hooks && git ls-files)
+ for f in $hooks; do
+ # If it is identical, skip it.
+ cmp scripts/git-hooks/$f .git/hooks/$f > /dev/null \
+ && continue
+ cp --backup=numbered scripts/git-hooks/$f .git/hooks
+ chmod a-w .git/hooks/$f
+ done
+ fi
+}