mirror of
https://github.com/coreutils/coreutils.git
synced 2024-11-30 21:44:45 +08:00
17479ef60c
Following on from commit v9.0-15-gaa31b919c which updated README-prereq... * bootstrap.conf: Add an explicit requirement on m4. Add an explicit requirement on texi2pdf which is often packaged separately to makeinfo and induces a failure far down the distribution phase if not present. Replace the rsync dependency with wget, which gnulib changed to in 2018.
433 lines
7.6 KiB
Plaintext
433 lines
7.6 KiB
Plaintext
# Bootstrap configuration.
|
|
|
|
# Copyright (C) 2006-2023 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
|
|
alignalloc
|
|
alignasof
|
|
alloca
|
|
announce-gen
|
|
areadlink-with-size
|
|
areadlinkat-with-size
|
|
argmatch
|
|
argv-iter
|
|
assert
|
|
assert-h
|
|
attribute
|
|
autobuild
|
|
backupfile
|
|
backup-rename
|
|
base32
|
|
base64
|
|
btowc
|
|
buffer-lcm
|
|
byteswap
|
|
c-strcase
|
|
cl-strtod
|
|
cl-strtold
|
|
calloc-gnu
|
|
canon-host
|
|
canonicalize
|
|
chmodat
|
|
chown
|
|
chownat
|
|
cloexec
|
|
closein
|
|
closeout
|
|
config-h
|
|
configmake
|
|
copy-file-range
|
|
count-leading-zeros
|
|
crypto/md5
|
|
crypto/sha1
|
|
crypto/sha256
|
|
crypto/sha512
|
|
crypto/sm3
|
|
cycle-check
|
|
d-ino
|
|
d-type
|
|
di-set
|
|
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
|
|
fdopen
|
|
fdutimensat
|
|
file-has-acl
|
|
file-type
|
|
fileblocks
|
|
filemode
|
|
filenamecat
|
|
filevercmp
|
|
flexmember
|
|
fnmatch-gnu
|
|
fopen-safer
|
|
fprintftime
|
|
free-posix
|
|
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
|
|
gettime-res
|
|
getugroups
|
|
getusershell
|
|
git-version-gen
|
|
gitlog-to-changelog
|
|
gnu-make
|
|
gnu-web-doc-update
|
|
gnumakefile
|
|
gnupload
|
|
group-member
|
|
hard-locale
|
|
hash
|
|
hash-triple
|
|
heap
|
|
host-os
|
|
human
|
|
idcache
|
|
idx
|
|
ignore-value
|
|
inttostr
|
|
inttypes
|
|
isapipe
|
|
isatty
|
|
isblank
|
|
largefile
|
|
lchmod
|
|
lchown
|
|
ldtoastr
|
|
lib-ignore
|
|
libgmp
|
|
linebuffer
|
|
link
|
|
link-follow
|
|
linkat
|
|
long-options
|
|
lstat
|
|
maintainer-makefile
|
|
malloc-gnu
|
|
manywarnings
|
|
mbrlen
|
|
mbrtowc
|
|
mbsalign
|
|
mbschr
|
|
mbslen
|
|
mbswidth
|
|
memcasecmp
|
|
memchr
|
|
memcmp2
|
|
mempcpy
|
|
memrchr
|
|
minmax
|
|
mgetgroups
|
|
mkancesdirs
|
|
mkdir
|
|
mkdir-p
|
|
mkdirat
|
|
mkfifo
|
|
mkfifoat
|
|
mknod
|
|
mkostemp
|
|
mkstemp
|
|
mktime
|
|
modechange
|
|
mountlist
|
|
mpsort
|
|
netinet_in
|
|
nproc
|
|
nstrftime
|
|
obstack
|
|
open
|
|
openat-safer
|
|
parse-datetime
|
|
parse-datetime2
|
|
pathmax
|
|
perl
|
|
physmem
|
|
pipe-posix
|
|
pipe2
|
|
posix-shell
|
|
posixtm
|
|
posixver
|
|
priv-set
|
|
progname
|
|
propername
|
|
pthread-cond
|
|
pthread-mutex
|
|
pthread-thread
|
|
pthread_sigmask
|
|
putenv
|
|
quote
|
|
quotearg
|
|
randint
|
|
randperm
|
|
rawmemchr
|
|
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
|
|
select
|
|
selinux-at
|
|
setenv
|
|
settime
|
|
sig2str
|
|
sigaction
|
|
smack
|
|
ssize_t
|
|
stat-macros
|
|
stat-size
|
|
stat-time
|
|
stdbool
|
|
stdlib-safer
|
|
stpcpy
|
|
stpncpy
|
|
strdup-posix
|
|
strncat
|
|
strnumcmp
|
|
strsignal
|
|
strtoimax
|
|
strtoumax
|
|
symlinkat
|
|
sys_ioctl
|
|
sys_resource
|
|
sys_stat
|
|
sys_wait
|
|
targetdir
|
|
tempname
|
|
termios
|
|
time_rz
|
|
timer-time
|
|
timespec
|
|
tmpfile
|
|
tzset
|
|
uname
|
|
unicodeio
|
|
unistd-safer
|
|
unlink-busy
|
|
unlinkat
|
|
unlinkdir
|
|
unlocked-io
|
|
unsetenv
|
|
update-copyright
|
|
uptime
|
|
useless-if-before-free
|
|
userspec
|
|
utimecmp
|
|
utimens
|
|
utimensat
|
|
vasprintf-posix
|
|
vc-list-files
|
|
verify
|
|
verror
|
|
version-etc-fsf
|
|
wchar-single
|
|
wcswidth
|
|
wcwidth
|
|
winsz-ioctl
|
|
winsz-termios
|
|
write-any-file
|
|
xalignalloc
|
|
xalloc
|
|
xbinary-io
|
|
xdectoint
|
|
xfts
|
|
xgetcwd
|
|
xgetgroups
|
|
xgethostname
|
|
xmemcoll
|
|
xnanosleep
|
|
xprintf
|
|
xprintf-posix
|
|
xreadlink
|
|
xstrtod
|
|
xstrtoimax
|
|
xstrtol
|
|
xstrtol-error
|
|
xstrtold
|
|
xstrtoumax
|
|
year2038-recommended
|
|
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 --automake-subdir
|
|
"
|
|
|
|
# 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 -
|
|
m4 -
|
|
makeinfo 6.1
|
|
texi2pdf 6.1
|
|
patch -
|
|
perl 5.5
|
|
tar -
|
|
wget -
|
|
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)
|
|
|
|
# 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
|
|
}
|