summaryrefslogtreecommitdiff
path: root/libdm/Makefile.in
blob: 2758648e64612990f53f8b1f264fa0e3ea37ee91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#
# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
# Copyright (C) 2004-2010 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@

SUBDIRS=dm-tools

SOURCES =\
	datastruct/bitset.c \
	datastruct/hash.c \
	datastruct/list.c \
	libdm-common.c \
	libdm-config.c \
	libdm-deptree.c \
	libdm-file.c \
	libdm-report.c \
	libdm-stats.c \
	libdm-string.c \
	libdm-targets.c \
	libdm-timestamp.c \
	mm/dbg_malloc.c \
	mm/pool.c \
	regex/matcher.c \
	regex/parse_rx.c \
	regex/ttree.c \
	$(interface)/libdm-iface.c

INCLUDES = -I$(srcdir)/$(interface)

ifeq ("@STATIC_LINK@", "yes")
LIB_STATIC = $(interface)/libdevmapper.a
endif

LIB_SHARED = $(interface)/libdevmapper.$(LIB_SUFFIX)
LIB_VERSION = $(LIB_VERSION_DM)
TARGETS = libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION) .symver_check

CFLOW_LIST = $(SOURCES)
CFLOW_LIST_TARGET = libdevmapper.cflow

EXPORTED_HEADER = $(srcdir)/libdevmapper.h
EXPORTED_FN_PREFIX = dm

include $(top_builddir)/libdm/make.tmpl

PROGS_CFLAGS = $(UDEV_CFLAGS)

device-mapper: $(TARGETS)

dm-tools.device-mapper: device-mapper

libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION): $(LIB_SHARED)
	@echo "    [LN] $<"
	$(Q) $(LN_S) -f $< $@

# Check versioned build when default versioned symbol is present @@
# also the older symbol is built-in
.symver_check: $(LIB_SHARED)
	@echo "    [CHECK] $<"
	$(Q) if $(READELF) -Ws $< | grep -q dm_stats_create_region@@; then \
	SYM=$$($(READELF) -Ws $< | grep dm_stats_create_region@DM_1_02_106); \
	if test -n "$$SYM"; then touch $@; \
	else echo >&2 "Missing versioned symbols in $<"; false; fi; \
	else touch $@; fi

.PHONY: install_dynamic install_static install_include \
	install_ioctl install_ioctl_static \
	install_pkgconfig

INSTALL_TYPE = install_dynamic

ifeq ("@STATIC_LINK@", "yes")
  INSTALL_TYPE += install_static
endif

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

install: $(INSTALL_TYPE) install_include

install_device-mapper: install

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

install_dynamic: install_@interface@

install_static: install_@interface@_static

install_ioctl: install_lib_shared

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

install_ioctl_static: $(LIB_STATIC)
	@echo "    [INSTALL] $<"
	$(Q) $(INSTALL_DATA) -D $< $(usrlibdir)/$(<F)

CLEAN_TARGETS += ioctl/libdevmapper.a
DISTCLEAN_TARGETS += libdevmapper.pc make.tmpl