mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-31 02:13:27 +00:00
89f8902a68
The Travis CI system uses Docker containers for its build environment. These are pre-built and hosted under quay.io/libvirt so that developers can use them for reproducing problems locally. Getting the right Docker command syntax to use them, however, is not entirely easy. This patch addresses that usability issue by introducing some make targets. To run a simple build (aka 'make all') using the Fedora 28 container: make ci-build@fedora-28 To also run unit tests make ci-check@fedora-28 This is just syntax sugar for calling the previous command with a custom make target make ci-build@fedora-28 CI_MAKE_ARGS="check" To do a purely interactive build it is possible to request a shell make ci-shell@fedora-28 To do a MinGW build, it is currently possible to use the fedora-rawhide image and request a different configure script make ci-build@fedora-rawhide CI_CONFIGURE=mingw32-configure It is also possible to do cross compiled builds via the Debian containers make ci-build@debian-9-cross-s390x In all cases the GIT source tree is cloned locally into a 'ci-tree/src' sub-directory which is then exposed to the container at '/src'. It is setup to use a separate build directory so the build takes place in a subdir '/src/build'. A source tree build can be requested instead by passing an empty string CI_VPATH= arg to make. The make rules are kept in a standalone file that is included into the main Makefile.am, so that it is possible to run them without having to invoke autotools first. It is neccessary to disable the gnulib submodule commit check because this fails due to the way we have manually cloned submodule repos as primary git repos with their own .git directory, instead of letting git treat them as submodules in the top level .git directory. make[1]: Entering directory '/src/build' fatal: Not a valid object name origin fatal: run_command returned non-zero status for .gnulib . maint.mk: found non-public submodule commit make: *** [/src/maint.mk:1448: public-submodule-commit] Error 1 Reviewed-by: Andrea Bolognani <abologna@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
111 lines
3.0 KiB
Makefile
111 lines
3.0 KiB
Makefile
## Process this file with automake to produce Makefile.in
|
|
|
|
## Copyright (C) 2005-2013 Red Hat, Inc.
|
|
##
|
|
## 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 library 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
|
|
## Lesser General Public License for more details.
|
|
##
|
|
## You should have received a copy of the GNU Lesser General Public
|
|
## License along with this library. If not, see
|
|
## <http://www.gnu.org/licenses/>.
|
|
|
|
SUBDIRS = . gnulib/lib include/libvirt src tools docs gnulib/tests \
|
|
tests po examples
|
|
|
|
XZ_OPT ?= -v -T0
|
|
export XZ_OPT
|
|
|
|
# have gnulib 'make coverage' output to 'cov' dir
|
|
COVERAGE_OUT = "cov"
|
|
|
|
ACLOCAL_AMFLAGS = -I m4
|
|
|
|
EXTRA_DIST = \
|
|
config-post.h \
|
|
libvirt.spec libvirt.spec.in \
|
|
mingw-libvirt.spec.in \
|
|
libvirt.pc.in \
|
|
libvirt-qemu.pc.in \
|
|
libvirt-lxc.pc.in \
|
|
libvirt-admin.pc.in \
|
|
Makefile.nonreentrant \
|
|
autogen.sh \
|
|
cfg.mk \
|
|
run.in \
|
|
README.md \
|
|
AUTHORS.in \
|
|
build-aux/augeas-gentest.pl \
|
|
build-aux/check-spacing.pl \
|
|
build-aux/gitlog-to-changelog \
|
|
build-aux/header-ifdef.pl \
|
|
build-aux/minimize-po.pl \
|
|
build-aux/mock-noinline.pl \
|
|
build-aux/prohibit-duplicate-header.pl \
|
|
build-aux/useless-if-before-free \
|
|
build-aux/vc-list-files \
|
|
$(NULL)
|
|
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
pkgconfig_DATA = libvirt.pc libvirt-qemu.pc libvirt-lxc.pc libvirt-admin.pc
|
|
|
|
NEWS: \
|
|
$(srcdir)/docs/news.xml \
|
|
$(srcdir)/docs/news-ascii.xsl \
|
|
$(srcdir)/docs/reformat-news.py
|
|
$(AM_V_GEN) \
|
|
if [ -x $(XSLTPROC) ]; then \
|
|
$(XSLTPROC) --nonet \
|
|
$(srcdir)/docs/news-ascii.xsl \
|
|
$(srcdir)/docs/news.xml \
|
|
>$@-tmp \
|
|
|| { rm -f $@-tmp; exit 1; }; \
|
|
$(PYTHON) $(srcdir)/docs/reformat-news.py $@-tmp >$@ \
|
|
|| { rm -f $@-tmp; exit 1; }; \
|
|
rm -f $@-tmp; \
|
|
fi
|
|
EXTRA_DIST += \
|
|
$(srcdir)/docs/news.xml \
|
|
$(srcdir)/docs/news-ascii.xsl \
|
|
$(srcdir)/docs/reformat-news.py
|
|
|
|
rpm: clean
|
|
@(unset CDPATH ; $(MAKE) dist && rpmbuild -ta $(distdir).tar.xz)
|
|
|
|
srpm: clean
|
|
@(unset CDPATH ; $(MAKE) dist && rpmbuild -ts $(distdir).tar.xz)
|
|
|
|
check-local: all tests
|
|
|
|
check-access:
|
|
@($(MAKE) $(AM_MAKEFLAGS) -C tests check-access)
|
|
|
|
MAINTAINERCLEANFILES = .git-module-status
|
|
|
|
dist-hook: gen-AUTHORS
|
|
|
|
.PHONY: gen-AUTHORS
|
|
gen-AUTHORS:
|
|
$(AM_V_GEN)\
|
|
if test -d $(srcdir)/.git; then \
|
|
( \
|
|
cd $(srcdir) && \
|
|
git log --pretty=format:'%aN <%aE>' | sort -u \
|
|
) > all.list && \
|
|
sort -u $(srcdir)/AUTHORS.in > maint.list && \
|
|
comm -23 all.list maint.list > contrib.list && \
|
|
contrib="`cat contrib.list`" && \
|
|
perl -p -e "s/#contributorslist#// and print '$$contrib'" \
|
|
< $(srcdir)/AUTHORS.in > $(distdir)/AUTHORS-tmp && \
|
|
mv -f $(distdir)/AUTHORS-tmp $(distdir)/AUTHORS && \
|
|
rm -f all.list maint.list contrib.list; \
|
|
fi
|
|
|
|
include Makefile.ci
|