2 # Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
3 # Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved.
5 # This file is part of LVM2.
7 # This copyrighted material is made available to anyone wishing to use,
8 # modify, copy, or redistribute it subject to the terms and conditions
9 # of the GNU General Public License v.2.
11 # You should have received a copy of the GNU General Public License
12 # along with this program; if not, write to the Free Software Foundation,
13 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 top_srcdir
= @top_srcdir@
17 top_builddir
= @top_builddir@
19 SUBDIRS
= doc
include man scripts
21 ifeq ("@UDEV_RULES@", "yes")
25 ifeq ("@INTL@", "yes")
29 SUBDIRS
+= lib tools daemons libdm
31 ifeq ("@APPLIB@", "yes")
35 ifeq ("@BUILD_LVMETAD@", "yes")
39 ifeq ("@VERITYSETUP@", "yes")
43 # FIXME Should use intermediate Makefiles here!
44 ifeq ($(MAKECMDGOALS
),distclean)
45 SUBDIRS
= doc
include man scripts \
46 libdaemon lib tools daemons libdm \
48 unit-tests
/datastruct unit-tests
/mm unit-tests
/regex verity
50 DISTCLEAN_DIRS
+= lcov_reports
*
51 DISTCLEAN_TARGETS
+= config.cache config.log config.status make.tmpl
58 daemons
: lib libdaemon tools
59 tools
: lib libdaemon device-mapper
63 lib.device-mapper
: include.device-mapper
64 libdm.device-mapper
: include.device-mapper
65 liblvm.device-mapper
: include.device-mapper
66 daemons.device-mapper
: libdm.device-mapper
67 tools.device-mapper
: libdm.device-mapper
68 device-mapper
: tools.device-mapper daemons.device-mapper man.device-mapper
70 ifeq ("@INTL@", "yes")
71 lib.pofile
: include.pofile
72 tools.pofile
: lib.pofile
73 daemons.pofile
: lib.pofile
74 po.pofile
: tools.pofile daemons.pofile
78 ifneq ("$(CFLOW_CMD)", "")
79 tools.cflow
: libdm.cflow lib.cflow
80 daemons.cflow
: tools.cflow
84 ifneq ("@CSCOPE_CMD@", "")
86 @CSCOPE_CMD@
-b
-R
-s
$(top_srcdir
)
89 DISTCLEAN_TARGETS
+= cscope.out
91 check check_cluster check_local check_lvmetad unit
: all
95 $(INSTALL_DIR
) $(DESTDIR
)$(DEFAULT_SYS_DIR
)
96 $(INSTALL_ROOT_DIR
) $(DESTDIR
)$(DEFAULT_ARCHIVE_DIR
)
97 $(INSTALL_ROOT_DIR
) $(DESTDIR
)$(DEFAULT_BACKUP_DIR
)
98 $(INSTALL_ROOT_DIR
) $(DESTDIR
)$(DEFAULT_CACHE_DIR
)
99 $(INSTALL_ROOT_DIR
) $(DESTDIR
)$(DEFAULT_LOCK_DIR
)
100 $(INSTALL_ROOT_DIR
) $(DESTDIR
)$(DEFAULT_RUN_DIR
)
101 $(INSTALL_ROOT_DATA
) /dev
/null
$(DESTDIR
)$(DEFAULT_CACHE_DIR
)/.cache
104 $(MAKE
) -C scripts install_initscripts
106 install_systemd_units
:
107 $(MAKE
) -C scripts install_systemd_units
109 install_tmpfiles_configuration
:
110 $(MAKE
) -C scripts install_tmpfiles_configuration
113 $(MAKE
) -C verity install_verity
114 $(MAKE
) -C man install_verity
116 LCOV_TRACES
= libdm.
info lib.
info tools.
info \
117 daemons
/dmeventd.
info daemons
/clvmd.
info
118 CLEAN_TARGETS
+= $(LCOV_TRACES
)
120 ifneq ("$(LCOV)", "")
121 .PHONY
: lcov-reset lcov lcov-dated
$(LCOV_TRACES
)
123 ifeq ($(MAKECMDGOALS
),lcov-dated
)
124 LCOV_REPORTS_DIR
:= lcov_reports-
$(shell date
+%Y
%m
%d
%k
%M
%S
)
127 LCOV_REPORTS_DIR
:= lcov_reports
131 $(LCOV
) --zerocounters
$(addprefix -d
, $(basename $(LCOV_TRACES
)))
133 # maybe use subdirs processing to create tracefiles...
135 $(LCOV
) -b
$(basename $@
) -d
$(basename $@
) \
136 --ignore-errors source
-c
-o
- |
$(SED
) \
137 -e
"s/\(dmeventd_lvm.[ch]\)/plugins\/lvm2\/\1/" \
138 -e
"s/dmeventd_\(mirror\|snapshot\|thin\|raid\)\.c/plugins\/\1\/dmeventd_\1\.c/" \
141 ifneq ("$(GENHTML)", "")
143 $(RM
) -r
$(LCOV_REPORTS_DIR
)
144 $(MKDIR_P
) $(LCOV_REPORTS_DIR
)
145 for i in
$(LCOV_TRACES
); do \
146 test -s
$$i && lc
="$$lc $$i"; \
148 test -z
"$$lc" ||
$(GENHTML
) -p @abs_top_builddir@ \
149 -o
$(LCOV_REPORTS_DIR
) $$lc
154 ifeq ("$(TESTING)", "yes")
155 # testing and report generation
156 RUBY
=ruby1.9
-Ireport-generators
/lib
-Ireport-generators
/test
158 .PHONEY
: unit-test ruby-test test-programs
160 # FIXME: put dependencies on libdm and liblvm
161 # FIXME: Should be handled by Makefiles in subdirs, not here at top level.
163 cd unit-tests
/regex
&& $(MAKE
)
164 cd unit-tests
/datastruct
&& $(MAKE
)
165 cd unit-tests
/mm
&& $(MAKE
)
167 unit-test
: test-programs
168 $(RUBY
) report-generators
/unit_test.rb
$(shell find .
-name TESTS
)
169 $(RUBY
) report-generators
/title_page.rb
171 memcheck
: test-programs
172 $(RUBY
) report-generators
/memcheck.rb
$(shell find .
-name TESTS
)
173 $(RUBY
) report-generators
/title_page.rb
176 $(RUBY
) report-generators
/test/ts.rb