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 ($(MAKECMDGOALS),distclean)
36 SUBDIRS = doc include man scripts \
37 lib tools daemons libdm \
38 udev po liblvm test/api test
40 DISTCLEAN_DIRS += lcov_reports*
41 DISTCLEAN_TARGETS += config.cache config.log config.status make.tmpl
49 tools: lib device-mapper
52 lib.device-mapper: include.device-mapper
53 libdm.device-mapper: include.device-mapper
54 liblvm.device-mapper: include.device-mapper
55 daemons.device-mapper: libdm.device-mapper
56 tools.device-mapper: libdm.device-mapper
57 device-mapper: tools.device-mapper daemons.device-mapper man.device-mapper
59 ifeq ("@INTL@", "yes")
60 lib.pofile: include.pofile
61 tools.pofile: lib.pofile
62 daemons.pofile: lib.pofile
63 po.pofile: tools.pofile daemons.pofile
67 ifneq ("$(CFLOW_CMD)", "")
68 tools.cflow: libdm.cflow lib.cflow
69 daemons.cflow: tools.cflow
73 ifneq ("@CSCOPE_CMD@", "")
75 @CSCOPE_CMD@ -b -R -s$(top_srcdir)
78 DISTCLEAN_TARGETS += cscope.out
80 check check_cluster check_local: all
84 $(INSTALL_DIR) $(DESTDIR)$(DEFAULT_SYS_DIR)
85 $(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_ARCHIVE_DIR)
86 $(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_BACKUP_DIR)
87 $(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_CACHE_DIR)
88 $(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_LOCK_DIR)
89 $(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_RUN_DIR)
90 $(INSTALL_ROOT_DATA) /dev/null $(DESTDIR)$(DEFAULT_CACHE_DIR)/.cache
93 $(MAKE) -C scripts install_initscripts
95 LCOV_TRACES = libdm.info lib.info tools.info \
96 daemons/dmeventd.info daemons/clvmd.info
97 CLEAN_TARGETS += $(LCOV_TRACES)
100 .PHONY: lcov-reset lcov lcov-dated $(LCOV_TRACES)
102 ifeq ($(MAKECMDGOALS),lcov-dated)
103 LCOV_REPORTS_DIR := lcov_reports-$(shell date +%Y%m%d%k%M%S)
106 LCOV_REPORTS_DIR := lcov_reports
110 $(LCOV) --zerocounters $(addprefix -d , $(basename $(LCOV_TRACES)))
112 # maybe use subdirs processing to create tracefiles...
114 $(LCOV) -b $(top_srcdir)/$(basename $@) \
115 -d $(basename $@) -c -o - | $(SED) \
116 -e "s/\(dmeventd_lvm.[ch]\)/plugins\/lvm2\/\1/" \
117 -e "s/\(dmeventd_mirror.c\)/plugins\/mirror\/\1/" \
118 -e "s/\(dmeventd_snapshot.c\)/plugins\/snapshot\/\1/" \
121 ifneq ("$(GENHTML)", "")
123 $(RM) -r $(LCOV_REPORTS_DIR)
124 $(MKDIR_P) $(LCOV_REPORTS_DIR)
125 for i in $(LCOV_TRACES); do \
126 test -s $$i && lc="$$lc $$i"; \
128 test -z "$$lc" || $(GENHTML) -p @abs_top_builddir@ \
129 -o $(LCOV_REPORTS_DIR) $$lc
134 ifeq ("$(TESTING)", "yes")
135 # testing and report generation
136 RUBY=ruby1.9 -Ireport-generators/lib -Ireport-generators/test
138 .PHONEY: unit-test ruby-test test-programs
140 # FIXME: put dependencies on libdm and liblvm
142 cd unit-tests/regex && $(MAKE)
143 cd unit-tests/datastruct && $(MAKE)
144 cd unit-tests/mm && $(MAKE)
146 unit-test: test-programs
147 $(RUBY) report-generators/unit_test.rb $(shell find . -name TESTS)
148 $(RUBY) report-generators/title_page.rb
150 memcheck: test-programs
151 $(RUBY) report-generators/memcheck.rb $(shell find . -name TESTS)
152 $(RUBY) report-generators/title_page.rb
155 $(RUBY) report-generators/test/ts.rb