mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-26 03:21:44 +03:00
ad42b34b1b
Every source file is currently built twice by libtool, once for the shared library and once for the static library. Static libs are not commonly packaged by distros and slow down compilation time by more than 50% compared to a shared-only build time. Time for 'make -j 4': shared only: 2 mins 9 secs shared + static: 3 mins 26 secs Time for non-parallel make shared only: 3 mins 32 secs shared + static: 5 mins 41 secs Those few people who really want them, can pass --enable-static to configure Disabling them by default requires use of LT_INIT, but for compat with RHEL5 we can't rely on that. So we conditionally use LT_INIT, but fallback to AM_PROG_LIBTOOL if not present.
115 lines
2.5 KiB
Bash
Executable File
115 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
set -v
|
|
|
|
# Make things clean.
|
|
|
|
test -n "$1" && RESULTS=$1 || RESULTS=results.log
|
|
: ${AUTOBUILD_INSTALL_ROOT=$HOME/builder}
|
|
|
|
test -f Makefile && make -k distclean || :
|
|
rm -rf coverage
|
|
|
|
rm -rf build
|
|
mkdir build
|
|
cd build
|
|
|
|
# Run with options not normally exercised by the rpm build, for
|
|
# more complete code coverage.
|
|
../autogen.sh --prefix="$AUTOBUILD_INSTALL_ROOT" \
|
|
--enable-test-coverage \
|
|
--disable-nls \
|
|
--enable-werror \
|
|
--enable-static
|
|
|
|
# If the MAKEFLAGS envvar does not yet include a -j option,
|
|
# add -jN where N depends on the number of processors.
|
|
case $MAKEFLAGS in
|
|
*-j*) ;;
|
|
*) n=$(getconf _NPROCESSORS_ONLN 2> /dev/null)
|
|
test "$n" -gt 0 || n=1
|
|
n=$(expr $n + 1)
|
|
MAKEFLAGS="$MAKEFLAGS -j$n"
|
|
export MAKEFLAGS
|
|
;;
|
|
esac
|
|
|
|
make
|
|
make install
|
|
|
|
# set -o pipefail is a bashism; this use of exec is the POSIX alternative
|
|
exec 3>&1
|
|
st=$(
|
|
exec 4>&1 >&3
|
|
{ make check syntax-check 2>&1 3>&- 4>&-; echo $? >&4; } | tee "$RESULTS"
|
|
)
|
|
exec 3>&-
|
|
test "$st" = 0
|
|
test -x /usr/bin/lcov && make cov
|
|
|
|
rm -f *.tar.gz
|
|
make dist
|
|
|
|
if test -n "$AUTOBUILD_COUNTER" ; then
|
|
EXTRA_RELEASE=".auto$AUTOBUILD_COUNTER"
|
|
else
|
|
NOW=`date +"%s"`
|
|
EXTRA_RELEASE=".$USER$NOW"
|
|
fi
|
|
|
|
if test -f /usr/bin/rpmbuild ; then
|
|
rpmbuild --nodeps \
|
|
--define "extra_release $EXTRA_RELEASE" \
|
|
--define "_sourcedir `pwd`" \
|
|
-ba --clean libvirt.spec
|
|
fi
|
|
|
|
# Test mingw32 cross-compile
|
|
if test -x /usr/bin/i686-w64-mingw32-gcc ; then
|
|
make distclean
|
|
|
|
PKG_CONFIG_PATH="$AUTOBUILD_INSTALL_ROOT/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig" \
|
|
CC="i686-w64-mingw32-gcc" \
|
|
../configure \
|
|
--build=$(uname -m)-w64-linux \
|
|
--host=i686-w64-mingw32 \
|
|
--prefix="$AUTOBUILD_INSTALL_ROOT/i686-w64-mingw32/sys-root/mingw" \
|
|
--enable-werror \
|
|
--without-libvirtd \
|
|
--without-python
|
|
|
|
make
|
|
make install
|
|
|
|
fi
|
|
|
|
# Test mingw64 cross-compile
|
|
if test -x /usr/bin/x86_64-w64-mingw32-gcc ; then
|
|
make distclean
|
|
|
|
PKG_CONFIG_PATH="$AUTOBUILD_INSTALL_ROOT/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig" \
|
|
CC="x86_64-w64-mingw32-gcc" \
|
|
../configure \
|
|
--build=$(uname -m)-w64-linux \
|
|
--host=x86_64-w64-mingw32 \
|
|
--prefix="$AUTOBUILD_INSTALL_ROOT/x86_64-w64-mingw32/sys-root/mingw" \
|
|
--enable-werror \
|
|
--without-libvirtd \
|
|
--without-python
|
|
|
|
make
|
|
make install
|
|
|
|
fi
|
|
|
|
|
|
if test -x /usr/bin/i686-w64-mingw32-gcc && test -x /usr/bin/x86_64-w64-mingw32-gcc ; then
|
|
if test -f /usr/bin/rpmbuild ; then
|
|
rpmbuild --nodeps \
|
|
--define "extra_release $EXTRA_RELEASE" \
|
|
--define "_sourcedir `pwd`" \
|
|
-ba --clean mingw-libvirt.spec
|
|
fi
|
|
fi
|