mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-10-25 03:34:00 +03:00
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
|