2010-02-23 03:01:32 +03:00
# Bootstrap configuration.
2013-01-02 22:10:42 +04:00
# Copyright (C) 2010-2013 Red Hat, Inc.
2010-02-23 03:01:32 +03:00
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 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 Lesser General Public
2012-09-21 02:30:55 +04:00
# License along with this library. If not, see
2012-07-27 02:58:02 +04:00
# <http://www.gnu.org/licenses/>.
2010-02-23 03:01:32 +03:00
# gnulib modules used by this package.
gnulib_modules='
2011-06-29 01:13:20 +04:00
accept
2010-02-23 03:01:32 +03:00
areadlink
2013-01-02 22:10:42 +04:00
autobuild
2010-02-23 03:01:32 +03:00
base64
2011-06-29 01:13:20 +04:00
bind
2012-01-18 20:10:43 +04:00
bitrotate
2011-04-14 22:48:03 +04:00
byteswap
2010-02-23 03:01:32 +03:00
c-ctype
2011-03-31 06:26:27 +04:00
c-strcase
c-strcasestr
2011-07-08 03:42:05 +04:00
calloc-posix
2010-02-23 03:01:32 +03:00
canonicalize-lgpl
2011-01-12 23:18:37 +03:00
chown
2012-09-04 20:57:25 +04:00
clock-time
2010-02-23 03:01:32 +03:00
close
connect
2010-11-16 17:54:17 +03:00
configmake
2010-03-05 01:28:40 +03:00
count-one-bits
2010-08-08 22:45:12 +04:00
crypto/md5
2012-08-14 19:46:08 +04:00
crypto/sha256
2010-02-23 03:01:32 +03:00
dirname-lgpl
2011-07-28 15:07:56 +04:00
environ
2012-09-06 02:27:42 +04:00
execinfo
2011-07-27 00:22:55 +04:00
fclose
2011-07-07 18:17:21 +04:00
fcntl
2010-06-03 00:21:45 +04:00
fcntl-h
2011-10-25 02:40:05 +04:00
fdatasync
2011-07-12 03:22:20 +04:00
ffs
2012-09-18 23:53:15 +04:00
ffsl
2011-04-19 17:39:57 +04:00
fnmatch
2011-09-16 19:12:07 +04:00
fsync
2010-09-01 02:27:24 +04:00
func
2010-02-23 03:01:32 +03:00
getaddrinfo
2011-04-29 21:14:23 +04:00
getcwd-lgpl
2010-02-23 03:01:32 +03:00
gethostname
getpass
2011-06-29 01:13:20 +04:00
getpeername
getsockname
2010-05-11 02:56:34 +04:00
gettext-h
2010-06-25 00:15:55 +04:00
gettimeofday
2010-02-23 03:01:32 +03:00
gitlog-to-changelog
gnumakefile
ignore-value
inet_pton
2011-06-24 22:24:44 +04:00
intprops
2010-02-23 03:01:32 +03:00
ioctl
2012-05-28 16:48:26 +04:00
isatty
2011-09-16 19:12:07 +04:00
largefile
2012-08-14 21:36:38 +04:00
ldexp
2011-06-29 01:13:20 +04:00
listen
2012-08-11 23:13:00 +04:00
localeconv
2010-02-23 03:01:32 +03:00
maintainer-makefile
2010-07-16 19:04:05 +04:00
manywarnings
2013-05-22 03:47:48 +04:00
mgetgroups
2013-05-17 16:30:37 +04:00
mkdtemp
2012-10-31 18:13:47 +04:00
mkostemp
mkostemps
2010-02-23 03:01:32 +03:00
mktempd
2012-09-06 02:27:42 +04:00
net_if
2010-05-11 19:32:19 +04:00
netdb
2011-04-01 02:00:20 +04:00
nonblocking
2011-11-04 00:56:13 +04:00
openpty
2011-04-20 23:56:50 +04:00
passfd
2010-02-23 03:01:32 +03:00
perror
physmem
2010-12-11 01:49:52 +03:00
pipe-posix
2011-04-06 18:10:28 +04:00
pipe2
2010-02-23 03:01:32 +03:00
poll
posix-shell
2010-04-29 06:39:11 +04:00
pthread
2011-07-06 18:46:15 +04:00
pthread_sigmask
2010-02-23 03:01:32 +03:00
recv
2012-04-04 14:56:04 +04:00
regex
2010-02-23 03:01:32 +03:00
random_r
2010-05-04 01:00:43 +04:00
sched
2013-10-09 13:52:39 +04:00
secure_getenv
2010-02-23 03:01:32 +03:00
send
2013-02-16 02:39:33 +04:00
setenv
2010-02-23 03:01:32 +03:00
setsockopt
2010-12-24 05:26:15 +03:00
sigaction
sigpipe
2010-09-01 02:27:24 +04:00
snprintf
2010-02-23 03:01:32 +03:00
socket
2012-07-25 11:43:37 +04:00
stat-time
2011-04-30 20:44:42 +04:00
stdarg
2010-02-23 03:01:32 +03:00
stpcpy
strchrnul
2011-06-30 21:57:42 +04:00
strdup-posix
2010-02-23 03:01:32 +03:00
strndup
strerror
2010-12-24 05:26:15 +03:00
strerror_r-posix
2010-04-07 13:23:53 +04:00
strptime
2010-02-23 03:01:32 +03:00
strsep
2010-04-15 04:03:05 +04:00
strtok_r
2010-02-23 03:01:32 +03:00
sys_stat
2010-04-29 07:31:16 +04:00
sys_wait
2010-09-22 22:08:58 +04:00
termios
2010-02-23 03:01:32 +03:00
time_r
2010-04-07 13:23:53 +04:00
timegm
2011-11-04 00:56:13 +04:00
ttyname_r
2010-04-29 07:06:46 +04:00
uname
2010-02-23 03:01:32 +03:00
useless-if-before-free
2010-04-13 01:56:19 +04:00
usleep
2010-02-23 03:01:32 +03:00
vasprintf
verify
vc-list-files
2011-06-30 21:57:42 +04:00
vsnprintf
2010-12-11 01:49:52 +03:00
waitpid
2010-07-16 19:04:05 +04:00
warnings
2010-02-23 03:01:32 +03:00
'
# Additional xgettext options to use. Use "\\\newline" to break lines.
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
--flag=virAsprintf:2:c-format\\\
--from-code=UTF-8\\\
'
2010-02-23 03:01:33 +03:00
# This is not a GNU package, so the default bug address is invalid,
# and the translation project is not in use.
MSGID_BUGS_ADDRESS=libvir-list@redhat.com
COPYRIGHT_HOLDER='Red Hat, Inc.'
SKIP_PO=true
2010-03-17 21:22:50 +03:00
# Enable copy-mode for MSYS/MinGW. MSYS' ln doesn't work well in the way
# bootstrap uses it with relative paths.
if test -n "$MSYSTEM"; then
copy=true
fi
2010-02-23 03:01:32 +03:00
# 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/uintmax_t.m4
m4/ulonglong.m4
m4/visibility.m4
'
fi
# Tell gnulib to:
# require LGPLv2+
2011-11-09 04:06:27 +04:00
# apply any local diffs in gnulib/local/ dir
2013-10-08 01:44:45 +04:00
# put *.m4 files in m4/ dir
2011-11-09 04:06:27 +04:00
# put *.[ch] files in new gnulib/lib/ dir
# import gnulib tests in new gnulib/tests/ dir
2010-02-23 03:01:32 +03:00
gnulib_name=libgnu
2013-10-08 01:44:45 +04:00
m4_base=m4
2010-02-23 03:01:32 +03:00
source_base=gnulib/lib
tests_base=gnulib/tests
gnulib_tool_option_extras="\
--lgpl=2\
--with-tests\
2012-01-12 04:19:01 +04:00
--makefile-name=gnulib.mk\
2011-11-04 00:56:13 +04:00
--avoid=pt_chown\
2012-03-21 03:04:38 +04:00
--avoid=lock-tests\
2010-02-23 03:01:32 +03:00
"
2011-11-09 04:06:27 +04:00
local_gl_dir=gnulib/local
2010-02-23 03:01:32 +03:00
# Build prerequisites
2011-11-19 03:35:54 +04:00
# Note that some of these programs are only required for 'make dist' to
# succeed from a fresh git checkout; not all of these programs are
# required to run 'make dist' on a tarball. As a special case, we want
# to require the equivalent of the Fedora python-devel package, but
# RHEL 5 lacks the witness python-config package; we hack around that
# old environment below.
2010-02-23 03:01:32 +03:00
buildreq="\
autoconf 2.59
automake 1.9.6
autopoint -
2012-04-25 07:40:08 +04:00
gettext 0.17
2010-02-24 21:38:44 +03:00
git 1.5.5
2010-02-23 03:01:32 +03:00
gzip -
libtool -
2011-12-07 20:26:57 +04:00
patch -
2010-02-23 03:01:32 +03:00
perl 5.5
2010-10-05 19:10:31 +04:00
pkg-config -
2011-11-19 03:35:54 +04:00
python-config -
2011-05-06 17:11:32 +04:00
rpcgen -
2010-02-23 03:01:32 +03:00
tar -
2011-11-19 03:35:54 +04:00
xmllint -
xsltproc -
2010-02-23 03:01:32 +03:00
"
2011-12-07 20:26:57 +04:00
# Use rpm as a fallback to bypass the bootstrap probe for python-config,
# for the sake of RHEL 5; without requiring it on newer systems that
# have python-config to begin with.
if `(${PYTHON_CONFIG-python-config} --version;
test $? -lt 126 || rpm -q python-devel) >/dev/null 2>&1`; then
2011-11-19 03:35:54 +04:00
PYTHON_CONFIG=true
fi
2010-02-23 03:01:32 +03:00
2012-10-13 03:50:19 +04:00
# Automake requires that ChangeLog and AUTHORS exist.
touch AUTHORS ChangeLog || exit 1
2010-02-23 03:01:33 +03:00
2011-02-19 00:40:35 +03:00
# Override bootstrap's list - we don't use mdate-sh or texinfo.tex.
gnulib_extra_files="
2013-07-19 01:47:41 +04:00
build-aux/install-sh
build-aux/depcomp
build-aux/config.guess
build-aux/config.sub
2011-02-19 00:40:35 +03:00
doc/INSTALL
"
2010-02-23 03:01:33 +03:00
maint: avoid bootstrap warning
I noticed that in a fresh checkout, autogen.sh generated the
following output, but continued on with execution:
autoreconf: running: automake --add-missing --copy --force-missing
gnulib/tests/Makefile.am:28: TESTS was already defined in condition TRUE, which includes condition WITH_EXPENSIVE_TESTS ...
gnulib/tests/gnulib.mk:28: ... `TESTS' previously defined here
gnulib/tests/Makefile.am:19: `gnulib/tests/gnulib.mk' included from here
and after the run, line 28 of gnulib.mk lists GNULIB_TESTS, not TESTS.
After more investigation, I found that it is because gnulib bootstrap
provides two hooks, one before automake, and the other after; we used
the one that ran after, and were then rerunning automake ourselves;
and the warning was from the first run. But a manual second run is
pointless if we use the right hook in the first place.
The wrong function name has been latent since commit 38c9440, and we
tried to work around it in commit 6cbab7c, but it took commit 70363ea
to finally change output enough for me to realize the root cause.
* bootstrap.conf (bootstrap_epilogue): Rename...
(bootstrap_post_import_hook): ...so that it gets run before automake.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-08-15 03:35:24 +04:00
bootstrap_post_import_hook()
2010-02-23 03:01:33 +03:00
{
2011-07-28 16:55:21 +04:00
# Change paths in gnulib/tests/gnulib.mk from "../../.." to "../..",
maint: avoid bootstrap warning
I noticed that in a fresh checkout, autogen.sh generated the
following output, but continued on with execution:
autoreconf: running: automake --add-missing --copy --force-missing
gnulib/tests/Makefile.am:28: TESTS was already defined in condition TRUE, which includes condition WITH_EXPENSIVE_TESTS ...
gnulib/tests/gnulib.mk:28: ... `TESTS' previously defined here
gnulib/tests/Makefile.am:19: `gnulib/tests/gnulib.mk' included from here
and after the run, line 28 of gnulib.mk lists GNULIB_TESTS, not TESTS.
After more investigation, I found that it is because gnulib bootstrap
provides two hooks, one before automake, and the other after; we used
the one that ran after, and were then rerunning automake ourselves;
and the warning was from the first run. But a manual second run is
pointless if we use the right hook in the first place.
The wrong function name has been latent since commit 38c9440, and we
tried to work around it in commit 6cbab7c, but it took commit 70363ea
to finally change output enough for me to realize the root cause.
* bootstrap.conf (bootstrap_epilogue): Rename...
(bootstrap_post_import_hook): ...so that it gets run before automake.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-08-15 03:35:24 +04:00
# and make tests conditional by changing "TESTS" to "GNULIB_TESTS".
2011-07-28 16:55:21 +04:00
m=gnulib/tests/gnulib.mk
build: add configure option to disable gnulib tests
The gnulib testsuite is relatively stable - the only times it is
likely to have a test change from pass to fail is on a gnulib
submodule update or a major system change (such as moving from
Fedora 18 to 19, or other large change to libc). While it is an
important test for end users on arbitrary machines (to make sure
that the portability glue works for their machine), it mostly
wastes time for development testing (as most developers aren't
making any of the major changes that would cause gnulib tests
to alter behavior). Thus, it pays to make the tests optional
at configure time, defaulting to off for development, on for
tarballs, with autobuilders requesting it to be on. It also
helps to allow a make-time override, via VIR_TEST_EXPENSIVE=[01]
(much the way automake sets up V=[01] for overriding the configure
time default of how verbose to be).
Automake has some pretty hard-coded magic with regards to the
TESTS variable; I had quite a job figuring out how to keep
'make distcheck' passing regardless of the configure option
setting in use, while still disabling the tests at runtime
when I did not configure them on and did not use the override
variable. Thankfully, we require GNU make, which lets me
hide some information from Automake's magic handling of TESTS.
* bootstrap.conf (bootstrap_epilogue): Munge gnulib test variable.
* configure.ac (--enable-expensive-tests): Add new enable switch.
(VIR_TEST_EXPENSIVE_DEFAULT, WITH_EXPENSIVE_TESTS): Set new
witnesses.
* gnulib/tests/Makefile.am (TESTS): Make tests conditional on
configure settings and the VIR_TEST_EXPENSIVE variable.
* tests/Makefile.am (TESTS_ENVIRONMENT): Expose VIR_TEST_EXPENSIVE
to all tests.
* autobuild.sh: Enable all tests during autobuilds.
* libvirt.spec.in (%configure): Likewise.
* mingw-libvirt.spec.in (%mingw_configure): Likewise.
* docs/hacking.html.in: Document the option.
* HACKING: Regenerate.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-07-31 17:18:58 +04:00
sed 's,\.\./\.\./\.\.,../..,g; s/^TESTS /GNULIB_TESTS /' $m > $m-t
2010-02-23 03:01:33 +03:00
mv -f $m-t $m
}