提交 ec81852f 编写于 作者: E Eric Blake

build: enforce makefile conditional style

Automake has builtin support to prevent botched conditional nesting,
but only if you use:
if FOO
else !FOO
endif !FOO

An example error message when using the wrong name:

daemon/Makefile.am:378: error: else reminder (LIBVIRT_INIT_SCRIPT_SYSTEMD_TRUE) incompatible with current conditional: LIBVIRT_INIT_SCRIPT_SYSTEMD_FALSE
daemon/Makefile.am:381: error: endif reminder (LIBVIRT_INIT_SCRIPT_SYSTEMD_TRUE) incompatible with current conditional: LIBVIRT_INIT_SCRIPT_SYSTEMD_FALSE

As our makefiles tend to have quite a bit of nested conditionals,
it's better to take advantage of the benefits of the build system
double-checking that our conditionals are well-nested, but that
requires a syntax check to enforce our usage style.

Alas, unlike C preprocessor and spec files, we can't use indentation
to make it easier to see how deeply nesting goes.

* cfg.mk (sc_makefile_conditionals): New rule.
* daemon/Makefile.am: Enforce the style.
* gnulib/tests/Makefile.am: Likewise.
* python/Makefile.am: Likewise.
* src/Makefile.am: Likewise.
* tests/Makefile.am: Likewise.
* tools/Makefile.am: Likewise.
Signed-off-by: NEric Blake <eblake@redhat.com>
上级 d7d8fef4
......@@ -692,6 +692,14 @@ sc_spec_indentation:
echo '$(ME): skipping test $@: cppi not installed' 1>&2; \
fi
# Nested conditionals are easier to understand if we enforce that endifs
# can be paired back to the if
sc_makefile_conditionals:
@prohibit='(else|endif)($$| *#)' \
in_vc_files='Makefile\.am' \
halt='match "if FOO" with "endif FOO" in Makefiles' \
$(_sc_search_regexp)
# Long lines can be harder to diff; too long, and git send-email chokes.
# For now, only enforce line length on files where we have intentionally
# fixed things and don't want to regress.
......
......@@ -142,7 +142,7 @@ libvirtd_LDADD = \
if WITH_DTRACE_PROBES
libvirtd_LDADD += ../src/libvirt_probes.lo
endif
endif WITH_DTRACE_PROBES
libvirtd_LDADD += \
../src/libvirt-lxc.la \
......@@ -153,53 +153,53 @@ if WITH_QEMU
libvirtd_LDADD += ../src/libvirt_driver_qemu.la
if WITH_DTRACE_PROBES
libvirtd_LDADD += ../src/libvirt_qemu_probes.lo
endif
endif
endif WITH_DTRACE_PROBES
endif WITH_QEMU
if WITH_LXC
libvirtd_LDADD += ../src/libvirt_driver_lxc.la
endif
endif WITH_LXC
if WITH_XEN
libvirtd_LDADD += ../src/libvirt_driver_xen.la
endif
endif WITH_XEN
if WITH_LIBXL
libvirtd_LDADD += ../src/libvirt_driver_libxl.la
endif
endif WITH_LIBXL
if WITH_UML
libvirtd_LDADD += ../src/libvirt_driver_uml.la
endif
endif WITH_UML
if WITH_VBOX
libvirtd_LDADD += ../src/libvirt_driver_vbox.la
endif
endif WITH_VBOX
if WITH_STORAGE
libvirtd_LDADD += ../src/libvirt_driver_storage.la
endif
endif WITH_STORAGE
if WITH_NETWORK
libvirtd_LDADD += ../src/libvirt_driver_network.la
endif
endif WITH_NETWORK
if WITH_INTERFACE
libvirtd_LDADD += ../src/libvirt_driver_interface.la
endif
endif WITH_INTERFACE
if WITH_NODE_DEVICES
libvirtd_LDADD += ../src/libvirt_driver_nodedev.la
endif
endif WITH_NODE_DEVICES
if WITH_SECRETS
libvirtd_LDADD += ../src/libvirt_driver_secret.la
endif
endif WITH_SECRETS
if WITH_NWFILTER
libvirtd_LDADD += ../src/libvirt_driver_nwfilter.la
endif
endif
endif WITH_NWFILTER
endif ! WITH_DRIVER_MODULES
libvirtd_LDADD += ../src/libvirt.la
......@@ -207,11 +207,11 @@ if WITH_POLKIT
if WITH_POLKIT0
policydir = $(datadir)/PolicyKit/policy
policyauth = auth_admin_keep_session
else
else ! WITH_POLKIT0
policydir = $(datadir)/polkit-1/actions
policyauth = auth_admin_keep
endif
endif
endif ! WITH_POLKIT0
endif WITH_POLKIT
libvirtd.policy: libvirtd.policy.in $(top_builddir)/config.status
$(AM_V_GEN) sed \
......@@ -243,10 +243,10 @@ install-data-polkit::
uninstall-data-polkit::
rm -f $(DESTDIR)$(policydir)/org.libvirt.unix.policy
rmdir $(DESTDIR)$(policydir) || :
else
else ! WITH_POLKIT
install-data-polkit::
uninstall-data-polkit::
endif
endif ! WITH_POLKIT
remote.c: $(DAEMON_GENERATED)
remote.h: $(DAEMON_GENERATED)
......@@ -323,10 +323,10 @@ install-sysctl:
uninstall-sysctl:
rm -f $(DESTDIR)$(prefix)/lib/sysctl.d/libvirtd.conf
rmdir $(DESTDIR)$(prefix)/lib/sysctl.d || :
else
else ! WITH_SYSCTL
install-sysctl:
uninstall-sysctl:
endif
endif ! WITH_SYSCTL
if LIBVIRT_INIT_SCRIPT_RED_HAT
......@@ -340,10 +340,10 @@ install-init-redhat: install-sysconfig libvirtd.init
uninstall-init-redhat: uninstall-sysconfig
rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd
rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d || :
else
else ! LIBVIRT_INIT_SCRIPT_RED_HAT
install-init-redhat:
uninstall-init-redhat:
endif # LIBVIRT_INIT_SCRIPT_RED_HAT
endif ! LIBVIRT_INIT_SCRIPT_RED_HAT
if LIBVIRT_INIT_SCRIPT_UPSTART
......@@ -356,10 +356,10 @@ install-init-upstart: install-sysconfig
uninstall-init-upstart: uninstall-sysconfig
rm -f $(DESTDIR)$(sysconfdir)/event.d/libvirtd
rmdir $(DESTDIR)$(sysconfdir)/event.d || :
else
else ! LIBVIRT_INIT_SCRIPT_UPSTART
install-init-upstart:
uninstall-init-upstart:
endif # LIBVIRT_INIT_SCRIPT_UPSTART
endif ! LIBVIRT_INIT_SCRIPT_UPSTART
if LIBVIRT_INIT_SCRIPT_SYSTEMD
......@@ -375,10 +375,10 @@ install-init-systemd: install-sysconfig libvirtd.service
uninstall-init-systemd: uninstall-sysconfig
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
else
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
install-init-systemd:
uninstall-init-systemd:
endif # LIBVIRT_INIT_SCRIPT_SYSTEMD
endif ! LIBVIRT_INIT_SCRIPT_SYSTEMD
libvirtd.init: libvirtd.init.in $(top_builddir)/config.status
$(AM_V_GEN)sed \
......@@ -415,10 +415,10 @@ check-augeas: test_libvirtd.aug
# are used by nearly every other library.
libvirtd_LDADD += ../gnulib/lib/libgnu.la $(LIBSOCKET)
else # WITH_LIBVIRTD
else ! WITH_LIBVIRTD
install-data-local: install-data-sasl
uninstall-local:: uninstall-data-sasl
endif # WITH_LIBVIRTD
endif ! WITH_LIBVIRTD
POD2MAN = pod2man -c "Virtualization Support" \
-r "$(PACKAGE)-$(VERSION)" -s 8
......@@ -438,10 +438,10 @@ install-data-sasl:
uninstall-data-sasl:
rm -f $(DESTDIR)$(sysconfdir)/sasl2/libvirt.conf
rmdir $(DESTDIR)$(sysconfdir)/sasl2/ || :
else
else ! WITH_SASL
install-data-sasl:
uninstall-data-sasl:
endif
endif ! WITH_SASL
CLEANFILES += $(BUILT_SOURCES) $(man8_MANS)
......
......@@ -26,7 +26,7 @@ if WITH_EXPENSIVE_TESTS
## Automake requires that at least one conditional call out all tests to
## be run, for those tests to be shipped in the tarball
TESTS = $(GNULIB_TESTS)
endif
endif WITH_EXPENSIVE_TESTS
## However, we want to change the set of tests based on the make environment,
## where the default was set at configure time. Use GNU make constructs to
## hide our actions from Automake, so we don't get it too confused.
......
......@@ -162,9 +162,9 @@ uninstall-local:
CLEANFILES= $(GENERATED) $(QEMU_GENERATED) $(LXC_GENERATED) $(GENERATE).stamp \
*.pyc
else
else ! WITH_PYTHON
all:
endif
endif ! WITH_PYTHON
dummy:
......
此差异已折叠。
......@@ -41,12 +41,12 @@ AM_CFLAGS = \
if WITH_DRIVER_MODULES
INCLUDES += \
-DTEST_DRIVER_DIR=\"$(top_builddir)/src/.libs\"
endif
endif WITH_DRIVER_MODULES
PROBES_O =
if WITH_DTRACE_PROBES
PROBES_O += ../src/libvirt_probes.lo
endif
endif WITH_DTRACE_PROBES
LDADDS = \
$(WARN_CFLAGS) \
......@@ -135,24 +135,24 @@ test_programs = virshtest sockettest \
if WITH_DBUS
test_programs += virdbustest \
virsystemdtest
endif
endif WITH_DBUS
if WITH_GNUTLS
test_programs += virnettlscontexttest virnettlssessiontest
endif
endif WITH_GNUTLS
if WITH_SECDRIVER_SELINUX
if WITH_ATTR
test_programs += securityselinuxtest
if WITH_QEMU
test_programs += securityselinuxlabeltest
endif
endif
endif
endif WITH_QEMU
endif WITH_ATTR
endif WITH_SECDRIVER_SELINUX
if WITH_DRIVER_MODULES
test_programs += virdrivermoduletest
endif
endif WITH_DRIVER_MODULES
# This is a fake SSH we use from virnetsockettest
ssh_SOURCES = ssh.c
......@@ -161,53 +161,53 @@ ssh_LDADD = $(COVERAGE_LDFLAGS)
if WITH_XEN
test_programs += xml2sexprtest sexpr2xmltest \
xmconfigtest xencapstest statstest reconnect
endif
endif WITH_XEN
if WITH_QEMU
test_programs += qemuxml2argvtest qemuxml2xmltest qemuxmlnstest \
qemuargv2xmltest qemuhelptest domainsnapshotxml2xmltest \
qemumonitortest qemumonitorjsontest qemuhotplugtest \
qemuagenttest
endif
endif WITH_QEMU
if WITH_LXC
test_programs += lxcxml2xmltest
endif
endif WITH_LXC
if WITH_OPENVZ
test_programs += openvzutilstest
endif
endif WITH_OPENVZ
if WITH_ESX
test_programs += esxutilstest
endif
endif WITH_ESX
if WITH_VMX
test_programs += vmx2xmltest xml2vmxtest
endif
endif WITH_VMX
if WITH_CIL
test_programs += object-locking
endif
endif WITH_CIL
if WITH_YAJL
test_programs += jsontest
endif
endif WITH_YAJL
test_programs += networkxml2xmltest networkxml2xmlupdatetest
if WITH_NETWORK
test_programs += networkxml2conftest
endif
endif WITH_NETWORK
if WITH_STORAGE_SHEEPDOG
test_programs += storagebackendsheepdogtest
endif
endif WITH_STORAGE_SHEEPDOG
test_programs += nwfilterxml2xmltest
if WITH_STORAGE
test_programs += storagevolxml2argvtest
endif
endif WITH_STORAGE
test_programs += storagevolxml2xmltest storagepoolxml2xmltest
......@@ -251,7 +251,7 @@ test_scripts += \
test_programs += \
eventtest \
libvirtdconftest
else
else ! WITH_LIBVIRTD
EXTRA_DIST += \
test_conf.sh \
cpuset \
......@@ -269,13 +269,13 @@ EXTRA_DIST += \
virsh-synopsis \
virsh-undefine \
$(NULL)
endif
endif ! WITH_LIBVIRTD
if WITH_SECDRIVER_APPARMOR
test_scripts += virt-aa-helper-test
else
else ! WITH_SECDRIVER_APPARMOR
EXTRA_DIST += virt-aa-helper-test
endif
endif ! WITH_SECDRIVER_APPARMOR
EXTRA_DIST += $(test_scripts)
......@@ -285,19 +285,19 @@ test_libraries = libshunload.la \
$(NULL)
if WITH_QEMU
test_libraries += libqemumonitortestutils.la
endif
endif WITH_QEMU
if WITH_DBUS
test_libraries += virsystemdmock.la
endif
endif WITH_DBUS
if WITH_TESTS
noinst_PROGRAMS = $(test_programs) $(test_helpers)
noinst_LTLIBRARIES = $(test_libraries)
else
else ! WITH_TESTS
check_PROGRAMS = $(test_programs) $(test_helpers)
check_LTLIBRARIES = $(test_libraries)
endif
endif ! WITH_TESTS
TESTS = $(test_programs) \
$(test_scripts)
......@@ -369,11 +369,11 @@ statstest_SOURCES = \
statstest.c testutils.h testutils.c
statstest_LDADD = $(xen_LDADDS)
else
else ! WITH_XEN
EXTRA_DIST += xml2sexprtest.c sexpr2xmltest.c xmconfigtest.c \
xencapstest.c reconnect.c \
testutilsxen.c testutilsxen.h
endif
endif ! WITH_XEN
QEMUMONITORTESTUTILS_SOURCES = \
qemumonitortestutils.c \
......@@ -387,10 +387,10 @@ libqemumonitortestutils_la_SOURCES = $(QEMUMONITORTESTUTILS_SOURCES)
qemu_LDADDS = ../src/libvirt_driver_qemu_impl.la
if WITH_NETWORK
qemu_LDADDS += ../src/libvirt_driver_network_impl.la
endif
endif WITH_NETWORK
if WITH_DTRACE_PROBES
qemu_LDADDS += ../src/libvirt_qemu_probes.lo
endif
endif WITH_DTRACE_PROBES
qemu_LDADDS += $(LDADDS)
qemuxml2argvtest_SOURCES = \
......@@ -444,39 +444,39 @@ domainsnapshotxml2xmltest_SOURCES = \
domainsnapshotxml2xmltest.c testutilsqemu.c testutilsqemu.h \
testutils.c testutils.h
domainsnapshotxml2xmltest_LDADD = $(qemu_LDADDS)
else
else ! WITH_QEMU
EXTRA_DIST += qemuxml2argvtest.c qemuxml2xmltest.c qemuargv2xmltest.c \
qemuxmlnstest.c qemuhelptest.c domainsnapshotxml2xmltest.c \
qemumonitortest.c testutilsqemu.c testutilsqemu.h \
qemumonitorjsontest.c qemuhotplugtest.c \
qemuagenttest.c \
$(QEMUMONITORTESTUTILS_SOURCES)
endif
endif ! WITH_QEMU
if WITH_LXC
lxc_LDADDS = ../src/libvirt_driver_lxc_impl.la
if WITH_NETWORK
lxc_LDADDS += ../src/libvirt_driver_network_impl.la
endif
endif WITH_NETWORK
lxc_LDADDS += $(LDADDS)
lxcxml2xmltest_SOURCES = \
lxcxml2xmltest.c testutilslxc.c testutilslxc.h \
testutils.c testutils.h
lxcxml2xmltest_LDADD = $(lxc_LDADDS)
else
else ! WITH_LXC
EXTRA_DIST += lxcxml2xmltest.c testutilslxc.c testutilslxc.h
endif
endif ! WITH_LXC
if WITH_OPENVZ
openvzutilstest_SOURCES = \
openvzutilstest.c \
testutils.c testutils.h
openvzutilstest_LDADD = $(LDADDS)
else
else ! WITH_OPENVZ
EXTRA_DIST += openvzutilstest.c
endif
endif ! WITH_OPENVZ
EXTRA_DIST += openvzutilstest.conf
if WITH_ESX
......@@ -484,9 +484,9 @@ esxutilstest_SOURCES = \
esxutilstest.c \
testutils.c testutils.h
esxutilstest_LDADD = $(LDADDS)
else
else ! WITH_ESX
EXTRA_DIST += esxutilstest.c
endif
endif ! WITH_ESX
if WITH_VMX
vmx2xmltest_SOURCES = \
......@@ -498,9 +498,9 @@ xml2vmxtest_SOURCES = \
xml2vmxtest.c \
testutils.c testutils.h
xml2vmxtest_LDADD = $(LDADDS)
else
else ! WITH_VMX
EXTRA_DIST += vmx2xmltest.c xml2vmxtest.c
endif
endif ! WITH_VMX
networkxml2xmltest_SOURCES = \
networkxml2xmltest.c \
......@@ -517,9 +517,9 @@ networkxml2conftest_SOURCES = \
networkxml2conftest.c \
testutils.c testutils.h
networkxml2conftest_LDADD = ../src/libvirt_driver_network_impl.la $(LDADDS)
else
else ! WITH_NETWORK
EXTRA_DIST += networkxml2conftest.c
endif
endif ! WITH_NETWORK
if WITH_STORAGE_SHEEPDOG
storagebackendsheepdogtest_SOURCES = \
......@@ -527,9 +527,9 @@ storagebackendsheepdogtest_SOURCES = \
testutils.c testutils.h
storagebackendsheepdogtest_LDADD = \
../src/libvirt_driver_storage_impl.la $(LDADDS)
else
else ! WITH_STORAGE_SHEEPDOG
EXTRA_DIST += storagebackendsheepdogtest.c
endif
endif ! WITH_STORAGE_SHEEPDOG
nwfilterxml2xmltest_SOURCES = \
nwfilterxml2xmltest.c \
......@@ -542,9 +542,9 @@ storagevolxml2argvtest_SOURCES = \
testutils.c testutils.h
storagevolxml2argvtest_LDADD = \
../src/libvirt_driver_storage_impl.la $(LDADDS)
else
else ! WITH_STORAGE
EXTRA_DIST += storagevolxml2argvtest.c
endif
endif ! WITH_STORAGE
storagevolxml2xmltest_SOURCES = \
storagevolxml2xmltest.c \
......@@ -598,9 +598,9 @@ libvirtdconftest_SOURCES = \
libvirtdconftest.c testutils.h testutils.c \
../daemon/libvirtd-config.c
libvirtdconftest_LDADD = $(LDADDS)
else
else ! WITH_LIBVIRTD
EXTRA_DIST += libvirtdconftest.c
endif
endif ! WITH_LIBVIRTD
virnetmessagetest_SOURCES = \
virnetmessagetest.c testutils.h testutils.c
......@@ -627,15 +627,15 @@ virnettlscontexttest_SOURCES += pkix_asn1_tab.c
virnettlscontexttest_LDADD += -ltasn1
virnettlssessiontest_SOURCES += pkix_asn1_tab.c
virnettlssessiontest_LDADD += -ltasn1
else
else ! HAVE_LIBTASN1
EXTRA_DIST += pkix_asn1_tab.c
endif
else
endif ! HAVE_LIBTASN1
else ! WITH_GNUTLS
EXTRA_DIST += \
virnettlscontexttest.c virnettlssessiontest.c \
virnettlshelpers.h virnettlshelpers.c \
testutils.h testutils.c pkix_asn1_tab.c
endif
endif ! WITH_GNUTLS
virtimetest_SOURCES = \
virtimetest.c testutils.h testutils.c
......@@ -698,9 +698,9 @@ virsystemdmock_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
virsystemdmock_la_LDFLAGS = -module -avoid-version \
-rpath /evil/libtool/hack/to/force/shared/lib/creation
else
else ! WITH_DBUS
EXTRA_DIST += virdbustest.c virsystemdtest.c virsystemdmock.c
endif
endif ! WITH_DBUS
viruritest_SOURCES = \
viruritest.c testutils.h testutils.c
......@@ -722,9 +722,9 @@ if WITH_SECDRIVER_SELINUX
if WITH_ATTR
if WITH_TESTS
noinst_LTLIBRARIES += libsecurityselinuxhelper.la
else
else ! WITH_TESTS
check_LTLIBRARIES += libsecurityselinuxhelper.la
endif
endif ! WITH_TESTS
libsecurityselinuxhelper_la_SOURCES = \
securityselinuxhelper.c
......@@ -744,9 +744,9 @@ securityselinuxlabeltest_SOURCES = \
securityselinuxlabeltest_LDADD = $(qemu_LDADDS) $(SELINUX_LIBS)
securityselinuxlabeltest_DEPENDENCIES = libsecurityselinuxhelper.la \
../src/libvirt.la
endif
endif
endif
endif WITH_QEMU
endif WITH_ATTR
endif WITH_SECDRIVER_SELINUX
EXTRA_DIST += securityselinuxtest.c securityselinuxlabeltest.c \
securityselinuxhelper.c
......@@ -782,13 +782,13 @@ if WITH_DRIVER_MODULES
virdrivermoduletest_SOURCES = \
virdrivermoduletest.c testutils.h testutils.c
virdrivermoduletest_LDADD = $(LDADDS)
endif
endif WITH_DRIVER_MODULES
if WITH_LIBVIRTD
eventtest_SOURCES = \
eventtest.c testutils.h testutils.c
eventtest_LDADD = -lrt $(LDADDS)
endif
endif WITH_LIBVIRTD
libshunload_la_SOURCES = shunloadhelper.c
libshunload_la_LIBADD = ../src/libvirt.la
......@@ -830,9 +830,9 @@ object-locking: object-locking.cmx object-locking-files.txt
object-locking-files.txt:
find $(top_builddir)/src/ -name '*.i' > $@
else
else ! WITH_CIL
EXTRA_DIST += object-locking.ml
endif
endif ! WITH_CIL
CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.cmi *.cmx \
object-locking-files.txt
......@@ -69,7 +69,7 @@ libexec_SCRIPTS = libvirt-guests.sh
if WITH_SANLOCK
sbin_SCRIPTS = virt-sanlock-cleanup
DISTCLEANFILES += virt-sanlock-cleanup
endif
endif WITH_SANLOCK
if WITH_LXC
conf_DATA += virt-login-shell.conf
......@@ -87,7 +87,7 @@ dist_man1_MANS += virt-login-shell.1
endif WITH_LXC
if WITH_SANLOCK
dist_man8_MANS = virt-sanlock-cleanup.8
endif
endif WITH_SANLOCK
virt-xml-validate: virt-xml-validate.in Makefile
$(AM_V_GEN)sed -e 's|[@]schemadir@|$(pkgdatadir)/schemas|g' \
......@@ -229,7 +229,7 @@ virsh_win_icon.$(OBJEXT): virsh_win_icon.rc
$(AM_V_GEN)$(WINDRES) \
--input-format rc --input $< \
--output-format coff --output $@
endif
endif WITH_WIN_ICON
virt-login-shell.1: virt-login-shell.pod $(top_srcdir)/configure.ac
$(AM_V_GEN)$(POD2MAN) $< $(srcdir)/$@ \
......@@ -270,10 +270,10 @@ if LIBVIRT_INIT_SCRIPT_RED_HAT
BUILT_SOURCES += libvirt-guests.init
install-init: install-sysconfig install-initscript
uninstall-init: uninstall-sysconfig uninstall-initscript
else
else ! LIBVIRT_INIT_SCRIPT_RED_HAT
install-init:
uninstall-init:
endif # LIBVIRT_INIT_SCRIPT_RED_HAT
endif ! LIBVIRT_INIT_SCRIPT_RED_HAT
libvirt-guests.sh: libvirt-guests.sh.in $(top_builddir)/config.status
$(AM_V_GEN)sed \
......@@ -311,10 +311,10 @@ uninstall-systemd: uninstall-sysconfig
BUILT_SOURCES += libvirt-guests.service
else
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
install-systemd:
uninstall-systemd:
endif # LIBVIRT_INIT_SCRIPT_SYSTEMD
endif ! LIBVIRT_INIT_SCRIPT_SYSTEMD
libvirt-guests.service: libvirt-guests.service.in $(top_builddir)/config.status
$(AM_V_GEN)sed \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册