]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gprofng/src/Makefile.am
Update year range in gprofng copyright notices
[thirdparty/binutils-gdb.git] / gprofng / src / Makefile.am
1 ## Process this file with automake to generate Makefile.in
2 #
3 # Copyright (C) 2021-2023 Free Software Foundation, Inc.
4 #
5 # This file is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # This program 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
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; see the file COPYING3. If not see
17 # <http://www.gnu.org/licenses/>.
18
19 AUTOMAKE_OPTIONS = foreign
20 ACLOCAL_AMFLAGS = -I . -I .. -I ../..
21
22 CCSOURCES = \
23 Application.cc \
24 BaseMetric.cc \
25 BaseMetricTreeNode.cc \
26 CallStack.cc \
27 CatchOutOfMemory.cc \
28 ClassFile.cc \
29 Command.cc \
30 CompCom.cc \
31 DataObject.cc \
32 DataSpace.cc \
33 Data_window.cc \
34 DataStream.cc \
35 DbeApplication.cc \
36 DbeFile.cc \
37 DbeJarFile.cc \
38 DbeLock.cc \
39 DbeSession.cc \
40 DbeThread.cc \
41 DbeView.cc \
42 DerivedMetrics.cc \
43 Disasm.cc \
44 Dwarf.cc \
45 DwarfLib.cc \
46 Elf.cc \
47 Emsg.cc \
48 Experiment.cc \
49 Exp_Layout.cc \
50 ExpGroup.cc \
51 Expression.cc \
52 FileData.cc \
53 Filter.cc \
54 FilterSet.cc \
55 Function.cc \
56 HeapMap.cc \
57 HeapData.cc \
58 HeapActivity.cc \
59 Hist_data.cc \
60 IndexObject.cc \
61 IOActivity.cc \
62 LoadObject.cc \
63 MachineModel.cc \
64 MemObject.cc \
65 MemorySpace.cc \
66 Metric.cc \
67 MetricList.cc \
68 Module.cc \
69 Ovw_data.cc \
70 PRBTree.cc \
71 PathTree.cc \
72 PreviewExp.cc \
73 Print.cc \
74 SAXParserFactory.cc \
75 Sample.cc \
76 Settings.cc \
77 SourceFile.cc \
78 Stabs.cc \
79 Stats_data.cc \
80 StringBuilder.cc \
81 Table.cc \
82 QLParser.tab.cc \
83 dbe_collctrl.cc \
84 i18n.cc \
85 parse.cc \
86 UserLabel.cc \
87 util.cc \
88 Dbe.cc \
89 $(NULL)
90
91 CSOURCES = \
92 dbe_hwcdrv.c \
93 dbe_hwcfuncs.c \
94 dbe_hwctable.c \
95 dbe_memmgr.c \
96 gethrtime.c \
97 $(NULL)
98
99 LIBGPROFNG = libgprofng.la
100
101 # This is where we get zlib from. zlibdir is -L../zlib and zlibinc is
102 # -I../zlib, unless we were configured with --with-system-zlib, in which
103 # case both are empty.
104 ZLIB = @zlibdir@ -lz
105 ZLIBINC = @zlibinc@
106
107 LOCALEDIR = @localedir@
108 SYSCONFDIR = @sysconfdir@
109
110 AM_CPPFLAGS = $(GPROFNG_CPPFLAGS) -DLOCALEDIR=\"$(LOCALEDIR)\" \
111 -DSYSCONFDIR=\"$(SYSCONFDIR)\" -DLIBDIR=\"$(libdir)\" \
112 -I.. -I$(srcdir) \
113 -I$(srcdir)/../common \
114 -I$(srcdir)/../../include -I$(srcdir)/../../opcodes \
115 -I../../bfd -I$(srcdir)/../../bfd $(ZLIBINC)
116 AM_CFLAGS = $(GPROFNG_CFLAGS) $(PTHREAD_CFLAGS) \
117 $(GPROFNG_NO_SWITCH_CFLAGS)
118 AM_CXXFLAGS = $(AM_CFLAGS)
119
120 QLParser.tab.cc QLParser.tab.hh: QLParser.yy
121 $(BISON) $^
122
123 BUILT_SOURCES = QLParser.tab.hh
124 EXTRA_DIST = QLParser.yy $(man_MANS)
125
126
127 pkglib_LTLIBRARIES = $(LIBGPROFNG)
128 libgprofng_la_SOURCES = $(CCSOURCES) $(CSOURCES)
129 libgprofng_la_LDFLAGS = -version-info 0:0:0
130
131 # Pass -lpthread instead of $(PTHREAD_LIBS) due to $(PTHREAD_LIBS) being empty
132 # when -nostdlib is passed to libtool.
133 # See bug 29364 - libgprofng.so: needs to link against -pthread
134 libgprofng_la_LIBADD = $(top_builddir)/../opcodes/libopcodes.la \
135 $(top_builddir)/../bfd/libbfd.la \
136 $(GPROFNG_LIBADD) \
137 -lpthread -ldl
138
139 dbedir = $(SYSCONFDIR)
140 dbe_DATA = $(srcdir)/gprofng.rc
141
142
143 bin_PROGRAMS = gp-archive gp-collect-app gprofng gp-display-text gp-display-src
144
145 gp_archive_SOURCES = gp-archive.cc ArchiveExp.cc
146 gp_archive_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
147
148 gp_collect_app_SOURCES = gp-collect-app.cc checks.cc envsets.cc count.cc
149 gp_collect_app_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
150
151 gprofng_SOURCES = gprofng.cc
152 gprofng_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
153
154 gp_display_src_SOURCES = gp-display-src.cc
155 gp_display_src_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
156
157 gp_display_text_SOURCES = gp-display-text.cc ipc.cc ipcio.cc
158 gp_display_text_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
159
160
161 if BUILD_MAN
162
163 man_MANS = gprofng.1 \
164 gp-archive.1 \
165 gp-collect-app.1 \
166 gp-display-src.1 \
167 gp-display-text.1
168
169 MAINTAINERCLEANFILES = $(man_MANS)
170
171 # The man pages depend on the version number and on a help2man include file.
172 common_mandeps = $(top_srcdir)/../bfd/version.m4
173
174 # Use -o so that the `missing' program can infer the output file.
175 # Embolden subcommand names in the output, and include a SEE ALSO.
176 # Arrange to regenerate the output if we have help2man, but leave the
177 # disted output there otherwise.
178 # Some extra annoying complexity is in place so that people without
179 # help2man dno't accidentally overwrite the manpage.
180
181 INFO_PAGE = "gprofng"
182 MANUAL = "User Commands"
183 TEXT_GPROFNG = "the driver for the gprofng tool suite"
184 TEXT_GP_ARCHIVE = "archive gprofng experiment data"
185 TEXT_GP_COLLECT_APP = "collect performance data for the target application"
186 TEXT_GP_DISPLAY_SRC = "display the source code, optionally interleaved with the disassembly of the target object"
187 TEXT_GP_DISPLAY_TEXT = "display the performance data in plain text format"
188
189 HELP2MAN_OPT = --libtool --no-info --info-page=$(INFO_PAGE) --manual=$(MANUAL)
190 H2M_FILTER = | sed 's/\.TP/\.TP\n.B/' | sed 's/Commands:/\.SH COMMANDS/' \
191 | sed 's/See also:/\.SH SEE ALSO/' | sed 's/Documentation:/.SH DOCUMENTATION/' \
192 | sed 's/Limitations:/.SH LIMITATIONS/'
193
194 gprofng.1: $(srcdir)/gprofng.cc $(common_mandeps) | ./gprofng$(EXEEXT)
195 $(AM_V_GEN)_BUILDING_MANPAGE=1 $(HELP2MAN) $(HELP2MAN_OPT) \
196 --name=$(TEXT_GPROFNG) ./gprofng$(EXEEXT) $(H2M_FILTER) > $@
197
198 gp-archive.1: $(srcdir)/gp-archive.cc $(common_mandeps) | ./gp-archive$(EXEEXT)
199 $(AM_V_GEN)_BUILDING_MANPAGE=1 $(HELP2MAN) $(HELP2MAN_OPT) \
200 --name=$(TEXT_GP_ARCHIVE) ./gp-archive$(EXEEXT) $(H2M_FILTER) > $@
201
202 gp-collect-app.1: $(srcdir)/gp-collect-app.cc $(common_mandeps) | ./gp-collect-app$(EXEEXT)
203 $(AM_V_GEN)_BUILDING_MANPAGE=1 $(HELP2MAN) $(HELP2MAN_OPT) \
204 --name=$(TEXT_GP_COLLECT_APP) ./gp-collect-app$(EXEEXT) $(H2M_FILTER) > $@
205
206 gp-display-src.1: $(srcdir)/gp-display-src.cc $(srcdir)/Command.cc \
207 $(common_mandeps) | ./gp-display-src$(EXEEXT)
208 $(AM_V_GEN)_BUILDING_MANPAGE=1 $(HELP2MAN) $(HELP2MAN_OPT) \
209 --name=$(TEXT_GP_DISPLAY_SRC) ./gp-display-src$(EXEEXT) $(H2M_FILTER) > $@
210
211 gp-display-text.1: $(srcdir)/gp-display-text.cc $(srcdir)/Command.cc \
212 $(common_mandeps) | ./gp-display-text$(EXEEXT)
213 $(AM_V_GEN)_BUILDING_MANPAGE=1 $(HELP2MAN) $(HELP2MAN_OPT) \
214 --name=$(TEXT_GP_DISPLAY_TEXT) ./gp-display-text$(EXEEXT) $(H2M_FILTER) > $@
215
216 endif
217
218 # Distribution involves building the binaries to generate the manpage,
219 # so ensure that the necessary libraries are built at dist time.
220 dist-hook: $(LIBGPROFNG)
221
222 .PHONY: install-data-local
223
224 install-data-local: install-pkglibLTLIBRARIES
225 rm -f $(DESTDIR)/$(pkglibdir)/*.la $(DESTDIR)/$(pkglibdir)/*.a