diffutils/bootstrap.conf
2026-01-02 16:52:26 -08:00

248 lines
4.9 KiB
Plaintext

# Bootstrap configuration.
# Copyright (C) 2006-2013, 2015-2026 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 <http://www.gnu.org/licenses/>.
avoided_gnulib_modules='
--avoid=hard-locale
--avoid=localename-unsafe
--avoid=localename-unsafe-limited
--avoid=lock-tests
--avoid=mbuiter
--avoid=mbuiterf
--avoid=setlocale
'
# These tests depend on localcharset, which we avoid.
avoided_gnulib_tests='
--avoid=c32width-tests
--avoid=quotearg-simple-tests
--avoid=regex-tests
--avoid=wcwidth-tests
'
# These test whether all bytes are valid in the C locale,
# which we don't care about.
avoided_gnulib_tests=$avoided_gnulib_tests'
--avoid=btoc32-tests
--avoid=btowc-tests
--avoid=mbrtoc32-tests
--avoid=mbrtowc-tests
--avoid=mbsrtoc32s-tests
--avoid=mbsrtowcs-tests
'
# gnulib modules used by this package.
gnulib_modules='
announce-gen
argmatch
assert-h
attribute
binary-io
bool
builtin-expect
c-ctype
c-file-type
c-stack
c32isprint
c32isspace
c32tolower
c32width
careadlinkat
config-h
d-type
diffseq
dirname
do-release-commit-and-tag
dup2
error
exclude
exitfail
extensions
extern-inline
fcntl
fdopendir
filenamecat
flexmember
fnmatch-gnu
fopen-gnu
fstatat
getopt-gnu
gettext-h
git-version-gen
gitlog-to-changelog
gnu-make
gnu-web-doc-update
gnumakefile
gnupload
ialloc
idx
intprops
inttypes-h
largefile
lstat
maintainer-makefile
manywarnings
mbscasecmp
mcel-prefer
mempcpy
minmax
mkstemp
mktime
nstrftime-limited
nullptr
openat
pclose
perl
popen
progname
propername-lite
quote
raise
rawmemchr
readdir
readlinkat
readme-release
regex
same-inode
sh-quote
sigaction
signal-h
sigprocmask
stat
stat-macros
stat-size
stat-time
stdc_bit_width
stdckdint-h
stdcountof-h
stdint-h
stpcpy
strcase
strptime
strtoimax
system-quote
sys_types-h
sys_wait-h
timespec
timespec_get
time_rz
unistd-h
unlocked-io
update-copyright
verify
version-etc
version-etc-fsf
xalloc
xfreopen
xmalloca
xstdopen
xstrtoimax
year2038
'
# Additional xgettext options to use. Use "\\\newline" to break lines.
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
--flag=asnprintf:3:c-format\\\
--flag=asprintf:2:c-format\\\
--from-code=UTF-8\\\
--flag=message:1:c-format\\\
--flag=try_help:1:c-format\\\
--flag=vasprintf:2:c-format\\\
--flag=vasnprintf:3:c-format\\\
'
gnulib_tool_option_extras="--tests-base=gnulib-tests
--local-dir=gl
--with-tests
--symlink
--makefile-name=gnulib.mk
$avoided_gnulib_modules
$avoided_gnulib_tests
"
# Build prerequisites
buildreq="\
autoconf 2.64
automake 1.14
autopoint 0.19.2
gettext 0.19.2
git 1.4.4
gperf -
gzip -
help2man -
m4 -
makeinfo -
perl 5.5
texi2pdf 6.1
tar -
wget -
xz -
"
bootstrap_post_import_hook ()
{
# Automake requires that ChangeLog exist.
touch ChangeLog || exit 1
# Copy tests/init.sh from Gnulib.
$gnulib_tool --copy-file tests/init.sh
# Copy pkg-config's pkg.m4 so that our downstream users don't need to.
local ac_dir=`aclocal --print-ac-dir`
test -s "$ac_dir/dirlist" && ac_dir=$ac_dir:`tr '\n' : < "$ac_dir/dirlist"`
oIFS=$IFS
IFS=:
for dir in \
$ACLOCAL_PATH $ac_dir /usr/share/aclocal ''
do
IFS=$oIFS
if test -n "$dir" && test -r "$dir/pkg.m4"; then
cp "$dir/pkg.m4" m4/pkg.m4
return
fi
done
IFS=$oIFS
die 'Cannot find pkg.m4; perhaps you need to install pkg-config'
}
bootstrap_epilogue()
{
perl -pi -e "s/\@PACKAGE\@/$package/g" README-release
# 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
}