3 # Nonstandard package files for distribution.
6 # We may need to build our internally packaged gtest. If so, it will be
7 # included in the 'subdirs' variable.
10 # This is generated by the configure script, so clean it for distribution.
11 DISTCLEANFILES = scripts/gmock-config
13 # We define the global AM_CPPFLAGS as everything we compile includes from these
15 AM_CPPFLAGS = $(GTEST_CPPFLAGS) -I$(srcdir)/include
17 # Modifies compiler and linker flags for pthreads compatibility.
19 AM_CXXFLAGS = @PTHREAD_CFLAGS@ -DGTEST_HAS_PTHREAD=1
20 AM_LIBS = @PTHREAD_LIBS@
23 # Build rules for libraries.
24 lib_LTLIBRARIES = lib/libgmock.la lib/libgmock_main.la
26 lib_libgmock_la_SOURCES = src/gmock-all.cc
28 pkginclude_HEADERS = \
29 include/gmock/gmock-actions.h \
30 include/gmock/gmock-cardinalities.h \
31 include/gmock/gmock-generated-actions.h \
32 include/gmock/gmock-generated-function-mockers.h \
33 include/gmock/gmock-generated-matchers.h \
34 include/gmock/gmock-generated-nice-strict.h \
35 include/gmock/gmock-matchers.h \
36 include/gmock/gmock-more-actions.h \
37 include/gmock/gmock-more-matchers.h \
38 include/gmock/gmock-spec-builders.h \
41 pkginclude_internaldir = $(pkgincludedir)/internal
42 pkginclude_internal_HEADERS = \
43 include/gmock/internal/gmock-generated-internal-utils.h \
44 include/gmock/internal/gmock-internal-utils.h \
45 include/gmock/internal/gmock-port.h \
46 include/gmock/internal/custom/gmock-generated-actions.h \
47 include/gmock/internal/custom/gmock-matchers.h \
48 include/gmock/internal/custom/gmock-port.h
50 lib_libgmock_main_la_SOURCES = src/gmock_main.cc
51 lib_libgmock_main_la_LIBADD = lib/libgmock.la
53 # Build rules for tests. Automake's naming for some of these variables isn't
54 # terribly obvious, so this is a brief reference:
56 # TESTS -- Programs run automatically by "make check"
57 # check_PROGRAMS -- Programs built by "make check" but not necessarily run
61 AM_LDFLAGS = $(GTEST_LDFLAGS)
63 # This exercises all major components of Google Mock. It also
64 # verifies that libgmock works.
65 TESTS += test/gmock-spec-builders_test
66 check_PROGRAMS += test/gmock-spec-builders_test
67 test_gmock_spec_builders_test_SOURCES = test/gmock-spec-builders_test.cc
68 test_gmock_spec_builders_test_LDADD = $(GTEST_LIBS) lib/libgmock.la
70 # This tests using Google Mock in multiple translation units. It also
71 # verifies that libgmock_main and libgmock work.
72 TESTS += test/gmock_link_test
73 check_PROGRAMS += test/gmock_link_test
74 test_gmock_link_test_SOURCES = \
75 test/gmock_link2_test.cc \
76 test/gmock_link_test.cc \
77 test/gmock_link_test.h
78 test_gmock_link_test_LDADD = $(GTEST_LIBS) lib/libgmock_main.la lib/libgmock.la
81 # Tests that fused gmock files compile and work.
82 TESTS += test/gmock_fused_test
83 check_PROGRAMS += test/gmock_fused_test
84 test_gmock_fused_test_SOURCES = \
85 fused-src/gmock-gtest-all.cc \
86 fused-src/gmock/gmock.h \
87 fused-src/gmock_main.cc \
88 fused-src/gtest/gtest.h \
90 test_gmock_fused_test_CPPFLAGS = -I"$(srcdir)/fused-src"
93 # Google Mock source files that we don't compile directly.
94 GMOCK_SOURCE_INGLUDES = \
95 src/gmock-cardinalities.cc \
96 src/gmock-internal-utils.cc \
97 src/gmock-matchers.cc \
98 src/gmock-spec-builders.cc \
101 EXTRA_DIST += $(GMOCK_SOURCE_INGLUDES)
103 # C++ tests that we don't compile using autotools.
105 test/gmock-actions_test.cc \
106 test/gmock_all_test.cc \
107 test/gmock-cardinalities_test.cc \
108 test/gmock_ex_test.cc \
109 test/gmock-generated-actions_test.cc \
110 test/gmock-generated-function-mockers_test.cc \
111 test/gmock-generated-internal-utils_test.cc \
112 test/gmock-generated-matchers_test.cc \
113 test/gmock-internal-utils_test.cc \
114 test/gmock-matchers_test.cc \
115 test/gmock-more-actions_test.cc \
116 test/gmock-nice-strict_test.cc \
117 test/gmock-port_test.cc \
118 test/gmock_stress_test.cc
120 # Python tests, which we don't run using autotools.
122 test/gmock_leak_test.py \
123 test/gmock_leak_test_.cc \
124 test/gmock_output_test.py \
125 test/gmock_output_test_.cc \
126 test/gmock_output_test_golden.txt \
127 test/gmock_test_utils.py
129 # Nonstandard package files for distribution.
135 # Pump scripts for generating Google Mock headers.
136 # TODO(chandlerc@google.com): automate the generation of *.h from *.h.pump.
138 include/gmock/gmock-generated-actions.h.pump \
139 include/gmock/gmock-generated-function-mockers.h.pump \
140 include/gmock/gmock-generated-matchers.h.pump \
141 include/gmock/gmock-generated-nice-strict.h.pump \
142 include/gmock/internal/gmock-generated-internal-utils.h.pump \
143 include/gmock/internal/custom/gmock-generated-actions.h.pump
145 # Script for fusing Google Mock and Google Test source files.
146 EXTRA_DIST += scripts/fuse_gmock_files.py
148 # The Google Mock Generator tool from the cppclean project.
150 scripts/generator/LICENSE \
151 scripts/generator/README \
152 scripts/generator/README.cppclean \
153 scripts/generator/cpp/__init__.py \
154 scripts/generator/cpp/ast.py \
155 scripts/generator/cpp/gmock_class.py \
156 scripts/generator/cpp/keywords.py \
157 scripts/generator/cpp/tokenize.py \
158 scripts/generator/cpp/utils.py \
159 scripts/generator/gmock_gen.py
161 # Script for diagnosing compiler errors in programs that use Google
163 EXTRA_DIST += scripts/gmock_doctor.py
169 # Microsoft Visual Studio 2005 projects.
171 msvc/2005/gmock.sln \
172 msvc/2005/gmock.vcproj \
173 msvc/2005/gmock_config.vsprops \
174 msvc/2005/gmock_main.vcproj \
175 msvc/2005/gmock_test.vcproj
177 # Microsoft Visual Studio 2010 projects.
179 msvc/2010/gmock.sln \
180 msvc/2010/gmock.vcxproj \
181 msvc/2010/gmock_config.props \
182 msvc/2010/gmock_main.vcxproj \
183 msvc/2010/gmock_test.vcxproj
186 # gmock_test.cc does not really depend on files generated by the
187 # fused-gmock-internal rule. However, gmock_test.o does, and it is
188 # important to include test/gmock_test.cc as part of this rule in order to
189 # prevent compiling gmock_test.o until all dependent files have been
191 $(test_gmock_fused_test_SOURCES): fused-gmock-internal
193 # TODO(vladl@google.com): Find a way to add Google Tests's sources here.
194 fused-gmock-internal: $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) \
195 $(lib_libgmock_la_SOURCES) $(GMOCK_SOURCE_INGLUDES) \
196 $(lib_libgmock_main_la_SOURCES) \
197 scripts/fuse_gmock_files.py
198 mkdir -p "$(srcdir)/fused-src"
199 chmod -R u+w "$(srcdir)/fused-src"
200 rm -f "$(srcdir)/fused-src/gtest/gtest.h"
201 rm -f "$(srcdir)/fused-src/gmock/gmock.h"
202 rm -f "$(srcdir)/fused-src/gmock-gtest-all.cc"
203 "$(srcdir)/scripts/fuse_gmock_files.py" "$(srcdir)/fused-src"
204 cp -f "$(srcdir)/src/gmock_main.cc" "$(srcdir)/fused-src"
206 maintainer-clean-local:
207 rm -rf "$(srcdir)/fused-src"
210 # Death tests may produce core dumps in the build directory. In case
211 # this happens, clean them to keep distcleancheck happy.
214 # Disables 'make install' as installing a compiled version of Google
215 # Mock can lead to undefined behavior due to violation of the
216 # One-Definition Rule.
219 echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Mock into your build system."
223 echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Mock into your build system."