#
# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
# Copyright (C) 2004-2014 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

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

ifeq ("@LVM1@", "shared")
  SUBDIRS = format1
endif

ifeq ("@POOL@", "shared")
  SUBDIRS += format_pool
endif

ifeq ("@SNAPSHOTS@", "shared")
  SUBDIRS += snapshot
endif

ifeq ("@MIRRORS@", "shared")
  SUBDIRS += mirror
endif

ifeq ("@RAID@", "shared")
  SUBDIRS += raid
endif

ifeq ("@REPLICATORS@", "shared")
  SUBDIRS += replicator
endif

ifeq ("@THIN@", "shared")
  SUBDIRS += thin
endif

ifeq ("@CACHE@", "shared")
  SUBDIRS += cache_segtype
endif

SOURCES =\
	activate/activate.c \
	cache/lvmcache.c \
	commands/toolcontext.c \
	config/config.c \
	datastruct/btree.c \
	datastruct/str_list.c \
	device/dev-cache.c \
	device/dev-ext.c \
	device/dev-io.c \
	device/dev-md.c \
	device/dev-swap.c \
	device/dev-type.c \
	device/dev-luks.c \
	display/display.c \
	error/errseg.c \
	unknown/unknown.c \
	filters/filter-composite.c \
	filters/filter-persistent.c \
	filters/filter-regex.c \
	filters/filter-sysfs.c \
	filters/filter-md.c \
	filters/filter-fwraid.c \
	filters/filter-mpath.c \
	filters/filter-partitioned.c \
	filters/filter-type.c \
	filters/filter-usable.c \
	format_text/archive.c \
	format_text/archiver.c \
	format_text/export.c \
	format_text/flags.c \
	format_text/format-text.c \
	format_text/import.c \
	format_text/import_vsn1.c \
	format_text/tags.c \
	format_text/text_label.c \
	freeseg/freeseg.c \
	label/label.c \
	locking/file_locking.c \
	locking/locking.c \
	locking/no_locking.c \
	log/log.c \
	metadata/cache_manip.c \
	metadata/lv.c \
	metadata/lv_manip.c \
	metadata/merge.c \
	metadata/metadata.c \
	metadata/mirror.c \
	metadata/pool_manip.c \
	metadata/pv.c \
	metadata/pv_manip.c \
	metadata/pv_map.c \
	metadata/raid_manip.c \
	metadata/replicator_manip.c \
	metadata/segtype.c \
	metadata/snapshot_manip.c \
	metadata/thin_manip.c \
	metadata/vg.c \
	misc/crc.c \
	misc/lvm-exec.c \
	misc/lvm-file.c \
	misc/lvm-flock.c \
	misc/lvm-globals.c \
	misc/lvm-signal.c \
	misc/lvm-string.c \
	misc/lvm-wrappers.c \
	misc/lvm-percent.c \
	mm/memlock.c \
	properties/prop_common.c \
	report/properties.c \
	report/report.c \
	striped/striped.c \
	uuid/uuid.c \
	zero/zero.c

ifeq ("@HAVE_REALTIME@", "yes")
  SOURCES +=\
	misc/timestamp.c
endif

ifeq ("@LVM1@", "internal")
  SOURCES +=\
	format1/disk-rep.c \
	format1/format1.c \
	format1/import-export.c \
	format1/import-extents.c \
	format1/layout.c \
	format1/lvm1-label.c \
	format1/vg_number.c
endif

ifeq ("@POOL@", "internal")
  SOURCES +=\
	format_pool/disk_rep.c \
	format_pool/format_pool.c \
	format_pool/import_export.c \
	format_pool/pool_label.c
endif

ifeq ("@CLUSTER@", "internal")
  SOURCES += locking/cluster_locking.c
endif

ifeq ("@CLUSTER@", "shared")
  SUBDIRS += locking
endif

ifeq ("@SNAPSHOTS@", "internal")
  SOURCES += snapshot/snapshot.c
endif

ifeq ("@MIRRORS@", "internal")
  SOURCES += mirror/mirrored.c
endif

ifeq ("@RAID@", "internal")
  SOURCES += raid/raid.c
endif

ifeq ("@REPLICATORS@", "internal")
  SOURCES += replicator/replicator.c
endif

ifeq ("@THIN@", "internal")
  SOURCES += thin/thin.c
endif

ifeq ("@CACHE@", "internal")
  SOURCES += cache_segtype/cache.c
endif

ifeq ("@DEVMAPPER@", "yes")
  SOURCES +=\
	activate/dev_manager.c \
	activate/fs.c
endif

ifeq ("@HAVE_LIBDL@", "yes")
  SOURCES +=\
	locking/external_locking.c \
	misc/sharedlib.c
endif

ifeq ("@BUILD_LVMETAD@", "yes")
  SOURCES +=\
	cache/lvmetad.c
endif

ifeq ("@DMEVENTD@", "yes")
  CLDFLAGS += -L$(top_builddir)/daemons/dmeventd
  LIBS += -ldevmapper-event
endif

LIB_NAME = liblvm-internal
LIB_STATIC = $(LIB_NAME).a

ifeq ($(MAKECMDGOALS),distclean)
  SUBDIRS =\
	format1 \
	format_pool \
	snapshot \
	mirror \
	raid \
	replicator \
	thin \
	cache_segtype \
	locking
endif

CFLOW_LIST = $(SOURCES)
CFLOW_LIST_TARGET = $(LIB_NAME).cflow

include $(top_builddir)/make.tmpl

CFLAGS += $(BLKID_CFLAGS) $(UDEV_CFLAGS) $(VALGRIND_CFLAGS)

$(SUBDIRS): $(LIB_STATIC)

DISTCLEAN_TARGETS += misc/configure.h misc/lvm-version.h