thin-provisioning-tools/Makefile.in

287 lines
8.3 KiB
Makefile
Raw Normal View History

# Copyright (C) 2011 Red Hat, Inc. All rights reserved.
#
# This file is part of the thin-provisioning-tools source.
#
# thin-provisioning-tools is free software: you can redistribute it
# and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
#
# thin-provisioning-tools is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with thin-provisioning-tools. If not, see
# <http://www.gnu.org/licenses/>.
.PHONY: all
2011-08-31 18:31:48 +05:30
2013-03-22 17:49:31 +05:30
V=@
2011-12-06 21:17:24 +05:30
PROGRAMS=\
2012-03-02 15:30:31 +05:30
thin_check \
2011-12-06 21:17:24 +05:30
thin_dump \
2013-05-23 17:45:00 +05:30
thin_restore \
2013-06-19 17:09:28 +05:30
thin_repair \
thin_rmap \
thin_metadata_size
2011-12-06 21:17:24 +05:30
all: $(PROGRAMS)
2011-08-31 18:31:48 +05:30
2013-03-22 19:12:20 +05:30
PDATA_SOURCE=\
persistent-data/checksum.cc \
persistent-data/endian_utils.cc \
persistent-data/error_set.cc \
persistent-data/hex_dump.cc \
persistent-data/lock_tracker.cc \
persistent-data/transaction_manager.cc \
\
persistent-data/data-structures/btree.cc \
\
persistent-data/space_map.cc \
persistent-data/space-maps/disk.cc \
persistent-data/space-maps/recursive.cc \
2013-03-22 19:12:20 +05:30
persistent-data/space-maps/careful_alloc.cc
#PDATA_OBJECTS=$(subst .cc,.o,$(PDATA_SOURCE))
2013-03-22 19:12:20 +05:30
SOURCE=\
$(PDATA_SOURCE) \
\
2013-03-15 21:54:17 +05:30
cache/metadata_disk_structures.cc \
\
2013-05-20 20:39:13 +05:30
thin-provisioning/device_tree.cc \
thin-provisioning/file_utils.cc \
thin-provisioning/human_readable_format.cc \
2013-05-21 16:16:37 +05:30
thin-provisioning/mapping_tree.cc \
thin-provisioning/metadata.cc \
thin-provisioning/metadata_checker.cc \
thin-provisioning/metadata_dumper.cc \
thin-provisioning/restore_emitter.cc \
2013-05-24 18:00:17 +05:30
thin-provisioning/rmap_visitor.cc \
thin-provisioning/superblock.cc \
thin-provisioning/thin_pool.cc \
thin-provisioning/xml_format.cc
2013-04-29 17:54:19 +05:30
PDATA_OBJECTS=$(subst .cc,.o,$(SOURCE))
2011-08-22 15:12:13 +05:30
2013-07-16 19:03:38 +05:30
CXX_PROGRAM_SOURCE=\
2013-03-15 21:54:17 +05:30
cache/check.cc \
\
thin-provisioning/thin_check.cc \
thin-provisioning/thin_dump.cc \
2013-05-23 17:45:00 +05:30
thin-provisioning/thin_restore.cc \
2013-06-19 17:09:28 +05:30
thin-provisioning/thin_repair.cc \
2013-05-23 17:45:00 +05:30
thin-provisioning/thin_rmap.cc
C_PROGRAM_SOURCE=\
thin-provisioning/thin_metadata_size.c
CC:=@CC@
CXX:=@CXX@
OBJECTS:=$(subst .cc,.o,$(SOURCE))
2011-12-09 18:24:51 +05:30
TOP_DIR:=@top_srcdir@
TOP_BUILDDIR:=@top_builddir@
CFLAGS+=-g -Wall -O3
2013-05-14 20:07:57 +05:30
CXXFLAGS+=-std=c++11 -g -Wall -fno-strict-aliasing
2011-12-09 18:24:51 +05:30
CXXFLAGS+=@CXXOPTIMISE_FLAG@
CXXFLAGS+=@CXXDEBUG_FLAG@
INCLUDES+=-I$(TOP_BUILDDIR) -I$(TOP_DIR) -I$(TOP_DIR)/thin-provisioning
LIBS:=-lstdc++
LIBEXPAT:=-lexpat
INSTALL:=@INSTALL@
PREFIX:=@prefix@
BINDIR:=$(DESTDIR)$(PREFIX)/sbin
MANPATH:=$(DESTDIR)$(MANDIR)
vpath %.cc $(TOP_DIR)
INSTALL_DIR = $(INSTALL) -m 755 -d
2013-07-10 20:46:56 +05:30
INSTALL_PROGRAM = $(INSTALL) -m 755
INSTALL_DATA = $(INSTALL) -p -m 644
2011-06-16 12:46:10 +05:30
2013-03-25 18:26:03 +05:30
ifeq ("@TESTING@", "yes")
TEST_INCLUDES=\
-Igmock-1.6.0/include \
-Igmock-1.6.0/gtest/include
else
TEST_INCLUDES=
endif
2011-07-22 20:39:56 +05:30
.SUFFIXES: .d
2011-06-16 12:46:10 +05:30
%.o: %.c
@echo " [CC] $<"
$(V) $(CC) -c $(INCLUDES) $(CFLAGS) -o $@ $<
@echo " [DEP] $<"
$(V) $(CC) -MM -MT $(subst .c,.o,$<) $(INCLUDES) $(CFLAGS) $< > $*.$$$$; \
sed 's,\([^ :]*\)\.o[ :]*,\1.o \1.gmo $* : Makefile ,g' < $*.$$$$ > $*.d; \
$(RM) $*.$$$$
%.o: %.cc
2013-03-22 21:11:13 +05:30
@echo " [CXX] $<"
2013-03-22 17:49:31 +05:30
$(V) $(CXX) -c $(INCLUDES) $(CXXFLAGS) -o $@ $<
@echo " [DEP] $<"
$(V) $(CXX) -MM -MT $(subst .cc,.o,$<) $(INCLUDES) $(TEST_INCLUDES) $(CXXFLAGS) $< > $*.$$$$; \
sed 's,\([^ :]*\)\.o[ :]*,\1.o \1.gmo $* : Makefile ,g' < $*.$$$$ > $*.d; \
$(RM) $*.$$$$
2011-06-16 12:46:10 +05:30
2013-03-22 19:12:20 +05:30
#----------------------------------------------------------------
2013-03-22 19:12:20 +05:30
lib/libpdata.a: $(PDATA_OBJECTS)
2013-03-22 21:18:43 +05:30
@echo " [AR] $<"
$(V)ar -rv $@ $(PDATA_OBJECTS) > /dev/null 2>&1
2013-03-22 19:12:20 +05:30
2013-03-15 21:54:17 +05:30
#----------------------------------------------------------------
# Thin provisioning tools
2012-03-08 22:50:46 +05:30
THIN_DEBUG_SOURCE=$(SOURCE)
2011-12-15 19:23:07 +05:30
THIN_DUMP_SOURCE=$(SOURCE)
2013-06-19 17:09:28 +05:30
THIN_REPAIR_SOURCE=$(SOURCE)
2011-12-15 19:23:07 +05:30
THIN_RESTORE_SOURCE=$(SOURCE)
2012-03-02 15:30:31 +05:30
THIN_CHECK_SOURCE=\
persistent-data/checksum.cc \
persistent-data/endian_utils.cc \
persistent-data/error_set.cc \
persistent-data/hex_dump.cc \
persistent-data/lock_tracker.cc \
persistent-data/data-structures/btree.cc \
persistent-data/space_map.cc \
persistent-data/space-maps/disk.cc \
persistent-data/space-maps/recursive.cc \
persistent-data/space-maps/careful_alloc.cc \
persistent-data/transaction_manager.cc \
thin-provisioning/file_utils.cc \
thin-provisioning/device_tree.cc \
thin-provisioning/mapping_tree.cc \
thin-provisioning/metadata.cc \
thin-provisioning/metadata_checker.cc \
thin-provisioning/superblock.cc
2013-05-23 17:45:00 +05:30
THIN_RMAP_SOURCE=\
persistent-data/checksum.cc \
persistent-data/endian_utils.cc \
persistent-data/error_set.cc \
persistent-data/hex_dump.cc \
persistent-data/lock_tracker.cc \
persistent-data/data-structures/btree.cc \
2013-05-23 17:45:00 +05:30
persistent-data/space_map.cc \
persistent-data/space-maps/disk.cc \
persistent-data/space-maps/recursive.cc \
persistent-data/space-maps/careful_alloc.cc \
persistent-data/transaction_manager.cc \
thin-provisioning/file_utils.cc \
thin-provisioning/device_tree.cc \
thin-provisioning/mapping_tree.cc \
thin-provisioning/metadata.cc \
thin-provisioning/metadata_checker.cc \
thin-provisioning/rmap_visitor.cc \
2013-05-23 17:45:00 +05:30
thin-provisioning/superblock.cc
2012-03-08 22:50:46 +05:30
THIN_DEBUG_OBJECTS=$(subst .cc,.o,$(THIN_DEBUG_SOURCE))
2011-12-15 19:23:07 +05:30
THIN_DUMP_OBJECTS=$(subst .cc,.o,$(THIN_DUMP_SOURCE))
2013-06-19 17:09:28 +05:30
THIN_REPAIR_OBJECTS=$(subst .cc,.o,$(THIN_REPAIR_SOURCE))
2011-12-15 19:23:07 +05:30
THIN_RESTORE_OBJECTS=$(subst .cc,.o,$(THIN_RESTORE_SOURCE))
2012-03-02 15:30:31 +05:30
THIN_CHECK_OBJECTS=$(subst .cc,.o,$(THIN_CHECK_SOURCE))
2013-05-23 17:45:00 +05:30
THIN_RMAP_OBJECTS=$(subst .cc,.o,$(THIN_RMAP_SOURCE))
2011-12-15 19:23:07 +05:30
thin_debug: $(THIN_DEBUG_OBJECTS) thin-provisioning/thin_debug.o
2013-03-22 21:18:43 +05:30
@echo " [LD] $@"
2013-03-22 19:12:20 +05:30
$(V) $(CXX) $(CXXFLAGS) -o $@ $+ $(LIBS) $(LIBEXPAT)
2012-03-08 22:50:46 +05:30
2013-06-19 17:09:28 +05:30
thin_repair: $(THIN_REPAIR_OBJECTS) thin-provisioning/thin_repair.o
@echo " [LD] $@"
$(V) $(CXX) $(CXXFLAGS) -o $@ $+ $(LIBS) $(LIBEXPAT)
thin_dump: $(THIN_DUMP_OBJECTS) thin-provisioning/thin_dump.o
2013-03-22 21:18:43 +05:30
@echo " [LD] $@"
2013-03-22 19:12:20 +05:30
$(V) $(CXX) $(CXXFLAGS) -o $@ $+ $(LIBS) $(LIBEXPAT)
2011-12-15 19:23:07 +05:30
thin_restore: $(THIN_RESTORE_OBJECTS) thin-provisioning/thin_restore.o
2013-03-22 21:18:43 +05:30
@echo " [LD] $@"
2013-03-22 19:12:20 +05:30
$(V) $(CXX) $(CXXFLAGS) -o $@ $+ $(LIBS) $(LIBEXPAT)
2011-08-31 18:31:48 +05:30
thin_check: $(THIN_CHECK_OBJECTS) thin-provisioning/thin_check.o
@echo " [LD] $@"
$(V) $(CXX) $(CXXFLAGS) -o $@ $+ $(LIBS)
2013-05-23 17:45:00 +05:30
thin_rmap: $(THIN_RMAP_OBJECTS) thin-provisioning/thin_rmap.o
2013-03-22 21:18:43 +05:30
@echo " [LD] $@"
2013-03-22 19:12:20 +05:30
$(V) $(CXX) $(CXXFLAGS) -o $@ $+ $(LIBS)
2011-08-23 16:25:37 +05:30
thin_metadata_size: thin-provisioning/thin_metadata_size.o
@echo " [LD] $@"
$(V) $(CC) $(CFLAGS) -o $@ $+ -lm
2013-03-15 21:54:17 +05:30
#----------------------------------------------------------------
# Cache tools
CACHE_CHECK_SOURCE=\
persistent-data/checksum.cc \
persistent-data/endian_utils.cc \
persistent-data/error_set.cc \
persistent-data/hex_dump.cc \
persistent-data/lock_tracker.cc \
persistent-data/data-structures/btree.cc \
2013-03-15 21:54:17 +05:30
persistent-data/space_map.cc \
persistent-data/space-maps/disk.cc \
persistent-data/space-maps/recursive.cc \
persistent-data/space-maps/careful_alloc.cc \
persistent-data/transaction_manager.cc \
cache/metadata_disk_structures.cc
CACHE_CHECK_OBJECTS=$(subst .cc,.o,$(CACHE_CHECK_SOURCE))
cache_check: $(CACHE_CHECK_OBJECTS) cache/check.o
2013-03-22 21:18:43 +05:30
@echo " [LD] $@"
2013-03-22 19:12:20 +05:30
$(V) $(CXX) $(CXXFLAGS) -o $@ $+ $(LIBS)
2013-03-25 18:26:03 +05:30
DEPEND_FILES=\
$(subst .cc,.d,$(SOURCE)) \
$(subst .cc,.d,$(TEST_SOURCE)) \
2013-07-16 19:03:38 +05:30
$(subst .cc,.d,$(CXX_PROGRAM_SOURCE)) \
$(subst .c,.d,$(C_PROGRAM_SOURCE))
2013-03-25 18:26:03 +05:30
2013-03-22 19:12:20 +05:30
.PHONY: clean distclean
2011-12-06 21:17:24 +05:30
clean:
find . -name \*.o -delete
find . -name \*.gmo -delete
find . -name \*.d -delete
$(RM) $(TEST_PROGRAMS) $(PROGRAMS) $(GMOCK_OBJECTS) lib/*.a
2013-03-22 19:12:20 +05:30
distclean: clean
$(RM) config.cache config.log config.status configure.h version.h Makefile unit-tests/Makefile
2011-12-06 21:17:24 +05:30
2011-12-09 18:24:51 +05:30
install: $(PROGRAMS)
$(INSTALL_DIR) $(BINDIR)
2013-07-19 16:58:38 +05:30
$(INSTALL_PROGRAM) thin_check $(BINDIR)
$(INSTALL_PROGRAM) thin_dump $(BINDIR)
$(INSTALL_PROGRAM) thin_repair $(BINDIR)
$(INSTALL_PROGRAM) thin_restore $(BINDIR)
$(INSTALL_PROGRAM) thin_rmap $(BINDIR)
$(INSTALL_PROGRAM) thin_metadata_size $(BINDIR)
$(INSTALL_DIR) $(MANPATH)/man8
2013-07-10 20:46:56 +05:30
$(INSTALL_DATA) man8/thin_check.8 $(MANPATH)/man8
$(INSTALL_DATA) man8/thin_dump.8 $(MANPATH)/man8
2013-07-18 19:24:15 +05:30
$(INSTALL_DATA) man8/thin_repair.8 $(MANPATH)/man8
2013-07-10 20:46:56 +05:30
$(INSTALL_DATA) man8/thin_restore.8 $(MANPATH)/man8
2013-07-18 19:24:15 +05:30
$(INSTALL_DATA) man8/thin_rmap.8 $(MANPATH)/man8
$(INSTALL_DATA) man8/thin_metadata_size.8 $(MANPATH)/man8
.PHONY: install
ifeq ("@TESTING@", "yes")
include unit-tests/Makefile
2013-03-25 17:23:55 +05:30
.PHONEY: features
features: thin_check cache_check
cucumber --no-color --format progress
2013-03-25 18:26:03 +05:30
test: features unit-test
endif
-include $(DEPEND_FILES)