#
# Makefile for the kernel software RAID and LVM drivers.
#

O_TARGET	:= mddev.o

export-objs	:= md.o xor.o dm-table.o dm-target.o kcopyd.o dm-daemon.o \
		   dm-log.o dm-io.o dm.o

list-multi	:= lvm-mod.o dm-mod.o dm-mirror-mod.o
lvm-mod-objs	:= lvm.o lvm-snap.o lvm-fs.o
dm-mod-objs	:= dm.o dm-table.o dm-target.o dm-ioctl.o \
		   dm-linear.o dm-stripe.o dm-snapshot.o dm-exception-store.o \
		   kcopyd.o dm-daemon.o dm-io.o
dm-mirror-mod-objs := dm-raid1.o dm-log.o
dm-multipath-mod-objs := dm-path-selector.o dm-mpath.o

# Note: link order is important.  All raid personalities
# and xor.o must come before md.o, as they each initialise 
# themselves, and md.o may use the personalities when it 
# auto-initialised.

obj-$(CONFIG_MD_LINEAR)			+= linear.o
obj-$(CONFIG_MD_RAID0)			+= raid0.o
obj-$(CONFIG_MD_RAID1)			+= raid1.o
obj-$(CONFIG_MD_RAID5)			+= raid5.o xor.o
obj-$(CONFIG_MD_MULTIPATH)		+= multipath.o
obj-$(CONFIG_BLK_DEV_MD)		+= md.o

obj-$(CONFIG_BLK_DEV_LVM)		+= lvm-mod.o

obj-$(CONFIG_BLK_DEV_DM)		+= dm-mod.o
obj-$(CONFIG_BLK_DEV_DM_MIRROR)		+= dm-mirror.o
obj-$(CONFIG_BLK_DEV_DM_MULTIPATH)	+= dm-multipath.o
obj-$(CONFIG_BLK_DEV_DM_BBR)		+= dm-bbr.o
obj-$(CONFIG_BLK_DEV_DM_SPARSE)		+= dm-sparse.o

include $(TOPDIR)/Rules.make

lvm-mod.o: $(lvm-mod-objs)
	$(LD) -r -o $@ $(lvm-mod-objs)

dm-mod.o: $(dm-mod-objs)
	$(LD) -r -o $@ $(dm-mod-objs)

dm-mirror.o: $(dm-mirror-mod-objs)
	$(LD) -r -o $@ $(dm-mirror-mod-objs)

dm-multipath.o: $(dm-multipath-mod-objs)
	$(LD) -r -o $@ $(dm-multipath-mod-objs)

