# vim: filetype=automake

NODE_DEVICE_DRIVER_SOURCES = \
	node_device/node_device_driver.c \
	node_device/node_device_driver.h \
	$(NULL)

NODE_DEVICE_DRIVER_HAL_SOURCES = \
	node_device/node_device_hal.c \
	node_device/node_device_hal.h \
	$(NULL)

NODE_DEVICE_DRIVER_UDEV_SOURCES = \
	node_device/node_device_udev.c \
	node_device/node_device_udev.h \
	$(NULL)

DRIVER_SOURCE_FILES += \
	$(NODE_DEVICE_DRIVER_SOURCES) \
	$(NODE_DEVICE_DRIVER_HAL_SOURCES) \
	$(NODE_DEVICE_DRIVER_UDEV_SOURCES) \
	$(NULL)

STATEFUL_DRIVER_SOURCE_FILES += \
	$(NODE_DEVICE_DRIVER_SOURCES) \
	$(NULL)

EXTRA_DIST += \
	$(NODE_DEVICE_DRIVER_SOURCES) \
	$(NODE_DEVICE_DRIVER_HAL_SOURCES) \
	$(NODE_DEVICE_DRIVER_UDEV_SOURCES) \
	$(NULL)


if WITH_NODE_DEVICES
# Needed to keep automake quiet about conditionals
mod_LTLIBRARIES += libvirt_driver_nodedev.la
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)

libvirt_driver_nodedev_la_CFLAGS = \
	-I$(srcdir)/access \
	-I$(srcdir)/conf \
	$(AM_CFLAGS) \
	$(LIBNL_CFLAGS) \
	$(NULL)
libvirt_driver_nodedev_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF)
libvirt_driver_nodedev_la_LIBADD = \
	libvirt.la \
	$(GLIB_LIBS) \
	$(NULL)

if WITH_HAL
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
libvirt_driver_nodedev_la_LIBADD += $(HAL_LIBS)
endif WITH_HAL
if WITH_UDEV
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_UDEV_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += \
	$(UDEV_CFLAGS) \
	$(PCIACCESS_CFLAGS) \
	$(NULL)
libvirt_driver_nodedev_la_LIBADD += \
	$(UDEV_LIBS) \
	$(PCIACCESS_LIBS) \
	$(NULL)
endif WITH_UDEV

libvirt_driver_nodedev_la_LIBADD += ../gnulib/lib/libgnu.la

sbin_PROGRAMS += virtnodedevd

nodist_conf_DATA += node_device/virtnodedevd.conf
augeas_DATA += node_device/virtnodedevd.aug
augeastest_DATA += node_device/test_virtnodedevd.aug
CLEANFILES += node_device/virtnodedevd.aug

virtnodedevd_SOURCES = $(REMOTE_DAEMON_SOURCES)
virtnodedevd_CFLAGS = \
       $(REMOTE_DAEMON_CFLAGS) \
       -DDAEMON_NAME="\"virtnodedevd\"" \
       -DMODULE_NAME="\"nodedev\"" \
       $(NULL)
virtnodedevd_LDFLAGS = $(REMOTE_DAEMON_LD_FLAGS)
virtnodedevd_LDADD = $(REMOTE_DAEMON_LD_ADD)

SYSTEMD_UNIT_FILES += \
	virtnodedevd.service \
	virtnodedevd.socket \
	virtnodedevd-ro.socket \
	virtnodedevd-admin.socket \
	$(NULL)
SYSTEMD_UNIT_FILES_IN += \
	node_device/virtnodedevd.service.in \
	$(NULL)

VIRTNODEDEVD_UNIT_VARS = \
	$(VIRTD_UNIT_VARS) \
	-e 's|[@]name[@]|Libvirt nodedev|g' \
	-e 's|[@]service[@]|virtnodedevd|g' \
	-e 's|[@]sockprefix[@]|virtnodedevd|g' \
	$(NULL)

virtnodedevd.service: node_device/virtnodedevd.service.in \
		$(top_builddir)/config.status
	$(AM_V_GEN)$(SED) $(VIRTNODEDEVD_UNIT_VARS) $< > $@-t && mv $@-t $@

virtnodedev%.socket: remote/libvirt%.socket.in \
		$(top_builddir)/config.status
	$(AM_V_GEN)$(SED) $(VIRTNODEDEVD_UNIT_VARS) $< > $@-t && mv $@-t $@

node_device/virtnodedevd.conf: remote/libvirtd.conf.in
	$(AM_V_GEN)$(SED) \
		-e '/[@]CUT_ENABLE_IP[@]/,/[@]END[@]/d' \
		-e 's/[@]DAEMON_NAME[@]/virtnodedevd/' \
		$< > $@

node_device/virtnodedevd.aug: remote/libvirtd.aug.in
	$(AM_V_GEN)$(SED) \
		-e '/[@]CUT_ENABLE_IP[@]/,/[@]END[@]/d' \
		-e 's/[@]DAEMON_NAME[@]/virtnodedevd/' \
		-e 's/[@]DAEMON_NAME_UC[@]/Virtnodedevd/' \
		$< > $@

node_device/test_virtnodedevd.aug: remote/test_libvirtd.aug.in \
		node_device/virtnodedevd.conf $(AUG_GENTEST_SCRIPT)
	$(AM_V_GEN)$(AUG_GENTEST) node_device/virtnodedevd.conf \
		$(srcdir)/remote/test_libvirtd.aug.in | \
		$(SED) \
		-e '/[@]CUT_ENABLE_IP[@]/,/[@]END[@]/d' \
		-e 's/[@]DAEMON_NAME[@]/virtnodedevd/' \
		-e 's/[@]DAEMON_NAME_UC[@]/Virtnodedevd/' \
		> $@ || rm -f $@

endif WITH_NODE_DEVICES
