mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-17 00:56:34 +02:00
This will help us make the transition to C2x, where some attributes must come at the start of function decls. Leave the attributes alone in .h files for now, as the Gnulib tradition is to not expose attribute.h to users. * bootstrap.conf (gnulib_modules): Add ‘attribute’. * gl/lib/randperm.c, src/make-prime-list.c, src/system.h: Include attribute.h. * gl/lib/strnumcmp.c (strnumcmp): Remove _GL_ATTRIBUTE_PURE here, as this belongs in the .h file. * gl/lib/strnumcmp.h (strnumcmp): Add _GL_ATTRIBUTE_PURE here. * src/sort.c (human_numcompare, numcompare): Now ATTRIBUTE_PURE; discovered due to strnumcmp.h change. * gl/lib/randperm.c, src/copy.c, src/dd.c, src/df.c, src/digest.c: * src/env.c, src/expr.c, src/factor.c, src/ls.c: * src/make-prime-list.c, src/numfmt.c, src/od.c, src/pathchk.c: * src/pinky.c, src/pr.c, src/ptx.c, src/realpath.c, src/relpath.c: * src/seq.c, src/sort.c, src/stat.c, src/stty.c, src/system.h: * src/tr.c, src/uniq.c, src/wc.c: In .c files, crefer ATTRIBUTE_CONST to _GL_ATTRIBUTE_CONST, and similarly for ATTRIBUTE_FORMAT and ATTRIBUTE_PURE. * src/system.h (FALLTHROUGH): Remove; attribute.h defines it.
422 lines
7.5 KiB
Plaintext
422 lines
7.5 KiB
Plaintext
# Bootstrap configuration.
|
|
|
|
# Copyright (C) 2006-2021 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
|
|
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
|
|
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
|
|
fclose
|
|
fcntl
|
|
fcntl-safer
|
|
fd-reopen
|
|
fdatasync
|
|
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
|
|
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
|
|
mkfifo
|
|
mknod
|
|
mkostemp
|
|
mkstemp
|
|
mktime
|
|
modechange
|
|
mountlist
|
|
mpsort
|
|
netinet_in
|
|
non-recursive-gnulib-prefix-hack
|
|
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
|
|
statat
|
|
stdbool
|
|
stdlib-safer
|
|
stpcpy
|
|
stpncpy
|
|
strdup-posix
|
|
strncat
|
|
strnumcmp
|
|
strsignal
|
|
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
|
|
unlinkdir
|
|
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
|
|
xstrtol-error
|
|
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
|
|
}
|