123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409 |
- # Bootstrap configuration.
- # Copyright (C) 2006-2018 Free Software Foundation, Inc.
- # 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 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
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # 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, see <https://www.gnu.org/licenses/>.
- # We don't need these modules.
- avoided_gnulib_modules='
- --avoid=canonicalize-lgpl
- --avoid=dummy
- '
- # gnulib modules used by this package.
- gnulib_modules="
- $avoided_gnulib_modules
- acl
- alignof
- alloca
- announce-gen
- areadlink-with-size
- argmatch
- argv-iter
- assert
- autobuild
- backupfile
- backup-rename
- base32
- base64
- 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
- explicit_bzero
- faccessat
- fadvise
- fchdir
- fchmodat
- fchownat
- fclose
- fcntl
- fcntl-safer
- fd-reopen
- fdatasync
- fdl
- fdopen
- fdutimensat
- file-has-acl
- file-type
- fileblocks
- filemode
- filenamecat
- filevercmp
- flexmember
- fnmatch-gnu
- fopen-safer
- fprintftime
- freopen
- freopen-safer
- fseeko
- fstatat
- fsusage
- fsync
- 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
- mbschr
- mbslen
- mbswidth
- memcasecmp
- memchr
- memcmp2
- mempcpy
- memrchr
- mgetgroups
- mkancesdirs
- mkdir
- mkdir-p
- mkfifo
- mknod
- mkostemp
- mkstemp
- mktime
- modechange
- mountlist
- mpsort
- netinet_in
- non-recursive-gnulib-prefix-hack
- nproc
- nstrftime
- obstack
- open
- parse-datetime
- pathmax
- perl
- physmem
- pipe-posix
- pipe2
- 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
- renameat
- renameatu
- rmdir
- root-dev-ino
- rpmatch
- safe-read
- same
- save-cwd
- savedir
- savewd
- selinux-at
- setenv
- settime
- sig2str
- sigaction
- smack
- ssize_t
- stat-macros
- stat-size
- stat-time
- statat
- stdbool
- stdlib-safer
- stpcpy
- stpncpy
- strdup-posix
- strncat
- strnumcmp
- strsignal
- strtod
- strtoimax
- strtoumax
- symlinkat
- 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
- wchar-single
- wcswidth
- wcwidth
- winsz-ioctl
- winsz-termios
- write-any-file
- xalloc
- xbinary-io
- xdectoint
- xfts
- xgetcwd
- xgetgroups
- xgethostname
- xmemcoll
- xnanosleep
- xprintf
- xprintf-posix
- xreadlink
- xstrtod
- xstrtoimax
- xstrtol
- xstrtold
- xstrtoumax
- year2038
- yesno
- "
- # Other locale categories that need message catalogs.
- EXTRA_LOCALE_CATEGORIES=LC_TIME
- # Additional xgettext options to use. Use "\\\newline" to break lines.
- XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
- --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\\\
- '
- # 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 6.1
- 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
- # Add dummy 'install-html' target, required for packages using
- # non-recursive makefiles with older gettext.
- # See https://debbugs.gnu.org/25690
- if ! grep -w 'install-html' po/Makefile.in.in ; then
- printf 'install-%s:;\n' dvi ps pdf html >> po/Makefile.in.in
- fi
- # 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
- }
|