coreutils/bootstrap.conf
Collin Funk fe7208b90d maint: prefer endian.h for byte order conversions
* bootstrap.conf (gnulib_modules): Remove byteswap. Add endian.
* src/cksum.c: Include endian.h instead of byteswap.h.
(SWAP): Remove macro.
(cksum_slice8): Use htobe32 instead of SWAP.
(output_crc): Likewise.
* src/sum.c: Include endian.h instead of byteswap.h.
(SWAP): Remove macro.
(output_bsd): Use htobe16 instead of SWAP.
(output_sysv): Use htobe16 instead of SWAP.
* .gitignore: Add /lib/endian.h.
2024-06-29 16:11:23 +01:00

424 lines
7.5 KiB
Plaintext

# Bootstrap configuration.
# Copyright (C) 2006-2024 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
--avoid=mbuiter
--avoid=mbuiterf
'
# 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
assure
attribute
autobuild
backup-rename
backupfile
base32
base64
btoc32
buffer-lcm
c-strcase
c32iscntrl
c32isspace
c32width
canon-host
canonicalize
chmodat
chown
chownat
cl-strtod
cl-strtold
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
endian
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
fpurge
free-posix
freopen
freopen-safer
fseeko
fstatat
fsusage
fsync
ftoastr
ftruncate
fts
full-read
full-write
gethrxtime
getline
getloadavg
getlogin
getndelim2
getopt-gnu
getpagesize
gettext-h
gettime
gettime-res
git-version-gen
gitlog-to-changelog
gnu-web-doc-update
gnumakefile
gnupload
hard-locale
hash
hash-triple
heap
host-os
human
idcache
idx
ignore-value
inttostr
inttypes
isapipe
isatty
isblank
largefile
lchmod
ldtoastr
lib-ignore
libgmp
linebuffer
link
link-follow
linkat
long-options
lstat
maintainer-makefile
malloc-gnu
manywarnings
mbrlen
mbrtoc32
mbrtowc
mbschr
mbslen
mbswidth
mbszero
mcel-prefer
memcasecmp
memchr
memcmp2
mempcpy
memrchr
minmax
mkancesdirs
mkdir
mkdir-p
mkdirat
mkfifo
mkfifoat
mknod
mkostemp
mkstemp
mktime
modechange
mountlist
mpsort
nproc
nstrftime
nullptr
obstack
open
openat-safer
parse-datetime
parse-datetime2
pathmax
perl
physmem
pipe-posix
pipe2
posix-shell
posixtm
posixver
priv-set
progname
propername-lite
pthread-cond
pthread-mutex
pthread-thread
pthread_sigmask
putenv
quote
quotearg
randint
randperm
rawmemchr
read-file
readtokens
readtokens0
readutmp
regex
remove
renameat
renameatu
rmdir
root-dev-ino
safe-read
same
save-cwd
savedir
savewd
select
selinux-at
setenv
settime
sig2str
sigaction
skipchars
smack
ssize_t
stat-macros
stat-size
stat-time
stdbool
stdc_leading_zeros
stdckdint
stdlib-safer
stpcpy
strdup-posix
strnlen
strnumcmp
strsignal
strtoimax
strtoumax
symlinkat
sys_ioctl
sys_resource
sys_stat
sys_wait
targetdir
tempname
termios
time_rz
timer-time
timespec
tmpdir
uname
unicodeio
unistd-safer
unlink-busy
unlinkat
unlinkdir
unlocked-io
unsetenv
update-copyright
useless-if-before-free
userspec
utimecmp
utimens
utimensat
vasprintf-posix
vc-list-files
verify
verror
version-etc-fsf
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_lite: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
}