# # 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