Files
xen/tools/hotplug/Linux/systemd/Makefile
T
Olaf Hering eac3f5122f tools/hotplug: fix race during xen.conf creation
A make -j8 will call the xen.conf rule twice. The move-if-changed
macro may fail if the tmp file was already removed by the other make
process. Fix this by let the all target depend on install.
Also remove the generated file with make clean.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
[ ijc -- fixed s/of/if/ typo in commit message ]
2014-10-06 15:50:58 +01:00

69 lines
2.0 KiB
Makefile

XEN_ROOT = $(CURDIR)/../../../..
include $(XEN_ROOT)/tools/Rules.mk
XEN_SYSTEMD_MODULES = xen.conf
XEN_SYSTEMD_MOUNT = proc-xen.mount
XEN_SYSTEMD_MOUNT += var-lib-xenstored.mount
XEN_SYSTEMD_SOCKET = xenstored.socket
XEN_SYSTEMD_SOCKET += xenstored_ro.socket
XEN_SYSTEMD_SERVICE = xenstored.service
XEN_SYSTEMD_SERVICE += xenconsoled.service
XEN_SYSTEMD_SERVICE += xen-qemu-dom0-disk-backend.service
XEN_SYSTEMD_SERVICE += xendomains.service
XEN_SYSTEMD_SERVICE += xen-watchdog.service
ALL_XEN_SYSTEMD = $(XEN_SYSTEMD_MODULES) \
$(XEN_SYSTEMD_MOUNT) \
$(XEN_SYSTEMD_SOCKET) \
$(XEN_SYSTEMD_SERVICE)
.PHONY: all
all: install
.PHONY: clean
clean:
rm -f $(ALL_XEN_SYSTEMD)
.PHONY: install
install: $(ALL_XEN_SYSTEMD)
[ -d $(DESTDIR)$(XEN_SYSTEMD_DIR) ] || \
$(INSTALL_DIR) $(DESTDIR)$(XEN_SYSTEMD_DIR)
[ -d $(DESTDIR)$(XEN_SYSTEMD_MODULES_LOAD) ] || \
$(INSTALL_DIR) $(DESTDIR)$(XEN_SYSTEMD_MODULES_LOAD)
$(INSTALL_DATA) *.socket $(DESTDIR)$(XEN_SYSTEMD_DIR)
$(INSTALL_DATA) *.service $(DESTDIR)$(XEN_SYSTEMD_DIR)
$(INSTALL_DATA) *.mount $(DESTDIR)$(XEN_SYSTEMD_DIR)
$(INSTALL_DATA) *.conf $(DESTDIR)$(XEN_SYSTEMD_MODULES_LOAD)
$(XEN_SYSTEMD_MODULES): $(XEN_ROOT)/config/$(XEN_OS).modules
@set -e ; \
IFS='' ;\
cat $(XEN_ROOT)/config/$(XEN_OS).modules | ( \
while read l ; do \
if echo $${l} | egrep -q "^#" ; then \
continue ;\
fi ;\
if echo "$${l}" | egrep -q "\|" ; then \
m1=$${l%%|*} ;\
m2=$${l#*|} ;\
# Systemd modules-load.d lacks support ;\
# for module replacement options, we ;\
# need to add that support upstream but ;\
# its best instead to ensure this file ;\
# is no longer needed. Some folks ;\
# however have reported issues with ;\
# some modules automatically loading ;\
# so we just load all necessary xen ;\
# modules and for replacements we load ;\
# the latest module ;\
echo "$$m1" ;\
echo "$$m2" ;\
else \
echo "$$l" ;\
fi ;\
done \
) > $@