thin-provisioning-tools/unit-tests/Makefile.in

93 lines
2.9 KiB
Makefile
Raw Normal View History

2011-12-21 17:00:50 +05:30
# 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/>.
2013-03-22 16:25:55 +05:30
GMOCK_DIR=gmock-1.6.0/
GMOCK_INCLUDES=\
-Igmock-1.6.0/include \
-Igmock-1.6.0/gtest/include
2013-06-25 18:48:38 +05:30
GMOCK_FLAGS=\
-Wno-unused-local-typedefs
2013-03-22 16:25:55 +05:30
GMOCK_LIBS=\
2013-03-22 19:12:20 +05:30
-Llib -lpdata -lgmock -lpthread
2013-03-22 16:25:55 +05:30
2013-03-22 17:40:51 +05:30
GMOCK_DEPS=\
$(wildcard $(GMOCK_DIR)/include/*.h) \
$(wildcard $(GMOCK_DIR)/src/*.cc) \
$(wildcard $(GMOCK_DIR)/gtest/include/*.h) \
$(wildcard $(GMOCK_DIR)/gtest/src/*.cc)
lib/libgmock.a: $(GMOCK_DEPS)
2013-03-22 21:11:13 +05:30
@echo " [CXX] gtest"
$(V)g++ $(GMOCK_INCLUDES) -I$(GMOCK_DIR)/gtest -c $(GMOCK_DIR)/gtest/src/gtest-all.cc
@echo " [CXX] gmock"
$(V)g++ $(GMOCK_INCLUDES) -I$(GMOCK_DIR) -c $(GMOCK_DIR)/src/gmock-all.cc
2013-03-22 21:18:43 +05:30
@echo " [AR] $<"
$(V)ar -rv lib/libgmock.a gtest-all.o gmock-all.o > /dev/null 2>&1
2013-03-22 16:25:55 +05:30
2013-03-25 18:26:03 +05:30
TEST_SOURCE=\
2013-03-22 17:34:38 +05:30
unit-tests/gmock_main.cc \
2013-04-26 20:25:45 +05:30
unit-tests/test_utils.cc \
2013-03-22 17:34:38 +05:30
\
2013-03-22 19:43:58 +05:30
unit-tests/array_block_t.cc \
2013-03-22 19:12:20 +05:30
unit-tests/array_t.cc \
unit-tests/base64_t.cc \
2013-03-22 20:06:31 +05:30
unit-tests/bitset_t.cc \
2013-03-22 20:13:15 +05:30
unit-tests/block_t.cc \
unit-tests/bloom_filter_t.cc \
2013-03-22 20:27:46 +05:30
unit-tests/btree_t.cc \
unit-tests/btree_counter_t.cc \
2013-05-08 16:30:24 +05:30
unit-tests/btree_damage_visitor_t.cc \
2013-03-22 20:16:43 +05:30
unit-tests/buffer_t.cc \
2013-03-22 20:23:53 +05:30
unit-tests/cache_t.cc \
unit-tests/cache_superblock_t.cc \
unit-tests/damage_tracker_t.cc \
2013-03-22 20:38:52 +05:30
unit-tests/endian_t.cc \
2014-01-10 04:10:34 +05:30
unit-tests/era_superblock_t.cc \
2013-05-24 18:00:17 +05:30
unit-tests/rmap_visitor_t.cc \
2013-07-09 02:14:09 +05:30
unit-tests/run_set_t.cc \
2013-03-22 20:49:40 +05:30
unit-tests/space_map_t.cc \
2013-04-22 18:20:40 +05:30
unit-tests/span_iterator_t.cc \
2013-03-22 20:49:40 +05:30
unit-tests/transaction_manager_t.cc
2013-03-22 17:34:38 +05:30
# unit-tests/thin_metadata_t.cc \
2013-03-25 18:26:03 +05:30
TEST_OBJECTS=$(subst .cc,.gmo,$(TEST_SOURCE))
2013-03-22 21:11:13 +05:30
2013-03-22 17:34:38 +05:30
# .gmo files are plain .o files, only they've been built with gmock
# include paths.
.SUFFIXES: .gmo
%.gmo: %.cc
2013-03-22 17:49:31 +05:30
@echo " [CXX] $<"
$(V) $(CXX) -c $(INCLUDES) $(GMOCK_INCLUDES) $(CXXFLAGS) $(GMOCK_FLAGS) -o $@ $<
@echo " [DEP] $<"
$(V) $(CXX) -MM -MT $(subst .cc,.o,$<) $(INCLUDES) $(GMOCK_INCLUDES) $(CXXFLAGS) $(GMOCK_FLAGS) $< > $*.$$$$; \
sed 's,\([^ :]*\)\.o[ :]*,\1.o \1.gmo $* : Makefile ,g' < $*.$$$$ > $*.d; \
$(RM) $*.$$$$
2013-03-22 17:34:38 +05:30
2013-03-25 18:26:03 +05:30
unit-tests/unit_tests: $(TEST_OBJECTS) lib/libgmock.a lib/libpdata.a
2013-03-22 21:18:43 +05:30
@echo " [LD] $<"
$(V)g++ $(CXXFLAGS) $(LDFLAGS) -o $@ $(TEST_OBJECTS) $(LIBS) $(GMOCK_LIBS) $(LIBEXPAT)
2013-03-22 21:11:13 +05:30
.PHONEY: unit-test
2013-03-22 16:25:55 +05:30
2013-03-22 21:11:13 +05:30
unit-test: unit-tests/unit_tests
2013-06-25 18:48:38 +05:30
unit-tests/unit_tests