mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Use gnulib, starting with its physmem and getaddrinfo modules.
New files go into these directories: gnulib/lib gnulib/m4 gnulib/tests * bootstrap: A wrapper around gnulib-tool. * configure.in: Invoke gl_EARLY and gl_INIT, being careful to put gl_EARLY before any macro that uses AC_COMPILE_IFELSE. (AC_OUTPUT): Add lib/Makefile and gl-tests/Makefile. Remove m4/Makefile. * Makefile.am (SUBDIRS): Add gnulib/lib and remove m4. Add gnulib/tests early enough that those tests run before any libvirt unit tests. * m4/Makefile.am: Remove file. Not needed. * src/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib. (LDADDS, libvirt_la_LIBADD): Add ../gnulib/lib/libgnu.la. * src/nodeinfo.c: Include "physmem.h". * qemud/qemud.c, src/remote_internal.c: Include "getaddrinfo.h". (MEMINFO_PATH, linuxNodeInfoMemPopulate): Remove definitions. (virNodeInfoPopulate): Use physmem_total, not linuxNodeInfoMemPopulate. * tests/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib. (LDADDS): Add ../gnulib/lib/libgnu.la. * qemud/Makefile.am (libvirtd_LDADD): Add ../gnulib/lib/libgnu.la. * tests/nodeinfotest.c (linuxTestCompareFiles): No longer read total memory from a file. Update expected output not to include "Memory: NNNN" * tests/nodeinfodata/linux-nodeinfo-1.txt: * tests/nodeinfodata/linux-nodeinfo-2.txt: * tests/nodeinfodata/linux-nodeinfo-3.txt: * tests/nodeinfodata/linux-nodeinfo-4.txt: * tests/nodeinfodata/linux-nodeinfo-5.txt: * tests/nodeinfodata/linux-nodeinfo-6.txt: * src/test.c [WITH_TEST]: Remove definition of _GNU_SOURCE that would conflict with the one now in "config.h". * autogen.sh: Add -I gnulib/m4. * src/conf.c, src/sexpr.c: Don't define _GNU_SOURCE. Instead, include "config.h". * qemud/qemud.c: Remove definition of _GNU_SOURCE. * src/openvz_driver.c: Likewise. * src/qemu_driver.c: Likewise. * src/remote_internal.c: Likewise. * configure.in: Use AC_CONFIG_AUX_DIR(build-aux), so that a bunch of gettextize-generated files go into build-aux/, rather than in the top-level directory. * .cvsignore: Adjust. * build-aux/.cvsignore: New file. Author: Jim Meyering <meyering@redhat.com>
This commit is contained in:
117
bootstrap
Executable file
117
bootstrap
Executable file
@@ -0,0 +1,117 @@
|
||||
#!/bin/sh
|
||||
# Run this after autogen.sh, to pull in all of the gnulib-related bits.
|
||||
# It's important to run *after* autogen.sh, since it updates some of
|
||||
# the same files autogen.sh does, yet those from gnulib are newer,
|
||||
# and match the tests. So if a gnulib bug has been fixed since the
|
||||
# snapshot taken for whatever gettext release you're using, yet you
|
||||
# run "make check" against the wrong version, the corresponding unit
|
||||
# test in gl-tests/ may well fail.
|
||||
|
||||
usage() {
|
||||
echo >&2 "\
|
||||
Usage: $0 [OPTION]...
|
||||
Bootstrap this package from the checked-out sources.
|
||||
|
||||
Options:
|
||||
--gnulib-srcdir=DIRNAME Specify the local directory where gnulib
|
||||
sources reside. Use this if you already
|
||||
have gnulib sources on your machine, and
|
||||
do not want to waste your bandwidth downloading
|
||||
them again.
|
||||
|
||||
If the file bootstrap.conf exists in the current working directory, its
|
||||
contents are read as shell variables to configure the bootstrap.
|
||||
|
||||
Running without arguments will suffice in most cases.
|
||||
"
|
||||
}
|
||||
|
||||
for option
|
||||
do
|
||||
case $option in
|
||||
--help)
|
||||
usage
|
||||
exit;;
|
||||
--gnulib-srcdir=*)
|
||||
GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;
|
||||
*)
|
||||
echo >&2 "$0: $option: unknown option"
|
||||
exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
cleanup_gnulib() {
|
||||
st=$?
|
||||
rm -fr .gnulib
|
||||
exit $st
|
||||
}
|
||||
|
||||
case ${GNULIB_SRCDIR--} in
|
||||
-)
|
||||
if [ ! -d gnulib ]; then
|
||||
echo "$0: getting gnulib files..."
|
||||
|
||||
trap cleanup_gnulib 1 2 13 15
|
||||
|
||||
git clone --depth 1 git://git.sv.gnu.org/gnulib .gnulib ||
|
||||
cleanup_gnulib
|
||||
|
||||
trap - 1 2 13 15
|
||||
fi
|
||||
GNULIB_SRCDIR=.gnulib
|
||||
esac
|
||||
|
||||
gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
|
||||
<$gnulib_tool || exit
|
||||
|
||||
# Tell gnulib to:
|
||||
# put tests in new gnulib/tests/ dir
|
||||
# put *.m4 files in new gnulib/m4/ dir
|
||||
# put *.[ch] files in new gnulib/lib/ dir.
|
||||
# With --avoid=snprintf, we drop support for systems (many!) with
|
||||
# losing snprintf but pull in about 30 fewer files
|
||||
# With the current gnulib and gettext-0.17, the following
|
||||
# files are added to m4/ by both. But gnulib is stable enough
|
||||
# and gettext-0.16.1 is new enough that they are identical.
|
||||
# compiler-flags.m4
|
||||
# inttypes_h.m4
|
||||
# longlong.m4
|
||||
# size_max.m4
|
||||
# stdint_h.m4
|
||||
# wchar_t.m4
|
||||
# wint_t.m4
|
||||
# xsize.m4
|
||||
|
||||
# Note that if we don't exclude the snprintf module, there are two tests
|
||||
# that have incompatible licenses, so we would have to exclude them. Even
|
||||
# excluding those two test modules, find reports a total of 94 added files.
|
||||
# Yes, snprintf has some heavy-duty dependents.
|
||||
# --avoid=snprintf-tests
|
||||
# --avoid=vasnprintf-tests
|
||||
|
||||
avoid='--avoid=snprintf'
|
||||
|
||||
avoid='
|
||||
--avoid=snprintf-tests
|
||||
--avoid=vasnprintf-tests
|
||||
--avoid=alloca-opt-tests
|
||||
'
|
||||
|
||||
$gnulib_tool \
|
||||
--lgpl \
|
||||
$avoid \
|
||||
--with-tests \
|
||||
--m4-base=gnulib/m4 \
|
||||
--source-base=gnulib/lib \
|
||||
--tests-base=gnulib/tests \
|
||||
--import physmem getaddrinfo
|
||||
|
||||
rm -f \
|
||||
.gitignore \
|
||||
gnulib/lib/.gitignore \
|
||||
gnulib/m4/.gitignore \
|
||||
gnulib/tests/.gitignore
|
||||
|
||||
(cd gnulib/lib &&
|
||||
(cat .cvsignore; \
|
||||
ls -1 *.in.h|sed 's/\.in\.h/.h/') | sort -u > .t; mv .t .cvsignore)
|
||||
Reference in New Issue
Block a user