diffutils/bootstrap.conf
Paul Eggert 0c22f56ed7 maint: update build procedure to recent gettext etc.
* bootstrap.conf (gnulib_modules): Add vararrays.
(needed_gnulib_files, unnecessary_gettext_files): New vars.
(bootstrap_post_import_hook): New function, to implement these vars.
(excluded_files): Remove; 'bootstrap' no longer supports this.
Its function is now performed by unnecessary_gettext_files.
(buildreq): Update automake to 1.12.2, to avoid CVE-2012-3386.
* configure.ac (AM_GNU_GETTEXT_VERSION): Bump from 0.17 to 0.18.2,
to lessen the probability that we'll have outlandishly old files
during a build.
* m4/vararrays.m4: Remove from repository, as we now use the
gnulib version.
2013-03-23 00:26:36 -07:00

180 lines
3.8 KiB
Plaintext

# Bootstrap configuration.
# Copyright (C) 2006-2013 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/>.
# gnulib modules used by this package.
gnulib_modules='
announce-gen
binary-io
c-stack
config-h
diffseq
dirname
do-release-commit-and-tag
dup2
error
exclude
exitfail
extensions
fcntl
fdl
file-type
filenamecat
fnmatch-gnu
getopt
gettext-h
gettime
git-version-gen
gitlog-to-changelog
gnu-make
gnu-web-doc-update
gnumakefile
gnupload
hard-locale
inttostr
inttypes
largefile
lstat
maintainer-makefile
manywarnings
mbrtowc
mkstemp
mktime
progname
propername
readme-release
regex
sh-quote
signal
stat
stat-macros
stat-time
stdint
strcase
strftime
strptime
strtoumax
sys_wait
system-quote
unistd
unlocked-io
update-copyright
vararrays
verify
version-etc
version-etc-fsf
wcwidth
xalloc
xfreopen
xreadlink
xstrtoumax
xvasprintf
'
# Additional xgettext options to use. Use "\\\newline" to break lines.
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
--from-code=UTF-8\\\
--flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\
--flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\
--flag=message:1:c-format --flag=message5:1:c-format\\\
--flag=try_help:1:c-format\\\
'
# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
# appears in configure.ac, exclude some unnecessary files.
# Without grep's -E option (not portable enough, pre-configure),
# the following test is ugly. Also, this depends on the existence
# of configure.ac, not the obsolescent-named configure.in. But if
# you're using this infrastructure, you should care about such things.
gettext_external=0
grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
gettext_external=1
grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
gettext_external=1
needed_gnulib_files=
unnecessary_gettext_files=
if test $gettext_external = 1; then
# Gettext supplies these files, but we don't need them since
# we don't have an intl subdirectory.
unnecessary_gettext_files='
m4/glibc2.m4
m4/intdiv0.m4
m4/intl.m4
m4/intldir.m4
m4/intmax.m4
m4/lcmessage.m4
m4/lock.m4
m4/printf-posix.m4
m4/threadlib.m4
m4/uintmax_t.m4
m4/visibility.m4
'
# Gettext supplies these files, but the gnulib version of these files
# typically is more up-to-date. We don't use gnulib's gettext module,
# as it's too heavyweight, so grab the files one at a time instead.
needed_gnulib_files='
m4/gettext.m4
m4/intlmacosx.m4
m4/nls.m4
m4/po.m4
m4/progtest.m4
'
fi
gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests
--avoid=localename
--avoid=lock
--symlink
--makefile-name=gnulib.mk
"
# Build prerequisites
buildreq="\
autoconf 2.61
automake 1.12.2
autopoint -
gettext -
git 1.4.4
gzip -
help2man -
makeinfo -
perl 5.5
rsync -
tar -
"
# Automake requires that ChangeLog exist.
touch ChangeLog || exit 1
bootstrap_post_import_hook()
{
for file in $needed_gnulib_files; do
echo "$0: $gnulib_tool --copy-file $file $file ..."
$gnulib_tool --copy-file $file $file || exit
done
rm -f $unnecessary_gettext_files || exit
}
bootstrap_epilogue()
{
perl -pi -e "s/\@PACKAGE\@/$package/g" README-release
}