#
# Copyright (C) 2005-2011 Red Hat, Inc. All rights reserved.
#
# This file is part of the device-mapper userspace tools.
#
# 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 Lesser General Public License v.2.1.
#
# You should have received a copy of the GNU Lesser 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@
abs_srcdir = @abs_srcdir@

SOURCES = libdevmapper-event.c
SOURCES2 = dmeventd.c

TARGETS = dmeventd
CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES) $(SOURCES2) \
	plugins/lvm2/dmeventd_lvm.c \
	plugins/mirror/dmeventd_mirror.c \
	plugins/raid/dmeventd_raid.c \
	plugins/snapshot/dmeventd_snapshot.c \
	plugins/thin/dmeventd_thin.c \
	plugins/vdo/dmeventd_vdo.c \
	)
CFLOW_TARGET := $(TARGETS)

.PHONY: install_lib_dynamic install_lib_static install_include \
	install_pkgconfig install_dmeventd_dynamic install_dmeventd_static \
	install_lib install_dmeventd

INSTALL_DMEVENTD_TARGETS = install_dmeventd_dynamic
INSTALL_LIB_TARGETS = install_lib_dynamic

LIB_NAME = libdevmapper-event
ifeq ("@STATIC_LINK@", "yes")
  LIB_STATIC = $(LIB_NAME).a
  TARGETS += $(LIB_STATIC) dmeventd.static
  INSTALL_DMEVENTD_TARGETS += install_dmeventd_static
  INSTALL_LIB_TARGETS += install_lib_static
endif

LIB_VERSION = $(LIB_VERSION_DM)
LIB_SHARED = $(LIB_NAME).$(LIB_SUFFIX)
LIBS = $(PTHREAD_LIBS) -L$(interfacebuilddir) -ldevmapper

CLEAN_TARGETS = dmeventd.static $(LIB_NAME).a

ifneq ($(MAKECMDGOALS),device-mapper)
  SUBDIRS+=plugins
endif

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

EXPORTED_HEADER = $(srcdir)/libdevmapper-event.h
EXPORTED_FN_PREFIX = dm_event

include $(top_builddir)/make.tmpl

all: device-mapper
device-mapper: $(TARGETS)
plugins.device-mapper: $(LIB_SHARED)

CFLAGS_dmeventd.o += $(EXTRA_EXEC_CFLAGS)

dmeventd: $(LIB_SHARED) dmeventd.o
	$(SHOW) "    [CC] $@"
	$(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) dmeventd.o \
		-o $@ $(DL_LIBS) $(DMEVENT_LIBS) $(LIBS)

dmeventd.static: $(LIB_STATIC) dmeventd.o
	$(SHOW) "    [CC] $@"
	$(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(STATIC_LDFLAGS) -static dmeventd.o \
		-o $@ $(DL_LIBS) $(DMEVENT_LIBS) $(LIBS) $(STATIC_LIBS)

ifeq ("@PKGCONFIG@", "yes")
  INSTALL_LIB_TARGETS += install_pkgconfig
endif

install_include: $(srcdir)/libdevmapper-event.h
	$(SHOW) "    [INSTALL] $(<F)"
	$(Q) $(INSTALL_DATA) -D $< $(includedir)/$(<F)

install_pkgconfig: libdevmapper-event.pc
	$(SHOW) "    [INSTALL] $<"
	$(Q) $(INSTALL_DATA) -D $< $(pkgconfigdir)/devmapper-event.pc

install_lib_dynamic: install_lib_shared

install_lib_static: $(LIB_STATIC)
	$(SHOW) "    [INSTALL] $<"
	$(Q) $(INSTALL_DATA) -D $< $(usrlibdir)/$(<F)

install_lib: $(INSTALL_LIB_TARGETS)

install_dmeventd_dynamic: dmeventd
	$(SHOW) "    [INSTALL] $<"
	$(Q) $(INSTALL_PROGRAM) -D $< $(sbindir)/$(<F)

install_dmeventd_static: dmeventd.static
	$(SHOW) "    [INSTALL] $<"
	$(Q) $(INSTALL_PROGRAM) -D $< $(staticdir)/$(<F)

install_dmeventd: $(INSTALL_DMEVENTD_TARGETS)

install: install_include install_lib install_dmeventd

install_device-mapper: install_include install_lib install_dmeventd

DISTCLEAN_TARGETS += libdevmapper-event.pc
