| # |
| # Copyright (C) 2009-2010 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@ |
| |
| include $(top_builddir)/make.tmpl |
| |
| DM_RULES=10-dm.rules 13-dm-disk.rules 95-dm-notify.rules |
| LVM_RULES=11-dm-lvm.rules |
| ifeq ("@BUILD_LVMETAD@", "yes") |
| LVM_RULES+=69-dm-lvm-metad.rules |
| endif |
| |
| DM_DIR=$(shell grep "\#define DM_DIR" $(top_srcdir)/libdm/misc/dm-ioctl.h | awk '{print $$3}') |
| |
| ifeq ("@UDEV_RULE_EXEC_DETECTION@", "yes") |
| SBIN=\$$env{DM_SBIN_PATH} |
| DM_EXEC_RULE=ENV{DM_SBIN_PATH}=\"\/sbin\"\\nTEST!=\"\$$env{DM_SBIN_PATH}\/dmsetup\", ENV{DM_SBIN_PATH}=\"\/usr\/sbin\" |
| DM_EXEC=\$$env{DM_SBIN_PATH} |
| LVM_EXEC_RULE=ENV{LVM_SBIN_PATH}=\"\/sbin\"\\nTEST!=\"\$$env{LVM_SBIN_PATH}\/lvm\", ENV{LVM_SBIN_PATH}=\"\/usr\/sbin\" |
| LVM_EXEC=\$$env{LVM_SBIN_PATH} |
| else |
| SBIN="@sbindir@" |
| DM_EXEC_RULE="" |
| DM_EXEC=${SBIN} |
| LVM_EXEC_RULE="" |
| LVM_EXEC=${SBIN} |
| endif |
| |
| ifeq ("@UDEV_HAS_BUILTIN_BLKID@", "yes") |
| BLKID_RULE=IMPORT{builtin}=\"blkid\" |
| else |
| BLKID_RULE=IMPORT{program}=\"${SBIN}\/blkid -o udev -p \$$tempnode\" |
| endif |
| |
| ifeq ("@UDEV_SYSTEMD_BACKGROUND_JOBS@", "yes") |
| PVSCAN_RULE=ACTION\!=\"remove\", ENV{LVM_PV_GONE}==\"1\", RUN\+=\"@bindir@/systemd-run $(LVM_EXEC)\/lvm pvscan --cache \$$major\:\$$minor\", GOTO=\"lvm_end\"\nENV{SYSTEMD_ALIAS}=\"\/dev\/block\/\$$major:\$$minor\"\nENV{ID_MODEL}=\"LVM PV \$$env{ID_FS_UUID_ENC} on \/dev\/\$$name\"\nENV{SYSTEMD_WANTS}\+=\"lvm2-pvscan@\$$major:\$$minor.service\" |
| else |
| PVSCAN_RULE=RUN\+\=\"$(LVM_EXEC)/lvm pvscan --background --cache --activate ay --major \$$major --minor \$$minor\", ENV{LVM_SCANNED}=\"1\" |
| endif |
| |
| %.rules: $(srcdir)/%.rules.in |
| $(SED) -e "s+(DM_DIR)+$(DM_DIR)+;s+(BLKID_RULE)+$(BLKID_RULE)+;s+(PVSCAN_RULE)+$(PVSCAN_RULE)+;s+(DM_EXEC_RULE)+$(DM_EXEC_RULE)+;s+(DM_EXEC)+$(DM_EXEC)+;s+(LVM_EXEC_RULE)+$(LVM_EXEC_RULE)+;s+(LVM_EXEC)+$(LVM_EXEC)+;" $< >$@ |
| |
| %_install: %.rules |
| $(INSTALL_DATA) -D $< $(udevdir)/$(<F) |
| |
| all: $(DM_RULES) $(LVM_RULES) |
| CLEAN_TARGETS = $(DM_RULES) $(LVM_RULES) |
| install_device-mapper: $(DM_RULES:.rules=_install) |
| install_lvm2: $(LVM_RULES:.rules=_install) |
| |
| install: install_lvm2 install_device-mapper |