include.am 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. # vim:ft=automake
  2. # Copyright (C) 2011 Data Differential, http://datadifferential.com/
  3. # All rights reserved.
  4. #
  5. # This library is free software; you can redistribute it and/or
  6. # modify it under the terms of the GNU Lesser General Public
  7. # License as published by the Free Software Foundation; either
  8. # version 3 of the License, or (at your option) any later version.
  9. #
  10. # This library is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. # Lesser General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU Lesser General Public
  16. # License along with this library; if not, write to the Free Software
  17. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  18. #
  19. # included from Top Level Makefile.am
  20. # All paths should be given relative to the root
  21. #
  22. LIBTOOL_COMMAND= ${abs_top_builddir}/libtool --mode=execute
  23. VALGRIND_COMMAND= $(LIBTOOL_COMMAND) valgrind --error-exitcode=1 --leak-check=yes --show-reachable=yes --track-fds=yes --malloc-fill=A5 --free-fill=DE
  24. HELGRIND_COMMAND= $(LIBTOOL_COMMAND) valgrind --tool=helgrind --read-var-info=yes --error-exitcode=1
  25. DRD_COMMAND= $(LIBTOOL_COMMAND) valgrind --tool=drd
  26. GDB_COMMAND= $(LIBTOOL_COMMAND) gdb -f -x libtest/run.gdb
  27. export LIBTOOL_COMMAND
  28. export VALGRIND_COMMAND
  29. export HELGRIND_COMMAND
  30. export DRD_COMMAND
  31. export GDB_COMMAND
  32. valgrind:
  33. @echo make check TESTS_ENVIRONMENT="\"$(VALGRIND_COMMAND)\""
  34. helgrind:
  35. @echo make check TESTS_ENVIRONMENT="\"$(HELGRIND_COMMAND)\""
  36. drd:
  37. @echo make check TESTS_ENVIRONMENT="\"$(DRD_COMMAND)\""
  38. EXTRA_DIST+= libtest/run.gdb
  39. CLEANFILES+= \
  40. tmp_chroot/var/log/* \
  41. tmp_chroot/var/run/* \
  42. tmp_chroot/var/tmp/*
  43. .PHONY: distclean-libtest-check
  44. distclean-libtest-check:
  45. -rm -rf tmp_chroot
  46. noinst_HEADERS+= \
  47. libtest/blobslap_worker.h \
  48. libtest/callbacks.h \
  49. libtest/cmdline.h \
  50. libtest/collection.h \
  51. libtest/common.h \
  52. libtest/comparison.hpp \
  53. libtest/core.h \
  54. libtest/error.h \
  55. libtest/failed.h \
  56. libtest/framework.h \
  57. libtest/gearmand.h \
  58. libtest/get.h \
  59. libtest/killpid.h \
  60. libtest/libtool.hpp \
  61. libtest/memcached.h \
  62. libtest/runner.h \
  63. libtest/server.h \
  64. libtest/server_container.h \
  65. libtest/signal.h \
  66. libtest/stats.h \
  67. libtest/stream.h \
  68. libtest/strerror.h \
  69. libtest/string.hpp \
  70. libtest/test.h \
  71. libtest/test.hpp \
  72. libtest/visibility.h \
  73. libtest/wait.h
  74. noinst_LTLIBRARIES+= libtest/libtest.la
  75. libtest_libtest_la_SOURCES= \
  76. libtest/cmdline.cc \
  77. libtest/framework.cc \
  78. libtest/killpid.cc \
  79. libtest/libtool.cc \
  80. libtest/runner.cc \
  81. libtest/server.cc \
  82. libtest/server_container.cc \
  83. libtest/signal.cc \
  84. libtest/test.cc
  85. libtest_libtest_la_CXXFLAGS= ${AM_CXXFLAGS}
  86. libtest_libtest_la_CXXFLAGS+= ${NO_CONVERSION}
  87. libtest_libtest_la_CXXFLAGS+= -DBUILDING_LIBTEST
  88. libtest_libtest_la_CXXFLAGS+= $(PTHREAD_CFLAGS)
  89. libtest_libtest_la_CXXFLAGS+= -DLIBTEST_TEMP="\"tmp_chroot\""
  90. libtest_libtest_la_LIBADD=
  91. libtest_libtest_la_LIBADD+= $(PTHREAD_LIBS)
  92. libtest_libtest_la_DEPENDENCIES= libtest_tmp_dir
  93. # Declare unittest so that we can append to it
  94. libtest_unittest_CXXFLAGS=
  95. libtest_unittest_LDADD=
  96. libtest_unittest_DEPENDENCIES=
  97. # We are either building in tree, or with
  98. if BUILDING_LIBMEMCACHED
  99. libtest_libtest_la_DEPENDENCIES+= libmemcached/libmemcached.la
  100. libtest_libtest_la_DEPENDENCIES+= libmemcached/libmemcachedutil.la
  101. libtest_libtest_la_LIBADD+= libmemcached/libmemcached.la
  102. libtest_libtest_la_LIBADD+= libmemcached/libmemcachedutil.la
  103. libtest_libtest_la_SOURCES+= libtest/memcached.cc
  104. libtest_libtest_la_CXXFLAGS+= -DHAVE_LIBMEMCACHED
  105. libtest_unittest_CXXFLAGS+= -DHAVE_LIBMEMCACHED
  106. libtest_unittest_LDADD+= libmemcached/libmemcached.la
  107. libtest_unittest_LDADD+= libmemcached/libmemcachedutil.la
  108. libtest_unittest_DEPENDENCIES+= libmemcached/libmemcached.la
  109. libtest_unittest_DEPENDENCIES+= libmemcached/libmemcachedutil.la
  110. else
  111. if HAVE_LIBMEMCACHED
  112. libtest_libtest_la_LIBADD+= $(libmemcached_LIBS)
  113. libtest_libtest_la_SOURCES+= libtest/memcached.cc
  114. else
  115. libtest_libtest_la_CXXFLAGS+= -DHAVE_LIBMEMCACHED=0
  116. libtest_unittest_CXXFLAGS+= -DHAVE_LIBMEMCACHED=0
  117. endif
  118. endif
  119. if BUILDING_GEARMAN
  120. libtest_libtest_la_DEPENDENCIES+= libgearman/libgearman.la
  121. libtest_libtest_la_LIBADD+= libgearman/libgearman.la
  122. libtest_libtest_la_SOURCES+= libtest/blobslap_worker.cc
  123. libtest_libtest_la_SOURCES+= libtest/gearmand.cc
  124. libtest_libtest_la_SOURCES+= util/instance.cc
  125. libtest_libtest_la_SOURCES+= util/operation.cc
  126. libtest_libtest_la_CXXFLAGS+= -DHAVE_LIBGEARMAN
  127. libtest_libtest_la_CXXFLAGS+= -DGEARMAND_BINARY="\"${abs_top_builddir}/gearmand/gearmand\""
  128. libtest_libtest_la_CXXFLAGS+= -DGEARMAND_BLOBSLAP_WORKER="\"${abs_top_builddir}/benchmark/blobslap_worker\""
  129. libtest_unittest_CXXFLAGS+= -DHAVE_LIBGEARMAN
  130. libtest_unittest_LDADD+= libgearman/libgearman.la
  131. libtest_unittest_DEPENDENCIES+= libgearman/libgearman.la
  132. else
  133. if HAVE_LIBGEARMAN
  134. libtest_libtest_la_DEPENDENCIES+= libgearman/libgearman.la
  135. libtest_libtest_la_LIBADD+= $(libgearman_LIBS)
  136. libtest_libtest_la_SOURCES+= libtest/blobslap_worker.cc
  137. libtest_libtest_la_SOURCES+= libtest/gearmand.cc
  138. libtest_libtest_la_SOURCES+= util/instance.cc
  139. libtest_libtest_la_SOURCES+= util/operation.cc
  140. else
  141. libtest_libtest_la_CXXFLAGS+= -DGEARMAND_BINARY=0
  142. libtest_libtest_la_CXXFLAGS+= -DGEARMAND_BLOBSLAP_WORKER=0
  143. libtest_libtest_la_CXXFLAGS+= -DHAVE_LIBGEARMAN=0
  144. libtest_unittest_CXXFLAGS+= -DGEARMAND_BINARY=0
  145. libtest_unittest_CXXFLAGS+= -DHAVE_LIBGEARMAN=0
  146. endif
  147. endif
  148. libtest_tmp_dir: tmp_chroot/var/log tmp_chroot/var/tmp tmp_chroot/var/run
  149. tmp_chroot:
  150. @$(mkdir_p) tmp_chroot
  151. tmp_chroot/var: tmp_chroot
  152. @$(mkdir_p) tmp_chroot/var
  153. tmp_chroot/var/log: tmp_chroot/var
  154. @$(mkdir_p) tmp_chroot/var/log
  155. tmp_chroot/var/tmp: tmp_chroot/var
  156. @$(mkdir_p) tmp_chroot/var/tmp
  157. tmp_chroot/var/run: tmp_chroot/var
  158. @$(mkdir_p) tmp_chroot/var/run
  159. libtest_unittest_CXXFLAGS+= ${AM_CXXFLAGS}
  160. libtest_unittest_DEPENDENCIES+= libtest/libtest.la libtest_tmp_dir
  161. libtest_unittest_LDADD+= libtest/libtest.la
  162. libtest_unittest_SOURCES= libtest/unittest.cc
  163. check_PROGRAMS+= libtest/unittest
  164. noinst_PROGRAMS+= libtest/unittest
  165. test-unittest: libtest/unittest
  166. @libtest/unittest
  167. valgrind-unittest: libtest/unittest
  168. @$(VALGRIND_COMMAND) libtest/unittest
  169. gdb-unittest: libtest/unittest
  170. @$(GDB_COMMAND) libtest/unittest
  171. helgrind-unittest: libtest/unittest
  172. @$(HELGRIND_COMMAND) libtest/unittest
  173. drd-unittest: libtest/unittest
  174. @$(DRD_COMMAND) libtest/unittest
  175. libtest_skiptest_LDADD= libtest/libtest.la
  176. libtest_skiptest_SOURCES= libtest/skiptest.cc
  177. check_PROGRAMS+= libtest/skiptest
  178. noinst_PROGRAMS+= libtest/skiptest
  179. libtest_wait_SOURCES= libtest/wait.cc
  180. noinst_PROGRAMS+= libtest/wait