Re-organize the way to produce stacktrace.
[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 gloginclude_HEADERS = src/glog/log_severity.h src/glog/logging.h src/glog/raw_logging.h src/glog/vlog_is_on.h src/glog/stl_logging.h
32
33 docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION)
34 ## This is for HTML and other documentation you want to install.
35 ## Add your documentation files (in doc/) in addition to these
36 ## top-level boilerplate files.  Also add a TODO file if you have one.
37 dist_doc_DATA = AUTHORS COPYING ChangeLog INSTALL NEWS README \
38         doc/designstyle.css doc/glog.html
39
40 ## The libraries (.so's) you want to install
41 lib_LTLIBRARIES =
42
43 # The libraries libglog depends on.
44 COMMON_LIBS=$(PTHREAD_LIBS) $(GFLAGS_LIBS) $(UNWIND_LIBS)
45
46 ## unittests you want to run when people type 'make check'.
47 ## TESTS is for binary unittests, check_SCRIPTS for script-based unittests.
48 ## TESTS_ENVIRONMENT sets environment variables for when you run unittest,
49 ## but it only seems to take effect for *binary* unittests (argh!)
50 TESTS =
51 TESTS_ENVIRONMENT =
52 check_SCRIPTS =
53 # Every time you add a unittest to check_SCRIPTS, add it here too
54 noinst_SCRIPTS =
55 # Binaries used for script-based unittests.
56 TEST_BINARIES =
57
58 TESTS += logging_unittest
59 logging_unittest_SOURCES = $(gloginclude_HEADERS) src/config.h \
60                             src/logging_unittest.cc
61 logging_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
62 logging_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
63 logging_unittest_LDADD = libglog.la $(COMMON_LIBS)
64
65 check_SCRIPTS += logging_striplog_test_sh
66 noinst_SCRIPTS += src/logging_striplog_test.sh
67 logging_striplog_test_sh: logging_striptest0 logging_striptest2 logging_striptest10
68         $(top_srcdir)/src/logging_striplog_test.sh
69
70 check_SCRIPTS += demangle_unittest_sh
71 noinst_SCRIPTS += src/demangle_unittest.sh
72 demangle_unittest_sh: demangle_unittest
73         $(top_srcdir)/demangle_unittest  # force to create lt-demangle_unittest
74         $(top_srcdir)/src/demangle_unittest.sh
75
76 check_SCRIPTS += signalhandler_unittest_sh
77 noinst_SCRIPTS += src/signalhandler_unittest.sh
78 signalhandler_unittest_sh: signalhandler_unittest
79         # force to create lt-signalhandler_unittest
80         $(top_srcdir)/signalhandler_unittest
81         $(top_srcdir)/src/signalhandler_unittest.sh
82
83 TEST_BINARIES += logging_striptest0
84 logging_striptest0_SOURCES = $(gloginclude_HEADERS) src/config.h \
85                              src/logging_striptest_main.cc
86 logging_striptest0_CXXFLAGS = $(PTHREAD_CFLAGS)
87 logging_striptest0_LDFLAGS = $(PTHREAD_CFLAGS)
88 logging_striptest0_LDADD = libglog.la $(COMMON_LIBS)
89
90 TEST_BINARIES += logging_striptest2
91 logging_striptest2_SOURCES = $(gloginclude_HEADERS) src/config.h \
92                              src/logging_striptest2.cc
93 logging_striptest2_CXXFLAGS = $(PTHREAD_CFLAGS)
94 logging_striptest2_LDFLAGS = $(PTHREAD_CFLAGS)
95 logging_striptest2_LDADD = libglog.la $(COMMON_LIBS)
96
97 TEST_BINARIES += logging_striptest10
98 logging_striptest10_SOURCES = $(gloginclude_HEADERS) src/config.h \
99                               src/logging_striptest10.cc
100 logging_striptest10_CXXFLAGS = $(PTHREAD_CFLAGS)
101 logging_striptest10_LDFLAGS = $(PTHREAD_CFLAGS)
102 logging_striptest10_LDADD = libglog.la $(COMMON_LIBS)
103
104 TESTS += demangle_unittest
105 demangle_unittest_SOURCES = $(gloginclude_HEADERS) src/config.h \
106                             src/demangle_unittest.cc
107 demangle_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
108 demangle_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
109 demangle_unittest_LDADD = libglog.la $(COMMON_LIBS)
110
111 TESTS += stacktrace_unittest
112 stacktrace_unittest_SOURCES = $(gloginclude_HEADERS) src/config.h \
113                               src/stacktrace_unittest.cc
114 stacktrace_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
115 stacktrace_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
116 stacktrace_unittest_LDADD = libglog.la $(COMMON_LIBS)
117
118 TESTS += symbolize_unittest
119 symbolize_unittest_SOURCES = $(gloginclude_HEADERS) src/config.h \
120                               src/symbolize_unittest.cc
121 symbolize_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
122 symbolize_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
123 symbolize_unittest_LDADD = libglog.la $(COMMON_LIBS)
124
125 TESTS += stl_logging_unittest
126 stl_logging_unittest_SOURCES = $(gloginclude_HEADERS) src/config.h \
127                                src/stl_logging_unittest.cc
128 stl_logging_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
129 stl_logging_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
130 stl_logging_unittest_LDADD = libglog.la $(COMMON_LIBS)
131
132 TEST_BINARIES += signalhandler_unittest
133 signalhandler_unittest_SOURCES = $(gloginclude_HEADERS) src/config.h \
134                                src/signalhandler_unittest.cc
135 signalhandler_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
136 signalhandler_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
137 signalhandler_unittest_LDADD = libglog.la $(COMMON_LIBS)
138
139 TESTS += utilities_unittest
140 utilities_unittest_SOURCES = $(gloginclude_HEADERS) src/config.h \
141                              src/utilities_unittest.cc
142 utilities_unittest_CXXFLAGS = $(PTHREAD_CFLAGS)
143 utilities_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
144 utilities_unittest_LDADD = libglog.la $(COMMON_LIBS)
145
146 ## vvvv RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS
147
148 lib_LTLIBRARIES += libglog.la
149 libglog_la_SOURCES = $(gloginclude_HEADERS) src/config.h \
150                        src/logging.cc src/raw_logging.cc src/vlog_is_on.cc \
151                        src/utilities.cc src/utilities.h \
152                        src/demangle.cc src/demangle.h \
153                        src/stacktrace.h \
154                        src/stacktrace_generic-inl.h \
155                        src/stacktrace_libunwind-inl.h \
156                        src/stacktrace_powerpc-inl.h \
157                        src/stacktrace_x86-inl.h \
158                        src/stacktrace_x86_64-inl.h \
159                        src/symbolize.cc src/symbolize.h \
160                        src/signalhandler.cc \
161                        src/base/mutex.h src/base/googleinit.h \
162                        src/base/commandlineflags.h src/googletest.h
163
164 libglog_la_CXXFLAGS = $(PTRHEAD_CFLAGS) -DNDEBUG
165 libglog_la_LDFLAGS = $(PTRHEAD_CFLAGS)
166 libglog_la_LIBADD = $(COMMON_LIBS)
167
168 ## ^^^^ END OF RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS
169
170
171 ## This should always include $(TESTS), but may also include other
172 ## binaries that you compile but don't want automatically installed.
173 noinst_PROGRAMS = $(TESTS) $(TEST_BINARIES)
174
175 rpm: dist-gzip packages/rpm.sh packages/rpm/rpm.spec
176         @cd packages && ./rpm.sh ${PACKAGE} ${VERSION}
177
178 deb: dist-gzip packages/deb.sh packages/deb/*
179         @cd packages && ./deb.sh ${PACKAGE} ${VERSION}
180
181 # TODO(hamaji): We don't support Visual Studio for now.
182 ## Windows wants write permission to .vcproj files and maybe even sln files.
183 #dist-hook:
184 #       test -e "$(distdir)/vsprojects" \
185 #          && chmod -R u+w $(distdir)/*.sln $(distdir)/vsprojects/
186
187 libtool: $(LIBTOOL_DEPS)
188         $(SHELL) ./config.status --recheck
189 EXTRA_DIST = packages/rpm.sh packages/rpm/rpm.spec packages/deb.sh packages/deb \
190         $(SCRIPTS) src/logging_unittest.err src/demangle_unittest.txt