findutils/bootstrap.conf
Bernhard Voelker 1cc207f6eb maint: make inter-release --version output more useful
Now, each snapshot has a version "number" like 4.6-131-219-gda920ee,
which indicates that it is built using the 131st change set
(in _some_ repository) following the "v4.6" tag, and that da920ee
is a prefix of the commit SHA1.

* bootstrap.conf (gnulib_modules): Add git-version-gen.
* build-aux/.gitigore (/git-version-gen): Add entry.
* configure.ac: Run it to set the version from .tarball-version.
* Makefile.am (EXTRA_DIST): Add git-version-gen.
(dist-hook): Create .tarball-version in distribution tarballs,
never in a checked-out repository.
(AUTOMAKE_OPTIONS): Change from 'gnits' to 'gnu std-options readme-alpha'.
* .gitignore (.tarball-version): Add entry.
* doc/find-maint.texi (Making Releases): Adjust: tag before the build,
changed handling in NEWS, etc.
* NEWS (Changes to the build process): Document the change.
2018-03-14 20:44:14 +01:00

276 lines
6.3 KiB
Plaintext

# Bootstrap configuration.
# Copyright (C) 2006-2018 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/>.
# Automake requires that ChangeLog exists.
touch ChangeLog
# Random extra gnulib files needed for findutils.
# copied from 'import-gnulib.config'
gnulib_extra_files='
build-aux/config.guess
build-aux/config.sub
build-aux/depcomp
build-aux/install-sh
build-aux/mdate-sh
build-aux/mkinstalldirs
build-aux/texinfo.tex
'
# gnulib modules needed only for maintainer things.
maintainer_modules='
gitlog-to-changelog
maintainer-makefile
update-copyright
gendocs
'
# 'consider' comments copied from 'import-gnulib.config':
# consider using do-release-commit-and-tag
# consider using gendocs
# consider using getdelim
# consider using gethrxtime
# consider using getsubopt (for -D)
# consider using gnu-web-doc-update
# consider using idprov-drop and privset for locate
# consider using long-options
# consider using nproc in xargs
# consider using pmccabe2html
# consider using selinux-h
# consider using gendocs
# consider using sig2str in xargs
# consider using signal (why not: maybe we don't need those features)
# consider using the dev-ino moduile to support -samefile.
# consider removing stpcpy
# We have rpmatch, either use it for -ok and xargs or remove the dependency
# use fileblocks, filemode properly.
# Considered, but no:
# consider using autobuild (the information is not usually interesting for us)
# consider using same-inode (we don't keep a full struct stat for the ref file)
# Modules needed for findutils.
# We need regex to ensure that we can build on platforms like
# Solaris which lack those functions.
# gnulib modules used by this package.
gnulib_modules="
alloca
areadlinkat
argmatch
assert
byteswap
c-strcasestr
c-strstr
canonicalize
cloexec
closein
closeout
ctype
d-ino
d-type
dirent-safer
dirname
dup2
errno
error
faccessat
fchdir
fcntl
fdl
fdopendir
fflush
fileblocks
filemode
fnmatch-gnu
fopen-safer
fts
gcc-attributes
getdelim
getline
getopt-gnu
gettext
gettimeofday
git-version-gen
gpl-3.0
hash
human
idcache
inline
inttypes
isblank
locale
lstat
malloc-gnu
manywarnings
math
mbrtowc
mbscasestr
mbswidth
mbsstr
mktime
modechange
modf
mountlist
open
parse-datetime
pathmax
perror
progname
quotearg
readlink
realloc-gnu
regex
rpmatch
safe-read
save-cwd
savedir
selinux-at
snprintf
stat
stat-macros
stat-size
stat-time
stdarg
stdbool
stddef
stdio
stdint
stdlib
stpcpy
strcasestr
strdup-posix
strftime
string
strndup
strtoull
strtoumax
sys_stat
sys_time
sys_wait
timespec
uname
unlinkat
verify
version-etc
version-etc-fsf
warnings
wchar
wcwidth
xalloc
xalloc-die
xgetcwd
xstrtod
xstrtol
xstrtoumax
year2038
yesno
${maintainer_modules}
"
# Override bootstrap's defaults, with values consistent with
# 'import-gnulib.sh'
local_gl_dir='gnulib-local'
source_base=gl/lib
m4_base=gl/m4
# use 'libgnulib' instead of the default lib$package (=libfindutils)
# 'libgnulib' is mentioned in various 'Makefile.am' files.
gnulib_name=libgnulib
# PO files are committed to findutils, don't auto-update.
SKIP_PO=t
# Create 'gl/Makefile.am' which is mentioned in 'configure.ac'.
hack_gnulib_tool_makefile() {
cat > gl/Makefile.am <<EOF
# Copyright (C) 2004, 2009 Free Software Foundation, Inc.
#
# This file is free software, distributed under the terms of the GNU
# General Public License. As a special exception to the GNU General
# Public License, this file may be distributed as part of a program
# that contains a configuration script generated by Automake, under
# the same distribution terms as the rest of that program.
#
# This file was generated by $0
#
SUBDIRS = lib
EXTRA_DIST = m4/gnulib-cache.m4
EOF
}
# after 'gnulib-tool' is done, create the 'gl/Makefile.am' to be backward
# compatible with 'import-gnulib.sh'.
bootstrap_post_import_hook() {
hack_gnulib_tool_makefile
}
# For compatibility with 'import-gnulib.sh', add gnulib's test directory.
# 'tests/Makefile' is mentioned in 'configure.ac'
gnulib_tool_option_extras="--with-tests"
# 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=wrapf: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
if test $gettext_external = 1; then
# Gettext supplies these files, but we don't need them since
# we don't have an intl subdirectory.
excluded_files='
m4/glibc2.m4
m4/intdiv0.m4
m4/lcmessage.m4
m4/lock.m4
m4/printf-posix.m4
m4/size_max.m4
m4/uintmax_t.m4
m4/ulonglong.m4
m4/visibility.m4
m4/xsize.m4
'
fi
# Build prerequisites
buildreq="\
autoconf 2.59
automake 1.9.6
git 1.5.5
tar -
gettext 0.18.1
"