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: Eric Blake <eblake@redhat.com>
This commit is contained in:
Eric Blake
2013-09-03 20:39:16 -06:00
parent d7d8fef4b9
commit ec81852f46
7 changed files with 278 additions and 270 deletions

View File

@@ -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)