#
# Copyright (C) 2006-2015 Red Hat, Inc. All rights reserved.
#
# This file is part of LVM2.
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions
# of the GNU General Public License v.2.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@

ifeq ("@APPLIB@", "yes")
	SOURCES = lvm2_activation_generator_systemd_red_hat.c
	TARGETS = lvm2_activation_generator_systemd_red_hat
endif

include $(top_builddir)/make.tmpl

ifeq ("@APPLIB@", "yes")
	DEPLIBS += $(top_builddir)/liblvm/liblvm2app.so $(top_builddir)/libdm/libdevmapper.so
	LDFLAGS += -L$(top_builddir)/liblvm
ifeq ("@BUILD_DMEVENTD@", "yes")
	LDFLAGS += -Wl,-rpath-link,$(top_builddir)/daemons/dmeventd
endif
	LVMLIBS = @LVM2APP_LIB@ -ldevmapper
endif

LVM_SCRIPTS = lvmdump.sh lvmconf.sh
DM_SCRIPTS =

ifeq ("@FSADM@", "yes")
	LVM_SCRIPTS += fsadm.sh
endif

ifeq ("@BLKDEACTIVATE@", "yes")
	DM_SCRIPTS += blkdeactivate.sh
endif

OCF_SCRIPTS =
ifeq ("@OCF@", "yes")
        OCF_SCRIPTS += VolumeGroup.ocf
endif

vpath %.sh $(srcdir)
vpath %.ocf $(srcdir)

%_install: %.sh
	$(INSTALL_PROGRAM) -D $< $(sbindir)/$(basename $(<F))

%_install: %.ocf
	$(INSTALL_DIR) $(ocf_scriptdir)
	$(INSTALL_SCRIPT) $< $(ocf_scriptdir)/$(basename $(<F))

install_lvm2: $(LVM_SCRIPTS:.sh=_install)
install_device-mapper: $(DM_SCRIPTS:.sh=_install)

install_ocf: $(OCF_SCRIPTS:.ocf=_install)

install: install_lvm2 install_ocf install_device-mapper

# FIXME Customise for other distributions
install_initscripts:
	$(INSTALL_DIR) $(initdir)
ifeq ("@BUILD_DMEVENTD@", "yes")
	$(INSTALL_SCRIPT) lvm2_monitoring_init_red_hat $(initdir)/lvm2-monitor
endif
ifeq ("@BUILD_LVMETAD@", "yes")
	$(INSTALL_SCRIPT) lvm2_lvmetad_init_red_hat $(initdir)/lvm2-lvmetad
endif
ifeq ("@BUILD_LVMPOLLD@", "yes")
	$(INSTALL_SCRIPT) lvm2_lvmpolld_init_red_hat $(initdir)/lvm2-lvmpolld
endif
ifneq ("@CLVMD@", "none")
	$(INSTALL_SCRIPT) clvmd_init_red_hat $(initdir)/clvmd
endif
ifeq ("@BUILD_CMIRRORD@", "yes")
	$(INSTALL_SCRIPT) cmirrord_init_red_hat $(initdir)/cmirrord
endif
ifeq ("@BLKDEACTIVATE@", "yes")
	$(INSTALL_SCRIPT) blk_availability_init_red_hat $(initdir)/blk-availability
endif

CFLAGS_lvm2_activation_generator_systemd_red_hat.o += $(EXTRA_EXEC_CFLAGS)

lvm2_activation_generator_systemd_red_hat: $(OBJECTS) $(DEPLIBS)
	$(CC) -o $@ $(OBJECTS) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) $(LVMLIBS)

install_systemd_generators:
	$(INSTALL_DIR) $(systemd_generator_dir)
ifeq ("@APPLIB@", "yes")
	$(INSTALL_PROGRAM) lvm2_activation_generator_systemd_red_hat $(systemd_generator_dir)/lvm2-activation-generator
else
	@echo "WARNING: LVM2 activation systemd generator not installed." \
	      "It requires the LVM2 application library to be built as well."
endif

install_systemd_units:	install_dbus_service
	$(INSTALL_DIR) $(systemd_unit_dir)
ifeq ("@BUILD_DMEVENTD@", "yes")
	$(INSTALL_DATA) dm_event_systemd_red_hat.socket $(systemd_unit_dir)/dm-event.socket
	$(INSTALL_DATA) dm_event_systemd_red_hat.service $(systemd_unit_dir)/dm-event.service
	$(INSTALL_DATA) lvm2_monitoring_systemd_red_hat.service $(systemd_unit_dir)/lvm2-monitor.service
endif
ifeq ("@BLKDEACTIVATE@", "yes")
	$(INSTALL_DATA) blk_availability_systemd_red_hat.service $(systemd_unit_dir)/blk-availability.service
endif
ifeq ("@BUILD_LVMETAD@", "yes")
	$(INSTALL_DATA) lvm2_lvmetad_systemd_red_hat.socket $(systemd_unit_dir)/lvm2-lvmetad.socket
	$(INSTALL_DATA) lvm2_lvmetad_systemd_red_hat.service $(systemd_unit_dir)/lvm2-lvmetad.service
	$(INSTALL_DATA) lvm2_pvscan_systemd_red_hat@.service $(systemd_unit_dir)/lvm2-pvscan@.service
endif
ifeq ("@BUILD_LVMPOLLD@", "yes")
	$(INSTALL_DATA) lvm2_lvmpolld_systemd_red_hat.socket $(systemd_unit_dir)/lvm2-lvmpolld.socket
	$(INSTALL_DATA) lvm2_lvmpolld_systemd_red_hat.service $(systemd_unit_dir)/lvm2-lvmpolld.service
endif
ifeq ("@BUILD_LVMLOCKD@", "yes")
	$(INSTALL_DATA) lvm2_lvmlockd_systemd_red_hat.service $(systemd_unit_dir)/lvm2-lvmlockd.service
	$(INSTALL_DATA) lvm2_lvmlocking_systemd_red_hat.service $(systemd_unit_dir)/lvm2-lvmlocking.service
endif
ifneq ("@CLVMD@", "none")
	$(INSTALL_DATA) lvm2_clvmd_systemd_red_hat.service $(systemd_unit_dir)/lvm2-clvmd.service
	$(INSTALL_DATA) lvm2_cluster_activation_systemd_red_hat.service $(systemd_unit_dir)/lvm2-cluster-activation.service
	$(INSTALL_SCRIPT) lvm2_cluster_activation_red_hat.sh $(systemd_dir)/lvm2-cluster-activation
endif
ifeq ("@BUILD_CMIRRORD@", "yes")
	$(INSTALL_DATA) lvm2_cmirrord_systemd_red_hat.service $(systemd_unit_dir)/lvm2-cmirrord.service
endif
ifeq ("@BUILD_LVMDBUSD@", "yes")
	$(INSTALL_DATA) lvm2_lvmdbusd_systemd_red_hat.service $(systemd_unit_dir)/lvm2-lvmdbusd.service
endif

ifeq ("@BUILD_LVMDBUSD@", "yes")
install_dbus_service:
	$(INSTALL_DIR) $(dbusconfdir)
	$(INSTALL_DIR) $(dbusservicedir)
	$(INSTALL_DATA) $(top_srcdir)/scripts/com.redhat.lvmdbus1.conf $(dbusconfdir)
	$(INSTALL_DATA) com.redhat.lvmdbus1.service $(dbusservicedir)

install_systemd_units:	install_dbus_service
endif

install_tmpfiles_configuration:
	$(INSTALL_DIR) $(tmpfiles_dir)
	$(INSTALL_DATA) lvm2_tmpfiles_red_hat.conf $(tmpfiles_dir)/lvm2.conf

DISTCLEAN_TARGETS += \
	blkdeactivate.sh \
	blk_availability_init_red_hat \
	blk_availability_systemd_red_hat.service \
	clvmd_init_red_hat \
	cmirrord_init_red_hat \
	com.redhat.lvmdbus1.service \
	dm_event_systemd_red_hat.service \
	dm_event_systemd_red_hat.socket \
	lvmdump.sh \
	lvm2_cluster_activation_red_hat.sh \
	lvm2_cluster_activation_systemd_red_hat.service \
	lvm2_clvmd_systemd_red_hat.service \
	lvm2_cmirrord_systemd_red_hat.service \
	lvm2_lvmdbusd_systemd_red_hat.service \
	lvm2_lvmetad_init_red_hat \
	lvm2_lvmpolld_init_red_hat \
	lvm2_lvmetad_systemd_red_hat.service \
	lvm2_lvmetad_systemd_red_hat.socket \
	lvm2_lvmpolld_systemd_red_hat.service \
	lvm2_lvmpolld_systemd_red_hat.socket \
	lvm2_lvmlockd_systemd_red_hat.service \
	lvm2_lvmlocking_systemd_red_hat.service \
	lvm2_monitoring_init_red_hat \
	lvm2_monitoring_systemd_red_hat.service \
	lvm2_pvscan_systemd_red_hat@.service \
	lvm2_tmpfiles_red_hat.conf
