#
# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
-# Copyright (C) 2004 Red Hat, Inc. All rights reserved.
+# Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved.
#
-# This file is part of the LVM2.
+# 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
srcdir = @srcdir@
top_srcdir = @top_srcdir@
-VPATH = @srcdir@
+top_builddir = @top_builddir@
-SUBDIRS = doc include man
+SUBDIRS = doc include man
+
+ifeq ("@UDEV_RULES@", "yes")
+ SUBDIRS += udev
+endif
ifeq ("@INTL@", "yes")
SUBDIRS += po
endif
-SUBDIRS += lib tools
+SUBDIRS += lib tools daemons libdm
+ifeq ("@APPLIB@", "yes")
+ SUBDIRS += liblvm
+endif
+
+ifeq ("@BUILD_LVMETAD@", "yes")
+ SUBDIRS += libdaemon
+endif
+
+SUBDIRS += scripts
+
+# FIXME Should use intermediate Makefiles here!
ifeq ($(MAKECMDGOALS),distclean)
- SUBDIRS += lib/format1 \
- po \
- test/mm test/device test/format1 test/regex test/filters
+ SUBDIRS = doc include man scripts \
+ libdaemon lib tools daemons libdm \
+ udev po liblvm test \
+ unit-tests/datastruct unit-tests/mm unit-tests/regex
endif
+DISTCLEAN_DIRS += lcov_reports*
+DISTCLEAN_TARGETS += config.cache config.log config.status make.tmpl
include make.tmpl
-lib: include
-tools: lib
-po: lib tools
+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
-po.pofile: lib.pofile tools.pofile
+daemons.pofile: lib.pofile
+po.pofile: tools.pofile daemons.pofile
pofile: po.pofile
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
+
+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
+
+.PHONEY: 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