Use gtest and gmock if installed.
[platform/upstream/glog.git] / Makefile.am
1 ## Process this file with automake to produce Makefile.in
2
3 # Make sure that when we re-make ./configure, we get the macros we need
4 ACLOCAL_AMFLAGS = -I m4
5
6 # This is so we can #include <glog/foo>
7 AM_CPPFLAGS = -I$(top_srcdir)/src
8
9 # This is mostly based on configure options
10 AM_CXXFLAGS =
11
12 # These are good warnings to turn on by default
13 if GCC
14 AM_CXXFLAGS += -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare
15 endif
16
17 # These are x86-specific, having to do with frame-pointers
18 if X86_64
19 if ENABLE_FRAME_POINTERS
20 AM_CXXFLAGS += -fno-omit-frame-pointer
21 else
22   # TODO(csilvers): check if -fomit-frame-pointer might be in $(CXXFLAGS),
23   #                 before setting this.
24 AM_CXXFLAGS += -DNO_FRAME_POINTER
25 endif
26 endif
27
28 glogincludedir = $(includedir)/glog
29 ## The .h files you want to install (that is, .h files that people
30 ## who install this package can include in their own applications.)
31 ## We have to include both the .h and .h.in forms.  The latter we
32 ## put in noinst_HEADERS.
33 gloginclude_HEADERS = src/glog/log_severity.h
34 nodist_gloginclude_HEADERS = src/glog/logging.h src/glog/raw_logging.h src/glog/vlog_is_on.h src/glog/stl_logging.h
35 noinst_HEADERS = src/glog/logging.h.in src/glog/raw_logging.h.in src/glog/vlog_is_on.h.in src/glog/stl_logging.h.in
36
37 docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION)
38 ## This is for HTML and other documentation you want to install.
39 ## Add your documentation files (in doc/) in addition to these
40 ## top-level boilerplate files.  Also add a TODO file if you have one.
41 dist_doc_DATA = AUTHORS COPYING ChangeLog INSTALL NEWS README \
42         doc/designstyle.css doc/glog.html
43
44 ## The libraries (.so's) you want to install
45 lib_LTLIBRARIES =
46
47 # The libraries libglog depends on.
48 COMMON_LIBS = $(PTHREAD_LIBS) $(GFLAGS_LIBS) $(UNWIND_LIBS)
49 # Libraries for our unittest.
50 TEST_LIBS = $(GTEST_LIBS) $(GMOCK_LIBS)
51
52 ## unittests you want to run when people type 'make check'.
53 ## TESTS is for binary unittests, check_SCRIPTS for script-based unittests.
54 ## TESTS_ENVIRONMENT sets environment variables for when you run unittest,
55 ## but it only seems to take effect for *binary* unittests (argh!)
56 TESTS =
57 TESTS_ENVIRONMENT =
58 check_SCRIPTS =
59 # Every time you add a unittest to check_SCRIPTS, add it here too
60 noinst_SCRIPTS =
61 # Binaries used for script-based unittests.
62 TEST_BINARIES =
63
64 TESTS += logging_unittest
65 logging_unittest_SOURCES = $(gloginclude_HEADERS) \
66                             src/logging_unittest.cc \
67                             src/config_for_unittests.h
68 nodist_logging_unittest_SOURCES = $(nodist_gloginclude_HEADERS)
69 logging_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
70 logging_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
71 logging_unittest_LDADD = libglog.la $(COMMON_LIBS) $(TEST_LIBS)
72
73 check_SCRIPTS += logging_striplog_test_sh
74 noinst_SCRIPTS += src/logging_striplog_test.sh
75 logging_striplog_test_sh: logging_striptest0 logging_striptest2 logging_striptest10
76         $(top_srcdir)/src/logging_striplog_test.sh
77
78 check_SCRIPTS += demangle_unittest_sh
79 noinst_SCRIPTS += src/demangle_unittest.sh
80 demangle_unittest_sh: demangle_unittest
81         $(top_srcdir)/demangle_unittest  # force to create lt-demangle_unittest
82         $(top_srcdir)/src/demangle_unittest.sh
83
84 check_SCRIPTS += signalhandler_unittest_sh
85 noinst_SCRIPTS += src/signalhandler_unittest.sh
86 signalhandler_unittest_sh: signalhandler_unittest
87         # force to create lt-signalhandler_unittest
88         $(top_srcdir)/signalhandler_unittest
89         $(top_srcdir)/src/signalhandler_unittest.sh
90
91 TEST_BINARIES += logging_striptest0
92 logging_striptest0_SOURCES = $(gloginclude_HEADERS) \
93                              src/logging_striptest_main.cc
94 nodist_logging_striptest0_SOURCES = $(nodist_gloginclude_HEADERS)
95 logging_striptest0_CXXFLAGS = $(PTHREAD_CFLAGS)
96 logging_striptest0_LDFLAGS = $(PTHREAD_CFLAGS)
97 logging_striptest0_LDADD = libglog.la $(COMMON_LIBS)
98
99 TEST_BINARIES += logging_striptest2
100 logging_striptest2_SOURCES = $(gloginclude_HEADERS) \
101                              src/logging_striptest2.cc
102 nodist_logging_striptest2_SOURCES = $(nodist_gloginclude_HEADERS)
103 logging_striptest2_CXXFLAGS = $(PTHREAD_CFLAGS)
104 logging_striptest2_LDFLAGS = $(PTHREAD_CFLAGS)
105 logging_striptest2_LDADD = libglog.la $(COMMON_LIBS)
106
107 TEST_BINARIES += logging_striptest10
108 logging_striptest10_SOURCES = $(gloginclude_HEADERS) \
109                               src/logging_striptest10.cc
110 nodist_logging_striptest10_SOURCES = $(nodist_gloginclude_HEADERS)
111 logging_striptest10_CXXFLAGS = $(PTHREAD_CFLAGS)
112 logging_striptest10_LDFLAGS = $(PTHREAD_CFLAGS)
113 logging_striptest10_LDADD = libglog.la $(COMMON_LIBS)
114
115 TESTS += demangle_unittest
116 demangle_unittest_SOURCES = $(gloginclude_HEADERS) \
117                             src/demangle_unittest.cc
118 nodist_demangle_unittest_SOURCES = $(nodist_gloginclude_HEADERS)
119 demangle_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
120 demangle_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
121 demangle_unittest_LDADD = libglog.la $(COMMON_LIBS) $(TEST_LIBS)
122
123 TESTS += stacktrace_unittest
124 stacktrace_unittest_SOURCES = $(gloginclude_HEADERS) \
125                               src/stacktrace_unittest.cc
126 nodist_stacktrace_unittest_SOURCES = $(nodist_gloginclude_HEADERS)
127 stacktrace_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
128 stacktrace_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
129 stacktrace_unittest_LDADD = libglog.la $(COMMON_LIBS)
130
131 TESTS += symbolize_unittest
132 symbolize_unittest_SOURCES = $(gloginclude_HEADERS) \
133                               src/symbolize_unittest.cc
134 nodist_symbolize_unittest_SOURCES = $(nodist_gloginclude_HEADERS)
135 symbolize_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
136 symbolize_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
137 symbolize_unittest_LDADD = libglog.la $(COMMON_LIBS) $(TEST_LIBS)
138
139 TESTS += stl_logging_unittest
140 stl_logging_unittest_SOURCES = $(gloginclude_HEADERS) \
141                                src/stl_logging_unittest.cc
142 nodist_stl_logging_unittest_SOURCES = $(nodist_gloginclude_HEADERS)
143 stl_logging_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
144 stl_logging_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
145 stl_logging_unittest_LDADD = libglog.la $(COMMON_LIBS)
146
147 TEST_BINARIES += signalhandler_unittest
148 signalhandler_unittest_SOURCES = $(gloginclude_HEADERS) \
149                                src/signalhandler_unittest.cc
150 nodist_signalhandler_unittest_SOURCES = $(nodist_gloginclude_HEADERS)
151 signalhandler_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
152 signalhandler_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
153 signalhandler_unittest_LDADD = libglog.la $(COMMON_LIBS)
154
155 TESTS += utilities_unittest
156 utilities_unittest_SOURCES = $(gloginclude_HEADERS) \
157                              src/utilities_unittest.cc
158 nodist_utilities_unittest_SOURCES = $(nodist_gloginclude_HEADERS)
159 utilities_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
160 utilities_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
161 utilities_unittest_LDADD = libglog.la $(COMMON_LIBS) $(TEST_LIBS)
162
163 ## vvvv RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS
164
165 lib_LTLIBRARIES += libglog.la
166 libglog_la_SOURCES = $(gloginclude_HEADERS) \
167                        src/logging.cc src/raw_logging.cc src/vlog_is_on.cc \
168                        src/utilities.cc src/utilities.h \
169                        src/demangle.cc src/demangle.h \
170                        src/stacktrace.h \
171                        src/stacktrace_generic-inl.h \
172                        src/stacktrace_libunwind-inl.h \
173                        src/stacktrace_powerpc-inl.h \
174                        src/stacktrace_x86-inl.h \
175                        src/stacktrace_x86_64-inl.h \
176                        src/symbolize.cc src/symbolize.h \
177                        src/signalhandler.cc \
178                        src/base/mutex.h src/base/googleinit.h \
179                        src/base/commandlineflags.h src/googletest.h
180 nodist_libglog_la_SOURCES = $(nodist_gloginclude_HEADERS)
181
182 libglog_la_CXXFLAGS = $(PTRHEAD_CFLAGS) -DNDEBUG
183 libglog_la_LDFLAGS = $(PTRHEAD_CFLAGS)
184 libglog_la_LIBADD = $(COMMON_LIBS)
185
186 ## The location of the windows project file for each binary we make
187 WINDOWS_PROJECTS = google-glog.sln
188 WINDOWS_PROJECTS += vsprojects/libglog/libglog.vcproj
189 WINDOWS_PROJECTS += vsprojects/logging_unittest/logging_unittest.vcproj
190
191 ## ^^^^ END OF RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS
192
193
194 ## This should always include $(TESTS), but may also include other
195 ## binaries that you compile but don't want automatically installed.
196 noinst_PROGRAMS = $(TESTS) $(TEST_BINARIES)
197
198 rpm: dist-gzip packages/rpm.sh packages/rpm/rpm.spec
199         @cd packages && ./rpm.sh ${PACKAGE} ${VERSION}
200
201 deb: dist-gzip packages/deb.sh packages/deb/*
202         @cd packages && ./deb.sh ${PACKAGE} ${VERSION}
203
204 # Windows wants write permission to .vcproj files and maybe even sln files.
205 dist-hook:
206         test -e "$(distdir)/vsprojects" \
207            && chmod -R u+w $(distdir)/*.sln $(distdir)/vsprojects/
208
209 libtool: $(LIBTOOL_DEPS)
210         $(SHELL) ./config.status --recheck
211
212 EXTRA_DIST = packages/rpm.sh packages/rpm/rpm.spec packages/deb.sh packages/deb \
213         $(SCRIPTS) src/logging_unittest.err src/demangle_unittest.txt \
214         src/windows/config.h src/windows/port.h src/windows/port.cc \
215         src/windows/preprocess.sh \
216         src/windows/glog/log_severity.h src/windows/glog/logging.h \
217         src/windows/glog/raw_logging.h src/windows/glog/stl_logging.h \
218         src/windows/glog/vlog_is_on.h \
219         $(WINDOWS_PROJECTS)