mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-30 17:18:21 +03:00
f8712c6cab
For 'make distclean' remove also autom4te.cache (from autoreconf).
213 lines
6.7 KiB
Makefile
213 lines
6.7 KiB
Makefile
#
|
|
# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
|
|
# Copyright (C) 2004-2018 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
srcdir = @srcdir@
|
|
top_srcdir = @top_srcdir@
|
|
top_builddir = @top_builddir@
|
|
abs_top_builddir = @abs_top_builddir@
|
|
abs_top_srcdir = @abs_top_srcdir@
|
|
|
|
SUBDIRS = libdm conf daemons include lib libdaemon man scripts tools
|
|
|
|
ifeq ("@UDEV_RULES@", "yes")
|
|
SUBDIRS += udev
|
|
endif
|
|
|
|
ifeq ("@INTL@", "yes")
|
|
SUBDIRS += po
|
|
endif
|
|
|
|
ifeq ($(MAKECMDGOALS),clean)
|
|
SUBDIRS += test
|
|
endif
|
|
# FIXME Should use intermediate Makefiles here!
|
|
ifeq ($(MAKECMDGOALS),distclean)
|
|
SUBDIRS = conf include man test scripts \
|
|
libdaemon lib tools daemons libdm \
|
|
udev po
|
|
tools.distclean: test.distclean
|
|
endif
|
|
DISTCLEAN_DIRS += lcov_reports* autom4te.cache
|
|
DISTCLEAN_TARGETS += config.cache config.log config.status make.tmpl
|
|
|
|
include make.tmpl
|
|
|
|
include $(top_srcdir)/base/Makefile
|
|
include $(top_srcdir)/device_mapper/Makefile
|
|
include $(top_srcdir)/test/unit/Makefile
|
|
|
|
lib: include libdaemon $(BASE_TARGET) $(DEVICE_MAPPER_TARGET)
|
|
daemons: lib libdaemon tools
|
|
scripts: lib
|
|
tools: lib libdaemon
|
|
po: tools daemons
|
|
man: tools
|
|
all_man: tools
|
|
test: tools daemons
|
|
unit-test run-unit-test: test
|
|
|
|
daemons.device-mapper: libdm.device-mapper
|
|
tools.device-mapper: libdm.device-mapper
|
|
device-mapper: tools.device-mapper daemons.device-mapper man.device-mapper
|
|
device_mapper: 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
|
|
|
|
ifneq ("$(CFLOW_CMD)", "")
|
|
tools.cflow: libdm.cflow lib.cflow
|
|
daemons.cflow: tools.cflow
|
|
cflow: include.cflow
|
|
endif
|
|
|
|
CSCOPE_DIRS = base daemons device_mapper include lib libdaemon scripts tools libdm test
|
|
ifneq ("@CSCOPE_CMD@", "")
|
|
cscope.out:
|
|
@CSCOPE_CMD@ -b -R $(patsubst %,-s%,$(addprefix $(srcdir)/,$(CSCOPE_DIRS)))
|
|
all: cscope.out
|
|
endif
|
|
DISTCLEAN_TARGETS += cscope.out
|
|
CLEAN_DIRS += autom4te.cache
|
|
|
|
check check_system check_cluster check_local check_lvmpolld check_lvmlockd_test check_lvmlockd_dlm check_lvmlockd_sanlock: test
|
|
$(MAKE) -C test $(@)
|
|
|
|
conf.generate man.generate: tools
|
|
|
|
# how to use parenthesis in makefiles
|
|
leftparen:=(
|
|
LVM_VER := $(firstword $(subst $(leftparen), ,$(LVM_VERSION)))
|
|
VER := LVM2.$(LVM_VER)
|
|
# release file name
|
|
FILE_VER := $(VER).tgz
|
|
CLEAN_TARGETS += $(FILE_VER)
|
|
CLEAN_DIRS += $(rpmbuilddir)
|
|
|
|
dist:
|
|
@echo "Generating $(FILE_VER)";\
|
|
(cd $(top_srcdir); git ls-tree -r HEAD --name-only | xargs tar --transform "s,^,$(VER)/," -c) | gzip >$(FILE_VER)
|
|
|
|
rpm: dist
|
|
$(RM) -r $(rpmbuilddir)/SOURCES
|
|
$(MKDIR_P) $(rpmbuilddir)/SOURCES
|
|
$(LN_S) -f $(abs_top_builddir)/$(FILE_VER) $(rpmbuilddir)/SOURCES
|
|
$(LN_S) -f $(abs_top_srcdir)/spec/build.inc $(rpmbuilddir)/SOURCES
|
|
$(LN_S) -f $(abs_top_srcdir)/spec/macros.inc $(rpmbuilddir)/SOURCES
|
|
$(LN_S) -f $(abs_top_srcdir)/spec/packages.inc $(rpmbuilddir)/SOURCES
|
|
DM_VER=$$(cut -d- -f1 $(top_srcdir)/VERSION_DM);\
|
|
GIT_VER=$$(cd $(top_srcdir); git describe | cut -d- --output-delimiter=. -f2,3 || echo 0);\
|
|
$(SED) -e "s,\(device_mapper_version\) [0-9.]*$$,\1 $$DM_VER," \
|
|
-e "s,^\(Version:[^0-9%]*\)[0-9.]*$$,\1 $(LVM_VER)," \
|
|
-e "s,^\(Release:[^0-9%]*\)[0-9.]\+,\1 $$GIT_VER," \
|
|
$(top_srcdir)/spec/source.inc >$(rpmbuilddir)/SOURCES/source.inc
|
|
V=$(V) rpmbuild -v --define "_topdir $(rpmbuilddir)" -ba $(top_srcdir)/spec/lvm2.spec
|
|
|
|
generate: conf.generate man.generate
|
|
$(MAKE) -C conf generate
|
|
$(MAKE) -C man generate
|
|
|
|
all_man:
|
|
$(MAKE) -C man all_man
|
|
|
|
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
|
|
$(MAKE) -C man install_systemd_generators
|
|
|
|
install_systemd_units:
|
|
$(MAKE) -C scripts install_systemd_units
|
|
|
|
install_all_man:
|
|
$(MAKE) -C man install_all_man
|
|
|
|
install_tmpfiles_configuration:
|
|
$(MAKE) -C scripts install_tmpfiles_configuration
|
|
|
|
help:
|
|
@echo -e "\nAvailable targets:"
|
|
@echo " all Default target."
|
|
@echo " all_man Build all man pages with generators."
|
|
@echo " clean Remove all compile files."
|
|
@echo " device-mapper Device mapper part of lvm2."
|
|
@echo " dist Generate distributable file."
|
|
@echo " distclean Remove all build files."
|
|
@echo " generate Generate man pages for sources."
|
|
@echo " help Display callable targets."
|
|
@echo " install Install all files."
|
|
@echo " install_all_man Install all man pages."
|
|
@echo " install_cluster Install cmirrord."
|
|
@echo " install_device-mapper Install device mapper files."
|
|
@echo " install_initscripts Install initialization scripts."
|
|
@echo " install_lvm2 Install lvm2 files."
|
|
@echo " install_systemd_units Install systemd units."
|
|
@echo " lcov Generate lcov output."
|
|
@echo " lcov-dated Generate lcov with timedate suffix."
|
|
@echo " lcov-reset Reset lcov counters"
|
|
@echo " man Build man pages."
|
|
@echo " print-VARIABLE Resolve make variable."
|
|
@echo " rpm Build rpm."
|
|
@echo " run-unit-test Run unit tests."
|
|
@echo " tags Generate c/etags."
|
|
|
|
ifneq ("$(LCOV)", "")
|
|
.PHONY: lcov-reset lcov lcov-dated
|
|
|
|
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 --directory $(top_builddir)
|
|
|
|
ifneq ("$(GENHTML)", "")
|
|
lcov:
|
|
$(RM) -rf $(LCOV_REPORTS_DIR)
|
|
$(MKDIR_P) $(LCOV_REPORTS_DIR)
|
|
$(LCOV) --capture --directory $(top_builddir) --ignore-errors source \
|
|
--output-file $(LCOV_REPORTS_DIR)/out.info
|
|
-test ! -s $(LCOV_REPORTS_DIR)/out.info || \
|
|
$(GENHTML) -o $(LCOV_REPORTS_DIR) --ignore-errors source \
|
|
$(LCOV_REPORTS_DIR)/out.info
|
|
endif
|
|
|
|
endif
|
|
|
|
ifneq ($(shell which ctags 2>/dev/null),)
|
|
.PHONY: tags
|
|
tags:
|
|
test -z "$(shell find $(addprefix $(top_srcdir)/,$(CSCOPE_DIRS)) -type f -name '*.[ch]' -newer tags 2>/dev/null | head -1)" || $(RM) tags
|
|
test -f tags || find $(addprefix $(top_srcdir)/,$(CSCOPE_DIRS)) -maxdepth 5 -type f -name '*.[ch]' -exec ctags -a '{}' +
|
|
|
|
CLEAN_TARGETS += tags
|
|
endif
|