#
# 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
list-multi	:= lvm-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-io-objs	:= syncio.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_BBR)	+= dm-bbr.o dm-io.o
obj-$(CONFIG_BLK_DEV_DM_SPARSE)	+= dm-sparse.o dm-io.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-io.o: $(dm-io-objs)
	$(LD) -r -o $@ $(dm-io-objs)
