summaryrefslogtreecommitdiff
path: root/Makefile.in
blob: 4d39577400a880b65fb3806b082aa94605e1f65e (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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#
# 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 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@

SUBDIRS = doc include man

ifeq ("@UDEV_RULES@", "yes")
  SUBDIRS += udev
endif

ifeq ("@INTL@", "yes")
  SUBDIRS += po
endif

SUBDIRS += lib tools daemons libdm libdaemon

ifeq ("@APPLIB@", "yes")
  SUBDIRS += liblvm
endif

ifeq ("@PYTHON_BINDINGS@", "yes")
  SUBDIRS += python
endif

SUBDIRS += scripts

# FIXME Should use intermediate Makefiles here!
ifeq ($(MAKECMDGOALS),distclean)
  SUBDIRS = doc include man test scripts \
    libdaemon lib tools daemons libdm \
    udev po liblvm python \
    unit-tests/datastruct unit-tests/mm unit-tests/regex
tools.distclean: test.distclean
endif
DISTCLEAN_DIRS += lcov_reports*
DISTCLEAN_TARGETS += config.cache config.log config.status make.tmpl

include make.tmpl

libdm: include
lib: libdm libdaemon
liblvm: lib
daemons: lib libdaemon tools
tools: lib libdaemon device-mapper
po: tools daemons
scripts: liblvm libdm

lib.device-mapper: include.device-mapper
libdm.device-mapper: include.device-mapper
liblvm.device-mapper: include.device-mapper
daemons.device-mapper: libdm.device-mapper
tools.device-mapper: libdm.device-mapper
device-mapper: tools.device-mapper daemons.device-mapper man.device-mapper

ifeq ("@INTL@", "yes")
lib.pofile: include.pofile
tools.pofile: lib.pofile
daemons.pofile: lib.pofile
po.pofile: tools.pofile daemons.pofile
pofile: po.pofile
endif

ifeq ("@PYTHON_BINDINGS@", "yes")
python: liblvm
endif

ifneq ("$(CFLOW_CMD)", "")
tools.cflow: libdm.cflow lib.cflow
daemons.cflow: tools.cflow
cflow: include.cflow
endif

ifneq ("@CSCOPE_CMD@", "")
cscope.out:
	@CSCOPE_CMD@ -b -R -s$(top_srcdir)
all: cscope.out
endif
DISTCLEAN_TARGETS += cscope.out

check check_cluster check_local check_lvmetad unit: all
	$(MAKE) -C test $(@)

install_system_dirs:
	$(INSTALL_DIR) $(DESTDIR)$(DEFAULT_SYS_DIR)
	$(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_ARCHIVE_DIR)
	$(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_BACKUP_DIR)
	$(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_CACHE_DIR)
	$(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_LOCK_DIR)
	$(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_RUN_DIR)
	$(INSTALL_ROOT_DATA) /dev/null $(DESTDIR)$(DEFAULT_CACHE_DIR)/.cache

install_initscripts: 
	$(MAKE) -C scripts install_initscripts

install_systemd_generators:
	$(MAKE) -C scripts install_systemd_generators

install_systemd_units:
	$(MAKE) -C scripts install_systemd_units

ifeq ("@PYTHON_BINDINGS@", "yes")
install_python_bindings:
	$(MAKE) -C liblvm/python install_python_bindings
endif

install_tmpfiles_configuration:
	$(MAKE) -C scripts install_tmpfiles_configuration

LCOV_TRACES = libdm.info lib.info tools.info \
	daemons/dmeventd.info daemons/clvmd.info
CLEAN_TARGETS += $(LCOV_TRACES)

ifneq ("$(LCOV)", "")
.PHONY: lcov-reset lcov lcov-dated $(LCOV_TRACES)

ifeq ($(MAKECMDGOALS),lcov-dated)
LCOV_REPORTS_DIR := lcov_reports-$(shell date +%Y%m%d%k%M%S)
lcov-dated: lcov
else
LCOV_REPORTS_DIR := lcov_reports
endif

lcov-reset:
	$(LCOV) --zerocounters $(addprefix -d , $(basename $(LCOV_TRACES)))

# maybe use subdirs processing to create tracefiles...
$(LCOV_TRACES):
	$(LCOV) -b $(basename $@) -d $(basename $@) \
		--ignore-errors source -c -o - | $(SED) \
		-e "s/\(dmeventd_lvm.[ch]\)/plugins\/lvm2\/\1/" \
		-e "s/dmeventd_\(mirror\|snapshot\|thin\|raid\)\.c/plugins\/\1\/dmeventd_\1\.c/" \
		>$@

ifneq ("$(GENHTML)", "")
lcov: $(LCOV_TRACES)
	$(RM) -r $(LCOV_REPORTS_DIR)
	$(MKDIR_P) $(LCOV_REPORTS_DIR)
	for i in $(LCOV_TRACES); do \
		test -s $$i && lc="$$lc $$i"; \
	done; \
	test -z "$$lc" || $(GENHTML) -p @abs_top_builddir@ \
		-o $(LCOV_REPORTS_DIR) $$lc
endif

endif

ifeq ("$(TESTING)", "yes")
# testing and report generation
RUBY=ruby1.9 -Ireport-generators/lib -Ireport-generators/test

.PHONY: unit-test ruby-test test-programs

# FIXME: put dependencies on libdm and liblvm
# FIXME: Should be handled by Makefiles in subdirs, not here at top level.
test-programs:
	cd unit-tests/regex && $(MAKE)
	cd unit-tests/datastruct && $(MAKE)
	cd unit-tests/mm && $(MAKE)

unit-test: test-programs
	$(RUBY) report-generators/unit_test.rb $(shell find . -name TESTS)
	$(RUBY) report-generators/title_page.rb

memcheck: test-programs
	$(RUBY) report-generators/memcheck.rb $(shell find . -name TESTS)
	$(RUBY) report-generators/title_page.rb

ruby-test:
	$(RUBY) report-generators/test/ts.rb
endif