xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/Makefile.in (revision a8c74629f602faa0ccf8a463757d7baf858bbf3a)
1# Copyright (C) 1989-2019 Free Software Foundation, Inc.
2
3# This file is part of GDB.
4
5# This program 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.  If not, see <http://www.gnu.org/licenses/>.
17
18# Please keep lists in this file sorted alphabetically, with one item per line.
19# Here are the general guidelines for ordering files and directories:
20#
21#   - Files come before directories.
22#   - The extensions are not taken into account when comparing filenames, except
23#     if the filenames are otherwise equal.
24#   - A filename that is a prefix of another one comes before.
25#   - Underscores and dashes are treated equally, and come before alphanumeric
26#     characters.
27#
28# For example:
29#
30# SOME_FILES = \
31# 	foo.c \
32# 	foo.h \
33# 	foo-bar.c \
34# 	foobar.c \
35# 	foo/bar.c
36
37prefix = @prefix@
38exec_prefix = @exec_prefix@
39
40host_alias = @host_alias@
41target_alias = @target_alias@
42program_transform_name = @program_transform_name@
43bindir = @bindir@
44libdir = @libdir@
45tooldir = $(libdir)/$(target_alias)
46
47datadir = @datadir@
48localedir = @localedir@
49mandir = @mandir@
50man1dir = $(mandir)/man1
51man2dir = $(mandir)/man2
52man3dir = $(mandir)/man3
53man4dir = $(mandir)/man4
54man5dir = $(mandir)/man5
55man6dir = $(mandir)/man6
56man7dir = $(mandir)/man7
57man8dir = $(mandir)/man8
58man9dir = $(mandir)/man9
59infodir = @infodir@
60datarootdir = @datarootdir@
61docdir = @docdir@
62htmldir = @htmldir@
63pdfdir = @pdfdir@
64includedir = @includedir@
65
66install_sh = @install_sh@
67
68# This can be referenced by `LIBINTL' as computed by
69# ZW_GNU_GETTEXT_SISTER_DIR.
70top_builddir = .
71
72SHELL = @SHELL@
73EXEEXT = @EXEEXT@
74
75AWK = @AWK@
76LN_S = @LN_S@
77
78INSTALL = @INSTALL@
79INSTALL_PROGRAM = @INSTALL_PROGRAM@
80INSTALL_SCRIPT = @INSTALL_SCRIPT@
81INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
82INSTALL_DATA = @INSTALL_DATA@
83
84DESTDIR =
85
86AR = @AR@
87AR_FLAGS = qv
88RANLIB = @RANLIB@
89DLLTOOL = @DLLTOOL@
90WINDRES = @WINDRES@
91MIG = @MIG@
92STRIP = @STRIP@
93
94XGETTEXT = @XGETTEXT@
95GMSGFMT = @GMSGFMT@
96MSGMERGE = msgmerge
97
98PACKAGE = @PACKAGE@
99CATALOGS = @CATALOGS@
100
101CC = @CC@
102CXX = @CXX@
103CXX_DIALECT = @CXX_DIALECT@
104
105# Dependency tracking information.
106DEPMODE = @CCDEPMODE@
107DEPDIR = @DEPDIR@
108depcomp = $(SHELL) $(srcdir)/../depcomp
109
110# Directory containing source files.
111srcdir = @srcdir@
112VPATH = @srcdir@
113top_srcdir = @top_srcdir@
114
115include $(srcdir)/silent-rules.mk
116
117# Note that these are overridden by GNU make-specific code below if
118# GNU make is used.  The overrides implement dependency tracking.
119COMPILE.pre = $(CXX) -x c++ $(CXX_DIALECT)
120COMPILE.post = -c -o $@
121COMPILE = $(ECHO_CXX) $(COMPILE.pre) $(INTERNAL_CFLAGS) $(COMPILE.post)
122POSTCOMPILE = @true
123
124YACC = @YACC@
125
126# This is used to rebuild ada-lex.c from ada-lex.l.  If the program is
127# not defined, but ada-lex.c is present, compilation will continue,
128# possibly with a warning.
129FLEX = flex
130
131YLWRAP = $(srcdir)/../ylwrap
132
133# where to find makeinfo, preferably one designed for texinfo-2
134MAKEINFO = @MAKEINFO@
135MAKEINFOFLAGS = @MAKEINFOFLAGS@
136MAKEINFO_EXTRA_FLAGS = @MAKEINFO_EXTRA_FLAGS@
137MAKEINFO_CMD = $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFO_EXTRA_FLAGS)
138
139MAKEHTML = $(MAKEINFO_CMD) --html
140MAKEHTMLFLAGS =
141
142# Set this up with gcc if you have gnu ld and the loader will print out
143# line numbers for undefined references.
144#CC_LD = g++ -static
145CC_LD = $(CXX) $(CXX_DIALECT)
146
147# Where is our "include" directory?  Typically $(srcdir)/../include.
148# This is essentially the header file directory for the library
149# routines in libiberty.
150INCLUDE_DIR = $(srcdir)/../include
151INCLUDE_CFLAGS = -I$(INCLUDE_DIR)
152
153# Where is the "-liberty" library?  Typically in ../libiberty.
154LIBIBERTY = ../libiberty/libiberty.a
155
156# Where is the BFD library?  Typically in ../bfd.
157BFD_DIR = ../bfd
158BFD = $(BFD_DIR)/libbfd.a
159BFD_SRC = $(srcdir)/$(BFD_DIR)
160BFD_CFLAGS = -I$(BFD_DIR) -I$(BFD_SRC)
161
162# This is where we get zlib from.  zlibdir is -L../zlib and zlibinc is
163# -I../zlib, unless we were configured with --with-system-zlib, in which
164# case both are empty.
165ZLIB = @zlibdir@ -lz
166ZLIBINC = @zlibinc@
167
168# Where is the decnumber library?  Typically in ../libdecnumber.
169LIBDECNUMBER_DIR = ../libdecnumber
170LIBDECNUMBER = $(LIBDECNUMBER_DIR)/libdecnumber.a
171LIBDECNUMBER_SRC = $(srcdir)/$(LIBDECNUMBER_DIR)
172LIBDECNUMBER_CFLAGS = -I$(LIBDECNUMBER_DIR) -I$(LIBDECNUMBER_SRC)
173
174# Where is the READLINE library?  Typically in ../readline.
175READLINE_DIR = ../readline
176READLINE_SRC = $(srcdir)/$(READLINE_DIR)
177READLINE = @READLINE@
178READLINE_DEPS = @READLINE_DEPS@
179READLINE_CFLAGS = @READLINE_CFLAGS@
180
181# Where is expat?  This will be empty if expat was not available.
182LIBEXPAT = @LIBEXPAT@
183
184# Where is lzma?  This will be empty if lzma was not available.
185LIBLZMA = @LIBLZMA@
186
187# Where is libbabeltrace? This will be empty if lbabeltrace was not
188# available.
189LIBBABELTRACE = @LIBBABELTRACE@
190
191# Where is libipt?  This will be empty if libipt was not available.
192LIBIPT = @LIBIPT@
193
194# Where is libmpfr?  This will be empty if libmpfr was not available.
195LIBMPFR = @LIBMPFR@
196
197# GNU source highlight library.
198SRCHIGH_LIBS = @SRCHIGH_LIBS@
199SRCHIGH_CFLAGS = @SRCHIGH_CFLAGS@
200
201WARN_CFLAGS = @WARN_CFLAGS@
202WERROR_CFLAGS = @WERROR_CFLAGS@
203GDB_WARN_CFLAGS = $(WARN_CFLAGS)
204GDB_WERROR_CFLAGS = $(WERROR_CFLAGS)
205
206RDYNAMIC = @RDYNAMIC@
207
208# Where is the INTL library?  Typically in ../intl.
209INTL = @LIBINTL@
210INTL_DEPS = @LIBINTL_DEP@
211INTL_CFLAGS = @INCINTL@
212
213# Where is the ICONV library?  This will be empty if in libc or not available.
214LIBICONV = @LIBICONV@
215
216# Did the user give us a --with-gdb-datadir option?
217GDB_DATADIR = @GDB_DATADIR@
218
219# Code signing.
220CODESIGN = codesign
221CODESIGN_CERT = @CODESIGN_CERT@
222
223# Flags to pass to gdb when invoked with "make run".
224GDBFLAGS =
225
226# Helper code from gnulib.
227GNULIB_BUILDDIR = build-gnulib
228LIBGNU = $(GNULIB_BUILDDIR)/import/libgnu.a
229INCGNU = -I$(srcdir)/gnulib/import -I$(GNULIB_BUILDDIR)/import
230
231# Generated headers in the gnulib directory.  These must be listed
232# so that they are generated before other files are compiled.
233GNULIB_H = $(GNULIB_BUILDDIR)/import/string.h @GNULIB_STDINT_H@
234
235#
236# CLI sub directory definitons
237#
238SUBDIR_CLI_SRCS = \
239	cli/cli-cmds.c \
240	cli/cli-decode.c \
241	cli/cli-dump.c \
242	cli/cli-interp.c \
243	cli/cli-logging.c \
244	cli/cli-script.c \
245	cli/cli-setshow.c \
246	cli/cli-style.c \
247	cli/cli-utils.c
248
249SUBDIR_CLI_OBS = $(patsubst %.c,%.o,$(SUBDIR_CLI_SRCS))
250
251#
252# MI sub directory definitons
253#
254SUBDIR_MI_SRCS = \
255	mi/mi-cmd-break.c \
256	mi/mi-cmd-catch.c \
257	mi/mi-cmd-disas.c \
258	mi/mi-cmd-env.c \
259	mi/mi-cmd-file.c \
260	mi/mi-cmd-info.c \
261	mi/mi-cmd-stack.c \
262	mi/mi-cmd-target.c \
263	mi/mi-cmd-var.c \
264	mi/mi-cmds.c \
265	mi/mi-console.c \
266	mi/mi-getopt.c \
267	mi/mi-interp.c \
268	mi/mi-main.c \
269	mi/mi-out.c \
270	mi/mi-parse.c \
271	mi/mi-symbol-cmds.c
272
273SUBDIR_MI_OBS = $(patsubst %.c,%.o,$(SUBDIR_MI_SRCS))
274
275SUBDIR_MI_DEPS =
276SUBDIR_MI_LDFLAGS =
277SUBDIR_MI_CFLAGS =
278
279#
280# TUI sub directory definitions
281#
282SUBDIR_TUI_SRCS = \
283	tui/tui.c \
284	tui/tui-command.c \
285	tui/tui-data.c \
286	tui/tui-disasm.c \
287	tui/tui-file.c \
288	tui/tui-hooks.c \
289	tui/tui-interp.c \
290	tui/tui-io.c \
291	tui/tui-layout.c \
292	tui/tui-out.c \
293	tui/tui-regs.c \
294	tui/tui-source.c \
295	tui/tui-stack.c \
296	tui/tui-win.c \
297	tui/tui-windata.c \
298	tui/tui-wingeneral.c \
299	tui/tui-winsource.c
300
301SUBDIR_TUI_OBS = $(patsubst %.c,%.o,$(SUBDIR_TUI_SRCS))
302
303SUBDIR_TUI_DEPS =
304SUBDIR_TUI_LDFLAGS =
305SUBDIR_TUI_CFLAGS = -DTUI=1
306
307#
308# GCC Compile support sub-directory definitions
309#
310SUBDIR_GCC_COMPILE_SRCS = \
311	compile/compile.c \
312	compile/compile-c-support.c \
313	compile/compile-c-symbols.c \
314	compile/compile-c-types.c \
315	compile/compile-cplus-symbols.c \
316	compile/compile-cplus-types.c \
317	compile/compile-loc2c.c \
318	compile/compile-object-load.c \
319	compile/compile-object-run.c
320
321SUBDIR_GCC_COMPILE_OBS = $(patsubst %.c,%.o,$(filter %.c,$(SUBDIR_GCC_COMPILE_SRCS)))
322
323#
324# Guile sub directory definitons for guile support.
325#
326SUBDIR_GUILE_SRCS = \
327	guile/guile.c \
328	guile/scm-arch.c \
329	guile/scm-auto-load.c \
330	guile/scm-block.c \
331	guile/scm-breakpoint.c \
332	guile/scm-cmd.c \
333	guile/scm-disasm.c \
334	guile/scm-exception.c \
335	guile/scm-frame.c \
336	guile/scm-gsmob.c \
337	guile/scm-iterator.c \
338	guile/scm-lazy-string.c \
339	guile/scm-math.c \
340	guile/scm-objfile.c \
341	guile/scm-param.c \
342	guile/scm-ports.c \
343	guile/scm-pretty-print.c \
344	guile/scm-progspace.c \
345	guile/scm-safe-call.c \
346	guile/scm-string.c \
347	guile/scm-symbol.c \
348	guile/scm-symtab.c \
349	guile/scm-type.c \
350	guile/scm-utils.c \
351	guile/scm-value.c
352
353SUBDIR_GUILE_OBS = $(patsubst %.c,%.o,$(SUBDIR_GUILE_SRCS))
354
355SUBDIR_GUILE_DEPS =
356SUBDIR_GUILE_LDFLAGS =
357SUBDIR_GUILE_CFLAGS =
358
359#
360# python sub directory definitons
361#
362SUBDIR_PYTHON_SRCS = \
363	python/py-arch.c \
364	python/py-auto-load.c \
365	python/py-block.c \
366	python/py-bpevent.c \
367	python/py-breakpoint.c \
368	python/py-cmd.c \
369	python/py-continueevent.c \
370	python/py-event.c \
371	python/py-evtregistry.c \
372	python/py-evts.c \
373	python/py-exitedevent.c \
374	python/py-finishbreakpoint.c \
375	python/py-frame.c \
376	python/py-framefilter.c \
377	python/py-function.c \
378	python/py-gdb-readline.c \
379	python/py-inferior.c \
380	python/py-infevents.c \
381	python/py-infthread.c \
382	python/py-instruction.c \
383	python/py-lazy-string.c \
384	python/py-linetable.c \
385	python/py-newobjfileevent.c \
386	python/py-objfile.c \
387	python/py-param.c \
388	python/py-prettyprint.c \
389	python/py-progspace.c \
390	python/py-record.c \
391	python/py-record-btrace.c \
392	python/py-record-full.c \
393	python/py-signalevent.c \
394	python/py-stopevent.c \
395	python/py-symbol.c \
396	python/py-symtab.c \
397	python/py-threadevent.c \
398	python/py-type.c \
399	python/py-unwind.c \
400	python/py-utils.c \
401	python/py-value.c \
402	python/py-varobj.c \
403	python/py-xmethods.c \
404	python/python.c
405
406SUBDIR_PYTHON_OBS = $(patsubst %.c,%.o,$(SUBDIR_PYTHON_SRCS))
407
408SUBDIR_PYTHON_DEPS =
409SUBDIR_PYTHON_LDFLAGS =
410SUBDIR_PYTHON_CFLAGS =
411
412SUBDIR_UNITTESTS_SRCS = \
413	unittests/array-view-selftests.c \
414	unittests/child-path-selftests.c \
415	unittests/cli-utils-selftests.c \
416	unittests/common-utils-selftests.c \
417	unittests/copy_bitwise-selftests.c \
418	unittests/environ-selftests.c \
419	unittests/format_pieces-selftests.c \
420	unittests/function-view-selftests.c \
421	unittests/lookup_name_info-selftests.c \
422	unittests/memory-map-selftests.c \
423	unittests/memrange-selftests.c \
424	unittests/offset-type-selftests.c \
425	unittests/observable-selftests.c \
426	unittests/optional-selftests.c \
427	unittests/parse-connection-spec-selftests.c \
428	unittests/ptid-selftests.c \
429	unittests/mkdir-recursive-selftests.c \
430	unittests/rsp-low-selftests.c \
431	unittests/scoped_fd-selftests.c \
432	unittests/scoped_mmap-selftests.c \
433	unittests/scoped_restore-selftests.c \
434	unittests/string_view-selftests.c \
435	unittests/style-selftests.c \
436	unittests/tracepoint-selftests.c \
437	unittests/unpack-selftests.c \
438	unittests/utils-selftests.c \
439	unittests/xml-utils-selftests.c
440
441SUBDIR_UNITTESTS_OBS = $(patsubst %.c,%.o,$(SUBDIR_UNITTESTS_SRCS))
442
443SUBDIR_TARGET_SRCS = target/waitstatus.c
444SUBDIR_TARGET_OBS = $(patsubst %.c,%.o,$(SUBDIR_TARGET_SRCS))
445
446
447# Opcodes currently live in one of two places.  Either they are in the
448# opcode library, typically ../opcodes, or they are in a header file
449# in INCLUDE_DIR.
450# Where is the "-lopcodes" library, with (some of) the opcode tables and
451# disassemblers?
452OPCODES_DIR = ../opcodes
453OPCODES_SRC = $(srcdir)/$(OPCODES_DIR)
454OPCODES = $(OPCODES_DIR)/libopcodes.a
455# Where are the other opcode tables which only have header file
456# versions?
457OP_INCLUDE = $(INCLUDE_DIR)/opcode
458OPCODES_CFLAGS = -I$(OP_INCLUDE)
459
460# The simulator is usually nonexistent; targets that include one
461# should set this to list all the .o or .a files to be linked in.
462SIM = @SIM@
463
464WIN32LIBS = @WIN32LIBS@
465
466# Tcl et al cflags and libraries
467TCL = @TCL_LIBRARY@
468TCL_CFLAGS = @TCL_INCLUDE@
469GDBTKLIBS = @GDBTKLIBS@
470# Extra flags that the GDBTK files need:
471GDBTK_CFLAGS = @GDBTK_CFLAGS@
472
473TK = @TK_LIBRARY@
474TK_CFLAGS = @TK_INCLUDE@
475
476X11_CFLAGS = @TK_XINCLUDES@
477X11_LDFLAGS =
478X11_LIBS =
479
480WIN32LDAPP = @WIN32LDAPP@
481
482LIBGUI = @LIBGUI@
483GUI_CFLAGS_X = @GUI_CFLAGS_X@
484IDE_CFLAGS = $(GUI_CFLAGS_X) $(IDE_CFLAGS_X)
485
486ALL_TCL_CFLAGS = $(TCL_CFLAGS) $(TK_CFLAGS)
487
488# The version of gdbtk we're building. This should be kept
489# in sync with GDBTK_VERSION and friends in gdbtk.h.
490GDBTK_VERSION = 1.0
491GDBTK_LIBRARY = $(datadir)/insight$(GDBTK_VERSION)
492
493# Gdbtk requires an absolute path to the source directory or
494# the testsuite won't run properly.
495GDBTK_SRC_DIR = @GDBTK_SRC_DIR@
496
497SUBDIR_GDBTK_OBS = \
498	gdbtk.o \
499	gdbtk-bp.o \
500	gdbtk-cmds.o \
501	gdbtk-hooks.o \
502	gdbtk-interp.o \
503	gdbtk-register.o \
504	gdbtk-stack.o \
505	gdbtk-varobj.o \
506	gdbtk-wrapper.o
507
508SUBDIR_GDBTK_SRCS = \
509	gdbtk/generic/gdbtk.c \
510	gdbtk/generic/gdbtk-bp.c \
511	gdbtk/generic/gdbtk-cmds.c \
512	gdbtk/generic/gdbtk-hooks.c \
513	gdbtk/generic/gdbtk-interp.c \
514	gdbtk/generic/gdbtk-main.c \
515	gdbtk/generic/gdbtk-register.c \
516	gdbtk/generic/gdbtk-stack.c \
517	gdbtk/generic/gdbtk-varobj.c \
518	gdbtk/generic/gdbtk-wrapper.c
519
520SUBDIR_GDBTK_DEPS = $(LIBGUI) $(TCL_DEPS) $(TK_DEPS)
521SUBDIR_GDBTK_LDFLAGS =
522SUBDIR_GDBTK_CFLAGS = -DGDBTK
523
524CONFIG_OBS = @CONFIG_OBS@
525CONFIG_SRCS = @CONFIG_SRCS@
526CONFIG_DEPS = @CONFIG_DEPS@
527CONFIG_LDFLAGS = @CONFIG_LDFLAGS@
528ENABLE_CFLAGS = @ENABLE_CFLAGS@
529CONFIG_ALL = @CONFIG_ALL@
530CONFIG_CLEAN = @CONFIG_CLEAN@
531CONFIG_INSTALL = @CONFIG_INSTALL@
532CONFIG_UNINSTALL = @CONFIG_UNINSTALL@
533HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@
534
535CONFIG_SRC_SUBDIR = arch cli mi common compile tui unittests guile python \
536	target nat
537CONFIG_DEP_SUBDIR = $(addsuffix /$(DEPDIR),$(CONFIG_SRC_SUBDIR))
538
539# -I. for config files.
540# -I$(srcdir) for gdb internal headers.
541# -I$(srcdir)/config for more generic config files.
542
543# It is also possible that you will need to add -I/usr/include/sys if
544# your system doesn't have fcntl.h in /usr/include (which is where it
545# should be according to Posix).
546DEFS = @DEFS@
547GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config \
548	-DLOCALEDIR="\"$(localedir)\"" $(DEFS)
549
550# MH_CFLAGS, if defined, has host-dependent CFLAGS from the config directory.
551GLOBAL_CFLAGS = $(MH_CFLAGS)
552
553PROFILE_CFLAGS = @PROFILE_CFLAGS@
554
555# These are specifically reserved for setting from the command line
556# when running make.  I.E.: "make CFLAGS=-Wmissing-prototypes".
557CFLAGS = @CFLAGS@
558CXXFLAGS = @CXXFLAGS@
559CPPFLAGS = @CPPFLAGS@
560
561# Set by configure, for e.g. expat.  Python installations are such that
562# C headers are included using their basename (for example, we #include
563# <Python.h> rather than, say, <python/Python.h>).  Since the file names
564# are sometimes a little generic, we think that the risk of collision
565# with other header files is high.  If that happens, we try to mitigate
566# a bit the consequences by putting the Python includes last in the list.
567INTERNAL_CPPFLAGS = $(CPPFLAGS) @GUILE_CPPFLAGS@ @PYTHON_CPPFLAGS@
568
569# INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
570INTERNAL_CFLAGS_BASE = \
571	$(CXXFLAGS) $(GLOBAL_CFLAGS) $(PROFILE_CFLAGS) \
572	$(GDB_CFLAGS) $(OPCODES_CFLAGS) $(READLINE_CFLAGS) $(ZLIBINC) \
573	$(BFD_CFLAGS) $(INCLUDE_CFLAGS) $(LIBDECNUMBER_CFLAGS) \
574	$(INTL_CFLAGS) $(INCGNU) $(ENABLE_CFLAGS) $(INTERNAL_CPPFLAGS) \
575	$(SRCHIGH_CFLAGS)
576INTERNAL_WARN_CFLAGS = $(INTERNAL_CFLAGS_BASE) $(GDB_WARN_CFLAGS)
577INTERNAL_CFLAGS = $(INTERNAL_WARN_CFLAGS) $(GDB_WERROR_CFLAGS)
578
579# LDFLAGS is specifically reserved for setting from the command line
580# when running make.
581LDFLAGS = @LDFLAGS@
582
583# Profiling options need to go here to work.
584# I think it's perfectly reasonable for a user to set -pg in CFLAGS
585# and have it work; that's why CFLAGS is here.
586# PROFILE_CFLAGS is _not_ included, however, because we use monstartup.
587INTERNAL_LDFLAGS = \
588	$(CXXFLAGS) $(GLOBAL_CFLAGS) $(MH_LDFLAGS) \
589	$(LDFLAGS) $(CONFIG_LDFLAGS)
590
591# Libraries and corresponding dependencies for compiling gdb.
592# XM_CLIBS, defined in *config files, have host-dependent libs.
593# LIBIBERTY appears twice on purpose.
594CLIBS = $(SIM) $(READLINE) $(OPCODES) $(BFD) $(ZLIB) $(INTL) $(LIBIBERTY) $(LIBDECNUMBER) \
595	$(XM_CLIBS) $(GDBTKLIBS) \
596	@LIBS@ @GUILE_LIBS@ @PYTHON_LIBS@ \
597	$(LIBEXPAT) $(LIBLZMA) $(LIBBABELTRACE) $(LIBIPT) \
598	$(LIBIBERTY) $(WIN32LIBS) $(LIBGNU) $(LIBICONV) $(LIBMPFR) \
599	$(SRCHIGH_LIBS)
600CDEPS = $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE_DEPS) \
601	$(OPCODES) $(INTL_DEPS) $(LIBIBERTY) $(CONFIG_DEPS) $(LIBGNU)
602
603DIST = gdb
604
605RUNTEST = runtest
606RUNTESTFLAGS =
607
608# XML files to build in to GDB.
609XMLFILES = \
610	$(srcdir)/features/btrace.dtd \
611	$(srcdir)/features/btrace-conf.dtd \
612	$(srcdir)/features/gdb-target.dtd \
613	$(srcdir)/features/library-list.dtd \
614	$(srcdir)/features/library-list-aix.dtd \
615	$(srcdir)/features/library-list-svr4.dtd \
616	$(srcdir)/features/osdata.dtd \
617	$(srcdir)/features/threads.dtd \
618	$(srcdir)/features/traceframe-info.dtd \
619	$(srcdir)/features/xinclude.dtd
620
621# Build the ser-*.o files the host supports.  This includes ser-unix.o
622# for any system that supports a POSIX interface to the serial port.
623# See configure.ac.
624SER_HARDWIRE = @SER_HARDWIRE@
625
626# This is remote-sim.o if a simulator is to be linked in.
627SIM_OBS = @SIM_OBS@
628
629# Target-dependent object files.
630TARGET_OBS = @TARGET_OBS@
631
632# All target-dependent objects files that require 64-bit CORE_ADDR
633# (used with --enable-targets=all --enable-64-bit-bfd).
634ALL_64_TARGET_OBS = \
635	aarch64-fbsd-tdep.o \
636	aarch64-linux-tdep.o \
637	aarch64-newlib-tdep.o \
638	aarch64-ravenscar-thread.o \
639	aarch64-tdep.o \
640	alpha-bsd-tdep.o \
641	alpha-linux-tdep.o \
642	alpha-mdebug-tdep.o \
643	alpha-nbsd-tdep.o \
644	alpha-obsd-tdep.o \
645	alpha-tdep.o \
646	amd64-darwin-tdep.o \
647	amd64-dicos-tdep.o \
648	amd64-fbsd-tdep.o \
649	amd64-linux-tdep.o \
650	amd64-nbsd-tdep.o \
651	amd64-obsd-tdep.o \
652	amd64-sol2-tdep.o \
653	amd64-tdep.o \
654	amd64-windows-tdep.o \
655	arch/aarch64.o \
656	arch/aarch64-insn.o \
657	arch/amd64.o \
658	ia64-linux-tdep.o \
659	ia64-tdep.o \
660	ia64-vms-tdep.o \
661	mips64-obsd-tdep.o \
662	sparc64-fbsd-tdep.o \
663	sparc64-linux-tdep.o \
664	sparc64-nbsd-tdep.o \
665	sparc64-obsd-tdep.o \
666	sparc64-sol2-tdep.o \
667	sparc64-tdep.o
668
669# All other target-dependent objects files (used with --enable-targets=all).
670ALL_TARGET_OBS = \
671	arc-tdep.o \
672	arch/arm.o \
673	arch/arm-get-next-pcs.o \
674	arch/arm-linux.o \
675	arch/i386.o \
676	arch/ppc-linux-common.o \
677	arch/riscv.o \
678	arm-bsd-tdep.o \
679	arm-fbsd-tdep.o \
680	arm-linux-tdep.o \
681	arm-nbsd-tdep.o \
682	arm-obsd-tdep.o \
683	arm-pikeos-tdep.o \
684	arm-symbian-tdep.o \
685	arm-tdep.o \
686	arm-wince-tdep.o \
687	avr-tdep.o \
688	bfin-linux-tdep.o \
689	bfin-tdep.o \
690	bsd-uthread.o \
691	cris-linux-tdep.o \
692	cris-tdep.o \
693	csky-linux-tdep.o \
694	csky-tdep.o \
695	dicos-tdep.o \
696	fbsd-tdep.o \
697	frv-linux-tdep.o \
698	frv-tdep.o \
699	ft32-tdep.o \
700	glibc-tdep.o \
701	h8300-tdep.o \
702	hppa-bsd-tdep.o \
703	hppa-linux-tdep.o \
704	hppa-nbsd-tdep.o \
705	hppa-obsd-tdep.o \
706	hppa-tdep.o \
707	i386-bsd-tdep.o \
708	i386-cygwin-tdep.o \
709	i386-darwin-tdep.o \
710	i386-dicos-tdep.o \
711	i386-fbsd-tdep.o \
712	i386-gnu-tdep.o \
713	i386-go32-tdep.o \
714	i386-linux-tdep.o \
715	i386-nbsd-tdep.o \
716	i386-nto-tdep.o \
717	i386-obsd-tdep.o \
718	i386-sol2-tdep.o \
719	i386-tdep.o \
720	i387-tdep.o \
721	iq2000-tdep.o \
722	linux-record.o \
723	linux-tdep.o \
724	lm32-tdep.o \
725	m32c-tdep.o \
726	m32r-linux-tdep.o \
727	m32r-tdep.o \
728	m68hc11-tdep.o \
729	m68k-bsd-tdep.o \
730	m68k-linux-tdep.o \
731	m68k-tdep.o \
732	mep-tdep.o \
733	microblaze-linux-tdep.o \
734	microblaze-tdep.o \
735	mips-fbsd-tdep.o \
736	mips-linux-tdep.o \
737	mips-nbsd-tdep.o \
738	mips-sde-tdep.o \
739	mips-tdep.o \
740	mn10300-linux-tdep.o \
741	mn10300-tdep.o \
742	moxie-tdep.o \
743	msp430-tdep.o \
744	nbsd-tdep.o \
745	nds32-tdep.o \
746	nios2-linux-tdep.o \
747	nios2-tdep.o \
748	nto-tdep.o \
749	obsd-tdep.o \
750	or1k-linux-tdep.o \
751	or1k-tdep.o \
752	ppc-fbsd-tdep.o \
753	ppc-linux-tdep.o \
754	ppc-nbsd-tdep.o \
755	ppc-obsd-tdep.o \
756	ppc-ravenscar-thread.o \
757	ppc-sysv-tdep.o \
758	ppc64-tdep.o \
759	ravenscar-thread.o \
760	riscv-fbsd-tdep.o \
761	riscv-linux-tdep.o \
762	riscv-tdep.o \
763	rl78-tdep.o \
764	rs6000-aix-tdep.o \
765	rs6000-lynx178-tdep.o \
766	rs6000-tdep.o \
767	rx-tdep.o \
768	s12z-tdep.o \
769	s390-linux-tdep.o \
770	s390-tdep.o \
771	score-tdep.o \
772	sh-linux-tdep.o \
773	sh-nbsd-tdep.o \
774	sh-tdep.o \
775	sol2-tdep.o \
776	solib-aix.o \
777	solib-darwin.o \
778	solib-dsbt.o \
779	solib-frv.o \
780	solib-spu.o \
781	solib-svr4.o \
782	sparc-linux-tdep.o \
783	sparc-nbsd-tdep.o \
784	sparc-obsd-tdep.o \
785	sparc-ravenscar-thread.o \
786	sparc-sol2-tdep.o \
787	sparc-tdep.o \
788	spu-multiarch.o \
789	spu-tdep.o \
790	symfile-mem.o \
791	tic6x-linux-tdep.o \
792	tic6x-tdep.o \
793	tilegx-linux-tdep.o \
794	tilegx-tdep.o \
795	v850-tdep.o \
796	vax-nbsd-tdep.o \
797	vax-tdep.o \
798	windows-tdep.o \
799	x86-tdep.o \
800	xcoffread.o \
801	xstormy16-tdep.o \
802	xtensa-config.o \
803	xtensa-linux-tdep.o \
804	xtensa-tdep.o
805
806# The following native-target dependent variables are defined on
807# configure.nat.
808NAT_FILE = @NAT_FILE@
809NATDEPFILES = @NATDEPFILES@
810NAT_CDEPS = @NAT_CDEPS@
811LOADLIBES = @LOADLIBES@
812MH_CFLAGS = @MH_CFLAGS@
813XM_CLIBS = @XM_CLIBS@
814NAT_GENERATED_FILES = @NAT_GENERATED_FILES@
815HAVE_NATIVE_GCORE_HOST = @HAVE_NATIVE_GCORE_HOST@
816
817# Native-target dependent makefile fragment comes in here.
818@nat_makefile_frag@
819
820# End of native-target dependent variables.
821
822FLAGS_TO_PASS = \
823	"prefix=$(prefix)" \
824	"exec_prefix=$(exec_prefix)" \
825	"infodir=$(infodir)" \
826	"datarootdir=$(datarootdir)" \
827	"docdir=$(docdir)" \
828	"htmldir=$(htmldir)" \
829	"pdfdir=$(pdfdir)" \
830	"libdir=$(libdir)" \
831	"mandir=$(mandir)" \
832	"datadir=$(datadir)" \
833	"includedir=$(includedir)" \
834	"against=$(against)" \
835	"DESTDIR=$(DESTDIR)" \
836	"AR=$(AR)" \
837	"AR_FLAGS=$(AR_FLAGS)" \
838	"CC=$(CC)" \
839	"CFLAGS=$(CFLAGS)" \
840	"CXX=$(CXX)" \
841	"CXX_DIALECT=$(CXX_DIALECT)" \
842	"CXXFLAGS=$(CXXFLAGS)" \
843	"DLLTOOL=$(DLLTOOL)" \
844	"LDFLAGS=$(LDFLAGS)" \
845	"RANLIB=$(RANLIB)" \
846	"MAKEINFO=$(MAKEINFO)" \
847	"MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \
848	"MAKEINFO_EXTRA_FLAGS=$(MAKEINFO_EXTRA_FLAGS)" \
849	"MAKEHTML=$(MAKEHTML)" \
850	"MAKEHTMLFLAGS=$(MAKEHTMLFLAGS)" \
851	"INSTALL=$(INSTALL)" \
852	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
853	"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
854	"INSTALL_DATA=$(INSTALL_DATA)" \
855	"RUNTEST=$(RUNTEST)" \
856	"RUNTESTFLAGS=$(RUNTESTFLAGS)"
857
858# Flags that we pass when building the testsuite.
859
860# empty for native, $(target_alias)/ for cross
861target_subdir = @target_subdir@
862
863CC_FOR_TARGET = ` \
864  if [ -f $${rootme}/../gcc/xgcc ] ; then \
865    if [ -f $${rootme}/../$(target_subdir)newlib/Makefile ] ; then \
866      echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/ -idirafter $${rootme}/$(target_subdir)newlib/targ-include -idirafter $${rootsrc}/../$(target_subdir)newlib/libc/include -nostdinc -B$${rootme}/../$(target_subdir)newlib/; \
867    else \
868      echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/; \
869    fi; \
870  else \
871    if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
872      echo $(CC); \
873    else \
874      t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \
875    fi; \
876  fi`
877
878CXX_FOR_TARGET = ` \
879  if [ -f $${rootme}/../gcc/xg++ ] ; then \
880    if [ -f $${rootme}/../$(target_subdir)newlib/Makefile ] ; then \
881      echo $${rootme}/../gcc/xg++ -B$${rootme}/../gcc/ -idirafter $${rootme}/$(target_subdir)newlib/targ-include -idirafter $${rootsrc}/../$(target_subdir)newlib/libc/include -nostdinc -B$${rootme}/../$(target_subdir)newlib/; \
882    else \
883      echo $${rootme}/../gcc/xg++ -B$${rootme}/../gcc/; \
884    fi; \
885  else \
886    if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
887      echo $(CXX); \
888    else \
889      t='$(program_transform_name)'; echo g++ | sed -e '' $$t; \
890    fi; \
891  fi`
892
893# The use of $$(x_FOR_TARGET) reduces the command line length by not
894# duplicating the lengthy definition.
895TARGET_FLAGS_TO_PASS = \
896	"prefix=$(prefix)" \
897	"exec_prefix=$(exec_prefix)" \
898	"against=$(against)" \
899	'CC=$$(CC_FOR_TARGET)' \
900	"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
901	"CFLAGS=$(CFLAGS)" \
902	'CXX=$$(CXX_FOR_TARGET)' \
903	"CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
904	"CXXFLAGS=$(CXXFLAGS)" \
905	"INSTALL=$(INSTALL)" \
906	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
907	"INSTALL_DATA=$(INSTALL_DATA)" \
908	"MAKEINFO=$(MAKEINFO)" \
909	"MAKEHTML=$(MAKEHTML)" \
910	"RUNTEST=$(RUNTEST)" \
911	"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
912	"FORCE_PARALLEL=$(FORCE_PARALLEL)" \
913	"TESTS=$(TESTS)"
914
915# All source files that go into linking GDB.
916
917# Files that should wind up in SFILES and whose corresponding .o
918# should be in COMMON_OBS.
919COMMON_SFILES = \
920	ada-lang.c \
921	ada-tasks.c \
922	ada-typeprint.c \
923	ada-valprint.c \
924	ada-varobj.c \
925	addrmap.c \
926	agent.c \
927	annotate.c \
928	arch-utils.c \
929	auto-load.c \
930	auxv.c \
931	ax-gdb.c \
932	ax-general.c \
933	bcache.c \
934	bfd-target.c \
935	block.c \
936	blockframe.c \
937	break-catch-sig.c \
938	break-catch-syscall.c \
939	break-catch-throw.c \
940	breakpoint.c \
941	btrace.c \
942	build-id.c \
943	buildsym-legacy.c \
944	buildsym.c \
945	c-lang.c \
946	c-typeprint.c \
947	c-valprint.c \
948	c-varobj.c \
949	charset.c \
950	cli-out.c \
951	coff-pe-read.c \
952	coffread.c \
953	common/agent.c \
954	common/btrace-common.c \
955	common/buffer.c \
956	common/cleanups.c \
957	common/common-debug.c \
958	common/common-exceptions.c \
959	common/common-regcache.c \
960	common/common-utils.c \
961	common/errors.c \
962	common/environ.c \
963	common/fileio.c \
964	common/filestuff.c \
965	common/format.c \
966	common/job-control.c \
967	common/gdb_tilde_expand.c \
968	common/gdb_vecs.c \
969	common/netstuff.c \
970	common/new-op.c \
971	common/pathstuff.c \
972	common/print-utils.c \
973	common/ptid.c \
974	common/rsp-low.c \
975	common/run-time-clock.c \
976	common/scoped_mmap.c \
977	common/signals.c \
978	common/signals-state-save-restore.c \
979	common/tdesc.c \
980	common/vec.c \
981	common/xml-utils.c \
982	complaints.c \
983	completer.c \
984	continuations.c \
985	copying.c \
986	corefile.c \
987	corelow.c \
988	cp-abi.c \
989	cp-namespace.c \
990	cp-support.c \
991	cp-valprint.c \
992	ctf.c \
993	d-lang.c \
994	d-namespace.c \
995	d-valprint.c \
996	dbxread.c \
997	dcache.c \
998	debug.c \
999	demangle.c \
1000	dictionary.c \
1001	disasm.c \
1002	disasm-selftests.c \
1003	dummy-frame.c \
1004	dwarf-index-cache.c \
1005	dwarf-index-common.c \
1006	dwarf-index-write.c \
1007	dwarf2-frame.c \
1008	dwarf2-frame-tailcall.c \
1009	dwarf2expr.c \
1010	dwarf2loc.c \
1011	dwarf2read.c \
1012	eval.c \
1013	event-loop.c \
1014	event-top.c \
1015	exceptions.c \
1016	exec.c \
1017	expprint.c \
1018	extension.c \
1019	f-lang.c \
1020	f-typeprint.c \
1021	f-valprint.c \
1022	filename-seen-cache.c \
1023	filesystem.c \
1024	findcmd.c \
1025	findvar.c \
1026	frame.c \
1027	frame-base.c \
1028	frame-unwind.c \
1029	gcore.c \
1030	gdb_bfd.c \
1031	gdb-dlfcn.c \
1032	gdb_obstack.c \
1033	gdb_regex.c \
1034	gdb_usleep.c \
1035	gdbarch.c \
1036	gdbarch-selftests.c \
1037	gdbtypes.c \
1038	gnu-v2-abi.c \
1039	gnu-v3-abi.c \
1040	go-lang.c \
1041	go-typeprint.c \
1042	go-valprint.c \
1043	inf-child.c \
1044	inf-loop.c \
1045	infcall.c \
1046	infcmd.c \
1047	inferior.c \
1048	inflow.c \
1049	infrun.c \
1050	inline-frame.c \
1051	interps.c \
1052	jit.c \
1053	language.c \
1054	linespec.c \
1055	location.c \
1056	m2-lang.c \
1057	m2-typeprint.c \
1058	m2-valprint.c \
1059	macrocmd.c \
1060	macroexp.c \
1061	macroscope.c \
1062	macrotab.c \
1063	main.c \
1064	maint.c \
1065	mdebugread.c \
1066	mem-break.c \
1067	memattr.c \
1068	memory-map.c \
1069	memrange.c \
1070	minidebug.c \
1071	minsyms.c \
1072	mipsread.c \
1073	namespace.c \
1074	objc-lang.c \
1075	objfiles.c \
1076	observable.c \
1077	opencl-lang.c \
1078	osabi.c \
1079	osdata.c \
1080	p-lang.c \
1081	p-typeprint.c \
1082	p-valprint.c \
1083	parse.c \
1084	printcmd.c \
1085	probe.c \
1086	process-stratum-target.c \
1087	producer.c \
1088	progspace.c \
1089	progspace-and-thread.c \
1090	prologue-value.c \
1091	psymtab.c \
1092	record.c \
1093	record-btrace.c \
1094	record-full.c \
1095	regcache.c \
1096	regcache-dump.c \
1097	reggroups.c \
1098	registry.c \
1099	remote.c \
1100	remote-fileio.c \
1101	remote-notif.c \
1102	reverse.c \
1103	rust-lang.c \
1104	sentinel-frame.c \
1105	ser-event.c \
1106	serial.c \
1107	skip.c \
1108	solib.c \
1109	solib-target.c \
1110	source.c \
1111	source-cache.c \
1112	stabsread.c \
1113	stack.c \
1114	std-regs.c \
1115	symfile.c \
1116	symfile-debug.c \
1117	symmisc.c \
1118	symtab.c \
1119	target.c \
1120	target-dcache.c \
1121	target-descriptions.c \
1122	target-memory.c \
1123	test-target.c \
1124	thread.c \
1125	thread-iter.c \
1126	tid-parse.c \
1127	top.c \
1128	tracefile.c \
1129	tracefile-tfile.c \
1130	tracepoint.c \
1131	trad-frame.c \
1132	tramp-frame.c \
1133	target-float.c \
1134	typeprint.c \
1135	ui-file.c \
1136	ui-out.c \
1137	ui-style.c \
1138	user-regs.c \
1139	utils.c \
1140	valarith.c \
1141	valops.c \
1142	valprint.c \
1143	value.c \
1144	varobj.c \
1145	xml-support.c \
1146	xml-syscall.c \
1147	xml-tdesc.c
1148
1149# Links made at configuration time should not be specified here, since
1150# SFILES is used in building the distribution archive.
1151SFILES = \
1152	ada-exp.y \
1153	arch/i386.c \
1154	c-exp.y \
1155	cp-name-parser.y \
1156	d-exp.y \
1157	dtrace-probe.c \
1158	elfread.c \
1159	f-exp.y \
1160	gdb.c \
1161	go-exp.y \
1162	m2-exp.y \
1163	p-exp.y \
1164	proc-service.list \
1165	rust-exp.y \
1166	ser-base.c \
1167	ser-unix.c \
1168	sol-thread.c \
1169	stap-probe.c \
1170	stub-termcap.c \
1171	symfile-mem.c \
1172	ui-file.h \
1173	mi/mi-common.c \
1174	$(SUBDIR_CLI_SRCS) \
1175	$(SUBDIR_TARGET_SRCS) \
1176	$(COMMON_SFILES) \
1177	$(SUBDIR_GCC_COMPILE_SRCS)
1178
1179# Header files that need to have srcdir added.  Note that in the cases
1180# where we use a macro like $(gdbcmd_h), things are carefully arranged
1181# so that each .h file is listed exactly once (M-x tags-search works
1182# wrong if TAGS has files twice).  Because this is tricky to get
1183# right, it is probably easiest just to list .h files here directly.
1184
1185HFILES_NO_SRCDIR = \
1186	aarch64-ravenscar-thread.h \
1187	aarch64-tdep.h \
1188	ada-lang.h \
1189	addrmap.h \
1190	alpha-bsd-tdep.h \
1191	alpha-tdep.h \
1192	amd64-darwin-tdep.h \
1193	amd64-linux-tdep.h \
1194	amd64-nat.h \
1195	amd64-tdep.h \
1196	annotate.h \
1197	arc-tdep.h \
1198	arch-utils.h \
1199	arm-linux-tdep.h \
1200	arm-tdep.h \
1201	auto-load.h \
1202	auxv.h \
1203	ax.h \
1204	ax-gdb.h \
1205	bcache.h \
1206	bfd-target.h \
1207	bfin-tdep.h \
1208	block.h \
1209	breakpoint.h \
1210	bsd-kvm.h \
1211	bsd-uthread.h \
1212	build-id.h \
1213	buildsym-legacy.h \
1214	buildsym.h \
1215	c-lang.h \
1216	charset.h \
1217	charset-list.h \
1218	cli-out.h \
1219	coff-pe-read.h \
1220	command.h \
1221	complaints.h \
1222	completer.h \
1223	cp-abi.h \
1224	cp-support.h \
1225	csky-tdep.h \
1226	ctf.h \
1227	d-lang.h \
1228	darwin-nat.h \
1229	dcache.h \
1230	defs.h \
1231	dicos-tdep.h \
1232	dictionary.h \
1233	disasm.h \
1234	dummy-frame.h \
1235	dwarf-index-cache.h \
1236	dwarf-index-common.h \
1237	dwarf2-frame.h \
1238	dwarf2-frame-tailcall.h \
1239	dwarf2expr.h \
1240	dwarf2loc.h \
1241	dwarf2read.h \
1242	event-loop.h \
1243	event-top.h \
1244	exceptions.h \
1245	exec.h \
1246	expression.h \
1247	extension.h \
1248	extension-priv.h \
1249	f-lang.h \
1250	fbsd-nat.h \
1251	fbsd-tdep.h \
1252	filesystem.h \
1253	frame.h \
1254	frame-base.h \
1255	frame-unwind.h \
1256	frv-tdep.h \
1257	ft32-tdep.h \
1258	gcore.h \
1259	gdb_bfd.h \
1260	gdb_curses.h \
1261	gdb-dlfcn.h \
1262	gdb_expat.h \
1263	gdb_obstack.h \
1264	gdb_proc_service.h \
1265	gdb_regex.h \
1266	gdb_select.h \
1267	gdb-stabs.h \
1268	gdb_usleep.h \
1269	gdb_vfork.h \
1270	gdb_wchar.h \
1271	gdbarch.h \
1272	gdbcmd.h \
1273	gdbcore.h \
1274	gdbthread.h \
1275	gdbtypes.h \
1276	glibc-tdep.h \
1277	gnu-nat.h \
1278	go-lang.h \
1279	gregset.h \
1280	hppa-bsd-tdep.h \
1281	hppa-linux-offsets.h \
1282	hppa-tdep.h \
1283	i386-bsd-nat.h \
1284	i386-darwin-tdep.h \
1285	i386-linux-nat.h \
1286	i386-linux-tdep.h \
1287	i386-tdep.h \
1288	i387-tdep.h \
1289	ia64-libunwind-tdep.h \
1290	ia64-tdep.h \
1291	inf-child.h \
1292	inf-loop.h \
1293	inf-ptrace.h \
1294	infcall.h \
1295	inferior.h \
1296	inflow.h \
1297	inline-frame.h \
1298	interps.h \
1299	jit.h \
1300	language.h \
1301	linespec.h \
1302	linux-fork.h \
1303	linux-nat.h \
1304	linux-record.h \
1305	linux-tdep.h \
1306	location.h \
1307	m2-lang.h \
1308	m32r-tdep.h \
1309	m68k-tdep.h \
1310	macroexp.h \
1311	macroscope.h \
1312	macrotab.h \
1313	main.h \
1314	mdebugread.h \
1315	memattr.h \
1316	memory-map.h \
1317	memrange.h \
1318	microblaze-tdep.h \
1319	mips-linux-tdep.h \
1320	mips-nbsd-tdep.h \
1321	mips-tdep.h \
1322	mn10300-tdep.h \
1323	moxie-tdep.h \
1324	nbsd-nat.h \
1325	nbsd-tdep.h \
1326	nds32-tdep.h \
1327	nios2-tdep.h \
1328	nto-tdep.h \
1329	objc-lang.h \
1330	objfiles.h \
1331	obsd-nat.h \
1332	obsd-tdep.h \
1333	osabi.h \
1334	osdata.h \
1335	p-lang.h \
1336	parser-defs.h \
1337	ppc-fbsd-tdep.h \
1338	ppc-linux-tdep.h \
1339	ppc-nbsd-tdep.h \
1340	ppc-obsd-tdep.h \
1341	ppc-ravenscar-thread.h \
1342	ppc-tdep.h \
1343	ppc64-tdep.h \
1344	probe.h \
1345	proc-utils.h \
1346	procfs.h \
1347	progspace.h \
1348	progspace-and-thread.h \
1349	prologue-value.h \
1350	psympriv.h \
1351	psymtab.h \
1352	ravenscar-thread.h \
1353	record.h \
1354	record-full.h \
1355	regcache.h \
1356	reggroups.h \
1357	regset.h \
1358	remote.h \
1359	remote-fileio.h \
1360	remote-notif.h \
1361	riscv-fbsd-tdep.h \
1362	riscv-tdep.h \
1363	rs6000-aix-tdep.h \
1364	rs6000-tdep.h \
1365	s390-linux-tdep.h \
1366	s390-tdep.h \
1367	score-tdep.h \
1368	selftest-arch.h \
1369	sentinel-frame.h \
1370	ser-base.h \
1371	ser-event.h \
1372	ser-tcp.h \
1373	ser-unix.h \
1374	serial.h \
1375	sh-tdep.h \
1376	sim-regno.h \
1377	skip.h \
1378	sol2-tdep.h \
1379	solib.h \
1380	solib-aix.h \
1381	solib-darwin.h \
1382	solib-spu.h \
1383	solib-svr4.h \
1384	solib-target.h \
1385	solist.h \
1386	source.h \
1387	source-cache.h \
1388	sparc-nat.h \
1389	sparc-ravenscar-thread.h \
1390	sparc-tdep.h \
1391	sparc64-tdep.h \
1392	spu-tdep.h \
1393	stabsread.h \
1394	stack.h \
1395	stap-probe.h \
1396	symfile.h \
1397	symtab.h \
1398	target.h \
1399	target-dcache.h \
1400	target-descriptions.h \
1401	terminal.h \
1402	tid-parse.h \
1403	top.h \
1404	tracefile.h \
1405	tracepoint.h \
1406	trad-frame.h \
1407	target-float.h \
1408	tramp-frame.h \
1409	typeprint.h \
1410	ui-file.h \
1411	ui-out.h \
1412	ui-style.h \
1413	user-regs.h \
1414	utils.h \
1415	valprint.h \
1416	value.h \
1417	varobj.h \
1418	varobj-iter.h \
1419	vax-tdep.h \
1420	windows-nat.h \
1421	windows-tdep.h \
1422	x86-bsd-nat.h \
1423	x86-linux-nat.h \
1424	x86-nat.h \
1425	xcoffread.h \
1426	xml-support.h \
1427	xml-syscall.h \
1428	xml-tdesc.h \
1429	xtensa-tdep.h \
1430	arch/aarch64.h \
1431	arch/aarch64-insn.h \
1432	arch/arm.h \
1433	arch/i386.h \
1434	arch/ppc-linux-common.h \
1435	arch/ppc-linux-tdesc.h \
1436	arch/riscv.h \
1437	cli/cli-cmds.h \
1438	cli/cli-decode.h \
1439	cli/cli-script.h \
1440	cli/cli-setshow.h \
1441	cli/cli-style.h \
1442	cli/cli-utils.h \
1443	common/buffer.h \
1444	common/cleanups.h \
1445	common/common-debug.h \
1446	common/common-defs.h \
1447	common/common-exceptions.h \
1448	common/common-gdbthread.h \
1449	common/common-regcache.h \
1450	common/common-types.h \
1451	common/common-utils.h \
1452	common/job-control.h \
1453	common/errors.h \
1454	common/environ.h \
1455	common/fileio.h \
1456	common/format.h \
1457	common/gdb_assert.h \
1458	common/gdb_tilde_expand.h \
1459	common/gdb_locale.h \
1460	common/gdb_proc_service.h \
1461	common/gdb_setjmp.h \
1462	common/gdb_signals.h \
1463	common/gdb_sys_time.h \
1464	common/gdb_vecs.h \
1465	common/gdb_wait.h \
1466	common/common-inferior.h \
1467	common/netstuff.h \
1468	common/host-defs.h \
1469	common/pathstuff.h \
1470	common/print-utils.h \
1471	common/ptid.h \
1472	common/queue.h \
1473	common/rsp-low.h \
1474	common/run-time-clock.h \
1475	common/signals-state-save-restore.h \
1476	common/symbol.h \
1477	common/tdesc.h \
1478	common/vec.h \
1479	common/version.h \
1480	common/x86-xstate.h \
1481	common/xml-utils.h \
1482	compile/compile.h \
1483	compile/compile-c.h \
1484	compile/compile-cplus.h \
1485	compile/compile-internal.h \
1486	compile/compile-object-load.h \
1487	compile/compile-object-run.h \
1488	compile/gcc-c-plugin.h \
1489	compile/gcc-cp-plugin.h \
1490	config/nm-linux.h \
1491	config/nm-nto.h \
1492	config/djgpp/langinfo.h \
1493	config/djgpp/nl_types.h \
1494	config/i386/nm-i386gnu.h \
1495	config/sparc/nm-sol2.h \
1496	gnulib/import/inttypes.in.h \
1497	gnulib/import/stddef.in.h \
1498	gnulib/import/stdint.in.h \
1499	gnulib/import/str-two-way.h \
1500	gnulib/import/string.in.h \
1501	gnulib/import/extra/snippet/arg-nonnull.h \
1502	gnulib/import/extra/snippet/c++defs.h \
1503	gnulib/import/extra/snippet/warn-on-use.h \
1504	mi/mi-cmds.h \
1505	mi/mi-common.h \
1506	mi/mi-console.h \
1507	mi/mi-getopt.h \
1508	mi/mi-main.h \
1509	mi/mi-out.h \
1510	mi/mi-parse.h \
1511	nat/aarch64-linux.h \
1512	nat/aarch64-linux-hw-point.h \
1513	nat/aarch64-sve-linux-ptrace.h \
1514	nat/amd64-linux-siginfo.h \
1515	nat/gdb_ptrace.h \
1516	nat/gdb_thread_db.h \
1517	nat/fork-inferior.h \
1518	nat/linux-btrace.h \
1519	nat/linux-namespaces.h \
1520	nat/linux-nat.h \
1521	nat/linux-osdata.h \
1522	nat/linux-personality.h \
1523	nat/linux-ptrace.h \
1524	nat/linux-waitpid.h \
1525	nat/mips-linux-watch.h \
1526	nat/ppc-linux.h \
1527	nat/x86-cpuid.h \
1528	nat/x86-dregs.h \
1529	nat/x86-gcc-cpuid.h \
1530	nat/x86-linux.h \
1531	nat/x86-linux-dregs.h \
1532	python/py-event.h \
1533	python/py-events.h \
1534	python/py-stopevent.h \
1535	python/python.h \
1536	python/python-internal.h \
1537	regformats/regdef.h \
1538	target/resume.h \
1539	target/target.h \
1540	target/wait.h \
1541	target/waitstatus.h \
1542	tui/tui.h \
1543	tui/tui-command.h \
1544	tui/tui-data.h \
1545	tui/tui-disasm.h \
1546	tui/tui-file.h \
1547	tui/tui-hooks.h \
1548	tui/tui-io.h \
1549	tui/tui-layout.h \
1550	tui/tui-regs.h \
1551	tui/tui-source.h \
1552	tui/tui-stack.h \
1553	tui/tui-win.h \
1554	tui/tui-windata.h \
1555	tui/tui-wingeneral.h \
1556	tui/tui-winsource.h \
1557	x86-tdep.h
1558
1559# Header files that already have srcdir in them, or which are in objdir.
1560
1561HFILES_WITH_SRCDIR = \
1562	../bfd/bfd.h \
1563	jit-reader.h
1564
1565# {X,T,NAT}DEPFILES are something of a pain in that it's hard to
1566# default their values the way we do for SER_HARDWIRE; in the future
1567# maybe much of the stuff now in {X,T,NAT}DEPFILES will go into other
1568# variables analogous to SER_HARDWIRE which get defaulted in this
1569# Makefile.in
1570
1571DEPFILES = $(TARGET_OBS) $(SER_HARDWIRE) $(NATDEPFILES) $(SIM_OBS)
1572
1573SOURCES = $(SFILES) $(ALLDEPFILES) $(YYFILES) $(CONFIG_SRCS)
1574# Don't include YYFILES (*.c) because we already include *.y in SFILES,
1575# and it's more useful to see it in the .y file.
1576TAGFILES_NO_SRCDIR = $(SFILES) $(HFILES_NO_SRCDIR) $(ALLDEPFILES) \
1577	$(CONFIG_SRCS)
1578TAGFILES_WITH_SRCDIR = $(HFILES_WITH_SRCDIR)
1579
1580COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
1581	mi/mi-common.o \
1582	version.o \
1583	xml-builtin.o \
1584	$(patsubst %.c,%.o,$(COMMON_SFILES)) \
1585	$(SUBDIR_CLI_OBS) \
1586	$(SUBDIR_TARGET_OBS) \
1587	$(SUBDIR_GCC_COMPILE_OBS)
1588
1589SUBDIRS = doc @subdirs@ data-directory $(GNULIB_BUILDDIR)
1590CLEANDIRS = $(SUBDIRS)
1591
1592# List of subdirectories in the build tree that must exist.
1593# This is used to force build failures in existing trees when
1594# a new directory is added.
1595# The format here is for the `case' shell command.
1596REQUIRED_SUBDIRS = doc | testsuite | $(GNULIB_BUILDDIR) | data-directory
1597
1598# Parser intermediate files.
1599YYFILES = \
1600	ada-exp.c \
1601	ada-lex.c \
1602	c-exp.c \
1603	cp-name-parser.c \
1604	d-exp.c \
1605	f-exp.c \
1606	go-exp.c \
1607	m2-exp.c \
1608	p-exp.c \
1609	rust-exp.c
1610
1611# ada-lex.c is included by another file, so it shouldn't wind up as a
1612# .o itself.
1613YYOBJ = $(filter-out ada-lex.o,$(patsubst %.c,%.o,$(YYFILES)))
1614
1615# Things which need to be built when making a distribution.
1616
1617DISTSTUFF = $(YYFILES)
1618
1619
1620# All generated files which can be included by another file.
1621generated_files = \
1622	ada-lex.c \
1623	config.h \
1624	gcore \
1625	jit-reader.h \
1626	$(GNULIB_H) \
1627	$(NAT_GENERATED_FILES)
1628
1629# Flags needed to compile Python code
1630PYTHON_CFLAGS = @PYTHON_CFLAGS@
1631
1632all: gdb$(EXEEXT) $(CONFIG_ALL) gdb-gdb.py gdb-gdb.gdb
1633	@$(MAKE) $(FLAGS_TO_PASS) DO=all "DODIRS=`echo $(SUBDIRS) | sed 's/testsuite//'`" subdir_do
1634
1635# Rule for compiling .c files in the top-level gdb directory.
1636# The order-only dependencies ensure that we create the build subdirectories.
1637%.o: %.c | $(CONFIG_DEP_SUBDIR)
1638	$(COMPILE) $<
1639	$(POSTCOMPILE)
1640
1641$(CONFIG_DEP_SUBDIR):
1642	$(SHELL) $(srcdir)/../mkinstalldirs $@
1643
1644# Python files need special flags.
1645python/%.o: INTERNAL_CFLAGS += $(PYTHON_CFLAGS)
1646
1647# Rules for compiling .c files in the various source subdirectories.
1648%.o: $(srcdir)/gdbtk/generic/%.c
1649	$(COMPILE) $(all_gdbtk_cflags) $<
1650	$(POSTCOMPILE)
1651
1652installcheck:
1653
1654# The check target can not use subdir_do, because subdir_do does not
1655# use TARGET_FLAGS_TO_PASS.
1656check: force
1657	@if [ -f testsuite/Makefile ]; then \
1658	  rootme=`pwd`; export rootme; \
1659	  rootsrc=`cd $(srcdir); pwd`; export rootsrc; \
1660	  cd testsuite; \
1661	  $(MAKE) $(TARGET_FLAGS_TO_PASS) check; \
1662	else true; fi
1663
1664check-perf: force
1665	@if [ -f testsuite/Makefile ]; then \
1666	  rootme=`pwd`; export rootme; \
1667	  rootsrc=`cd $(srcdir); pwd`; export rootsrc; \
1668	  cd testsuite; \
1669	  $(MAKE) $(TARGET_FLAGS_TO_PASS) check-perf; \
1670	else true; fi
1671
1672check-read1: force
1673	@if [ -f testsuite/Makefile ]; then \
1674	  rootme=`pwd`; export rootme; \
1675	  rootsrc=`cd $(srcdir); pwd`; export rootsrc; \
1676	  cd testsuite; \
1677	  $(MAKE) $(TARGET_FLAGS_TO_PASS) check-read1; \
1678	else true; fi
1679
1680check-parallel: force
1681	@if [ -f testsuite/Makefile ]; then \
1682	  rootme=`pwd`; export rootme; \
1683	  rootsrc=`cd $(srcdir); pwd`; export rootsrc; \
1684	  cd testsuite; \
1685	  $(MAKE) $(TARGET_FLAGS_TO_PASS) check-parallel; \
1686	else true; fi
1687
1688# The idea is to parallelize testing of multilibs, for example:
1689#   make -j3 check//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
1690# will run 3 concurrent sessions of check, eventually testing all 10
1691# combinations.  GNU make is required for the % pattern to work, as is
1692# a shell that expands alternations within braces.  If GNU make is not
1693# used, this rule will harmlessly fail to match.  Used FORCE_PARALLEL to
1694# prevent serialized checking due to the passed RUNTESTFLAGS.
1695# FIXME: use config.status --config not --version, when available.
1696check//%: force
1697	@if [ -f testsuite/config.status ]; then \
1698	  rootme=`pwd`; export rootme; \
1699	  rootsrc=`cd $(srcdir); pwd`; export rootsrc; \
1700	  target=`echo "$@" | sed 's,//.*,,'`; \
1701	  variant=`echo "$@" | sed 's,^[^/]*//,,'`; \
1702	  vardots=`echo "$$variant" | sed 's,/,.,g'`; \
1703	  testdir=testsuite.$$vardots; \
1704	  if [ ! -f $$testdir/Makefile ] && [ -f testsuite/config.status ]; then \
1705	    configargs=`cd testsuite && ./config.status --version | \
1706	      sed -n -e 's,"$$,,' -e 's,^ *with options ",,p'`; \
1707	    $(SHELL) $(srcdir)/../mkinstalldirs $$testdir && \
1708	    (cd $$testdir && \
1709	     eval $(SHELL) "\"\$$rootsrc/testsuite/configure\" $$configargs" \
1710			   "\"--srcdir=\$$rootsrc/testsuite\"" \
1711	     ); \
1712	  else :; fi && cd $$testdir && \
1713	  $(MAKE) $(TARGET_FLAGS_TO_PASS) \
1714	    RUNTESTFLAGS="--target_board=$$variant $(RUNTESTFLAGS)" \
1715	    FORCE_PARALLEL=$(if $(FORCE_PARALLEL),1,$(if $(RUNTESTFLAGS),,1)) \
1716	    "$$target"; \
1717	else true; fi
1718
1719# The set of headers checked by 'check-headers' by default.
1720CHECK_HEADERS = $(HFILES_NO_SRCDIR)
1721
1722# Try to compile each header in isolation, thus ensuring headers are
1723# self-contained.
1724#
1725# Defaults to checking all $HFILES_NO_SRCDIR headers.
1726#
1727# Do:
1728#
1729#    make check-headers CHECK_HEADERS="header.h list.h"
1730#
1731# to check specific headers.
1732#
1733check-headers:
1734	@echo Checking headers.
1735	for i in $(CHECK_HEADERS) ; do \
1736		$(CXX) $(CXX_DIALECT) -x c++-header -c -fsyntax-only \
1737		$(INTERNAL_CFLAGS) -include defs.h $(srcdir)/$$i ; \
1738	done
1739.PHONY: check-headers
1740
1741info install-info clean-info dvi pdf install-pdf html install-html: force
1742	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
1743
1744# Traditionally "install" depends on "all".  But it may be useful
1745# not to; for example, if the user has made some trivial change to a
1746# source file and doesn't care about rebuilding or just wants to save the
1747# time it takes for make to check that all is up to date.
1748# install-only is intended to address that need.
1749install: all
1750	@$(MAKE) $(FLAGS_TO_PASS) install-only
1751
1752install-only: $(CONFIG_INSTALL)
1753	transformed_name=`t='$(program_transform_name)'; \
1754			  echo gdb | sed -e "$$t"` ; \
1755		if test "x$$transformed_name" = x; then \
1756		  transformed_name=gdb ; \
1757		else \
1758		  true ; \
1759		fi ; \
1760		$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir) ; \
1761		$(INSTALL_PROGRAM) gdb$(EXEEXT) \
1762			$(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \
1763		$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(includedir)/gdb ; \
1764		$(INSTALL_DATA) jit-reader.h $(DESTDIR)$(includedir)/gdb/jit-reader.h
1765	if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" != x; \
1766	then \
1767	  transformed_name=`t='$(program_transform_name)'; \
1768			    echo gcore | sed -e "$$t"` ; \
1769		  if test "x$$transformed_name" = x; then \
1770		    transformed_name=gcore ; \
1771		  else \
1772		    true ; \
1773		  fi ; \
1774		  $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir) ; \
1775		  $(INSTALL_SCRIPT) gcore \
1776			  $(DESTDIR)$(bindir)/$$transformed_name; \
1777	fi
1778	transformed_name=`t='$(program_transform_name)'; \
1779			  echo gdb-add-index | sed -e "$$t"` ; \
1780	if test "x$$transformed_name" = x; then \
1781	  transformed_name=gdb-add-index ; \
1782	else \
1783	  true ; \
1784	fi ; \
1785	$(INSTALL_SCRIPT) $(srcdir)/contrib/gdb-add-index.sh \
1786		$(DESTDIR)$(bindir)/$$transformed_name
1787	@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
1788
1789install-strip:
1790	$(MAKE) $(FLAGS_TO_PASS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
1791	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
1792	  `test -z '$(STRIP)' || \
1793	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install-only
1794
1795install-guile:
1796	$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/guile/gdb
1797
1798install-python:
1799	$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb
1800
1801uninstall: force $(CONFIG_UNINSTALL)
1802	transformed_name=`t='$(program_transform_name)'; \
1803			  echo gdb | sed -e $$t` ; \
1804		if test "x$$transformed_name" = x; then \
1805		  transformed_name=gdb ; \
1806		else \
1807		  true ; \
1808		fi ; \
1809		rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \
1810		      $(DESTDIR)$(man1dir)/$$transformed_name.1
1811	if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" != x; \
1812	then \
1813	  transformed_name=`t='$(program_transform_name)'; \
1814			    echo gcore | sed -e "$$t"` ; \
1815		  if test "x$$transformed_name" = x; then \
1816		    transformed_name=gcore ; \
1817		  else \
1818		    true ; \
1819		  fi ; \
1820		  rm -f $(DESTDIR)$(bindir)/$$transformed_name; \
1821	fi
1822	@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
1823
1824# The C++ name parser can be built standalone for testing.
1825test-cp-name-parser.o: cp-name-parser.c
1826	$(COMPILE) -DTEST_CPNAMES cp-name-parser.c
1827	$(POSTCOMPILE)
1828
1829test-cp-name-parser$(EXEEXT): test-cp-name-parser.o $(LIBIBERTY)
1830	$(ECHO_CXXLD) $(CC_LD) $(INTERNAL_LDFLAGS) \
1831		-o test-cp-name-parser$(EXEEXT) test-cp-name-parser.o \
1832		$(LIBIBERTY)
1833
1834# We do this by grepping through sources.  If that turns out to be too slow,
1835# maybe we could just require every .o file to have an initialization routine
1836# of a given name (top.o -> _initialize_top, etc.).
1837#
1838# Formatting conventions:  The name of the _initialize_* routines must start
1839# in column zero, and must not be inside #if.
1840#
1841# Note that the set of files with init functions might change, or the names
1842# of the functions might change, so this files needs to depend on all the
1843# source files that will be linked into gdb.  However, due to the way
1844# this Makefile has generally been written, we do this indirectly, by
1845# computing the list of source files from the list of object files.
1846
1847INIT_FILES = \
1848	$(patsubst %.o,%.c, \
1849	  $(patsubst %-exp.o,%-exp.y, \
1850	    $(filter-out init.o version.o %_S.o %_U.o,\
1851	      $(COMMON_OBS))))
1852
1853init.c: stamp-init; @true
1854stamp-init: $(INIT_FILES)
1855	@$(ECHO_INIT_C) echo "Making init.c"
1856	@rm -f init.c-tmp init.l-tmp
1857	@touch init.c-tmp
1858	@-for f in $(INIT_FILES); do \
1859	    sed -n -e 's/^_initialize_\([a-z_0-9A-Z]*\).*/\1/p' \
1860	        $(srcdir)/$$f 2>/dev/null; \
1861	done > init.l-tmp
1862	@echo '/* Do not modify this file.  */' >>init.c-tmp
1863	@echo '/* It is created automatically by the Makefile.  */'>>init.c-tmp
1864	@echo '#include "defs.h"      /* For initialize_file_ftype.  */' >>init.c-tmp
1865	@echo 'extern void initialize_all_files(void);' >>init.c-tmp
1866	@sed -e 's/\(.*\)/extern initialize_file_ftype _initialize_\1;/' <init.l-tmp >>init.c-tmp
1867	@echo 'void' >>init.c-tmp
1868	@echo 'initialize_all_files (void)' >>init.c-tmp
1869	@echo '{' >>init.c-tmp
1870	@sed -e 's/\(.*\)/  _initialize_\1 ();/' <init.l-tmp >>init.c-tmp
1871	@echo '}' >>init.c-tmp
1872	@$(SHELL) $(srcdir)/../move-if-change init.c-tmp init.c
1873	@echo stamp > stamp-init
1874
1875.PRECIOUS: init.c
1876
1877# Create a library of the gdb object files and build GDB by linking
1878# against that.
1879#
1880# init.o is very important.  It pulls in the rest of GDB.
1881LIBGDB_OBS = $(sort $(COMMON_OBS)) init.o
1882libgdb.a: $(LIBGDB_OBS)
1883	-rm -f libgdb.a
1884	$(AR) q libgdb.a $(LIBGDB_OBS)
1885	$(RANLIB) libgdb.a
1886
1887# Removing the old gdb first works better if it is running, at least on SunOS.
1888gdb$(EXEEXT): gdb.o $(LIBGDB_OBS) $(CDEPS) $(TDEPLIBS)
1889	$(SILENCE) rm -f gdb$(EXEEXT)
1890	$(ECHO_CXXLD) $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) \
1891		-o gdb$(EXEEXT) gdb.o $(LIBGDB_OBS) \
1892		$(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES)
1893ifneq ($(CODESIGN_CERT),)
1894	$(ECHO_SIGN) $(CODESIGN) -s $(CODESIGN_CERT) gdb$(EXEEXT)
1895endif
1896
1897# Convenience rule to handle recursion.
1898$(LIBGNU) $(GNULIB_H): all-lib
1899all-lib: $(GNULIB_BUILDDIR)/Makefile
1900	@$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=$(GNULIB_BUILDDIR) subdir_do
1901.PHONY: all-lib
1902
1903# Convenience rule to handle recursion.
1904.PHONY: all-data-directory
1905all-data-directory: data-directory/Makefile
1906	@$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=data-directory subdir_do
1907
1908# This is useful when debugging GDB, because some Unix's don't let you run GDB
1909# on itself without copying the executable.  So "make gdb1" will make
1910# gdb and put a copy in gdb1, and you can run it with "gdb gdb1".
1911# Removing gdb1 before the copy is the right thing if gdb1 is open
1912# in another process.
1913gdb1$(EXEEXT): gdb$(EXEEXT)
1914	rm -f gdb1$(EXEEXT)
1915	cp gdb$(EXEEXT) gdb1$(EXEEXT)
1916
1917# Put the proper machine-specific files first, so M-. on a machine
1918# specific routine gets the one for the correct machine.  (FIXME: those
1919# files go in twice; we should be removing them from the main list).
1920
1921# TAGS depends on all the files that go into it so you can rebuild TAGS
1922# with `make TAGS' and not have to say `rm TAGS' first.
1923
1924GDB_NM_FILE = @GDB_NM_FILE@
1925TAGS: $(TAGFILES_NO_SRCDIR) $(TAGFILES_WITH_SRCDIR)
1926	@echo Making TAGS
1927	etags `(test -n "$(GDB_NM_FILE)" && echo "$(srcdir)/$(GDB_NM_FILE)")` \
1928	`(for i in $(DEPFILES) $(TAGFILES_NO_SRCDIR); do \
1929		echo $(srcdir)/$$i ; \
1930	done ; for i in $(TAGFILES_WITH_SRCDIR); do \
1931		echo $$i ; \
1932	done) | sed -e 's/\.o$$/\.c/'` \
1933	`find $(srcdir)/config -name '*.h' -print`
1934
1935tags: TAGS
1936
1937clean mostlyclean: $(CONFIG_CLEAN)
1938	@$(MAKE) $(FLAGS_TO_PASS) DO=clean "DODIRS=$(CLEANDIRS)" subdir_do
1939	rm -f *.o *.a *~ init.c-tmp init.l-tmp version.c-tmp
1940	rm -f init.c stamp-init version.c stamp-version
1941	rm -f gdb$(EXEEXT) core make.log
1942	rm -f gdb[0-9]$(EXEEXT)
1943	rm -f test-cp-name-parser$(EXEEXT)
1944	rm -f xml-builtin.c stamp-xml
1945	rm -f $(DEPDIR)/*
1946	for i in $(CONFIG_SRC_SUBDIR); do \
1947		rm -f $$i/*.o;	\
1948		rm -f $$i/$(DEPDIR)/*; \
1949	done
1950
1951# This used to depend on c-exp.c m2-exp.c TAGS
1952# I believe this is wrong; the makefile standards for distclean just
1953# describe removing files; the only sort of "re-create a distribution"
1954# functionality described is if the distributed files are unmodified.
1955# NB: While GDBSERVER might be configured on native systems, it isn't
1956# always included in SUBDIRS.  Remove the gdbserver files explicitly.
1957distclean: clean
1958	@$(MAKE) $(FLAGS_TO_PASS) DO=distclean "DODIRS=$(CLEANDIRS)" subdir_do
1959	rm -rf $(GNULIB_BUILDDIR)
1960	rm -f gdbserver/config.status gdbserver/config.log
1961	rm -f gdbserver/tm.h gdbserver/xm.h gdbserver/nm.h
1962	rm -f gdbserver/Makefile gdbserver/config.cache
1963	rm -f nm.h config.status config.h stamp-h b jit-reader.h
1964	rm -f gdb-gdb.py gdb-gdb.gdb
1965	rm -f y.output yacc.acts yacc.tmp y.tab.h
1966	rm -f config.log config.cache
1967	rm -f Makefile
1968	rm -rf $(DEPDIR)
1969	for i in $(CONFIG_SRC_SUBDIR); do \
1970		if test -d $$i/$(DEPDIR); then rmdir $$i/$(DEPDIR); fi \
1971	done
1972
1973maintainer-clean: local-maintainer-clean do-maintainer-clean distclean
1974realclean: maintainer-clean
1975
1976local-maintainer-clean:
1977	@echo "This command is intended for maintainers to use;"
1978	@echo "it deletes files that may require special tools to rebuild."
1979	rm -f c-exp.c \
1980		cp-name-parser.c \
1981		ada-lex.c ada-exp.c \
1982		d-exp.c f-exp.c go-exp.c m2-exp.c p-exp.c rust-exp.c
1983	rm -f TAGS
1984	rm -f $(YYFILES)
1985	rm -f nm.h config.status
1986
1987do-maintainer-clean:
1988	@$(MAKE) $(FLAGS_TO_PASS) DO=maintainer-clean "DODIRS=$(CLEANDIRS)" \
1989		subdir_do
1990
1991diststuff: $(DISTSTUFF) $(PACKAGE).pot $(CATALOGS)
1992	cd doc; $(MAKE) $(MFLAGS) diststuff
1993
1994subdir_do: force
1995	@for i in $(DODIRS); do \
1996		case $$i in \
1997		$(REQUIRED_SUBDIRS)) \
1998			if [ ! -f ./$$i/Makefile ] ; then \
1999				echo "Missing $$i/Makefile" >&2 ; \
2000				exit 1 ; \
2001			fi ;; \
2002		esac ; \
2003		if [ -f ./$$i/Makefile ] ; then \
2004			if (cd ./$$i; \
2005				$(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \
2006			else exit 1 ; fi ; \
2007		else true ; fi ; \
2008	done
2009
2010Makefile: Makefile.in config.status
2011	# Regenerate the Makefile and the tm.h / nm.h links.
2012	CONFIG_FILES="Makefile" \
2013	  CONFIG_COMMANDS= \
2014	  CONFIG_HEADERS= \
2015	  $(SHELL) config.status
2016
2017$(GNULIB_BUILDDIR)/Makefile: gnulib/Makefile.in config.status
2018	@cd $(GNULIB_BUILDDIR); CONFIG_FILES="Makefile" \
2019	  CONFIG_COMMANDS="depfiles" \
2020	  CONFIG_HEADERS= \
2021	  CONFIG_LINKS= \
2022	  $(SHELL) config.status
2023
2024data-directory/Makefile: data-directory/Makefile.in config.status
2025	CONFIG_FILES="data-directory/Makefile" \
2026	  CONFIG_COMMANDS="depfiles" \
2027	  CONFIG_HEADERS= \
2028	  CONFIG_LINKS= \
2029	  $(SHELL) config.status
2030
2031.PHONY: run
2032run: Makefile
2033	./gdb$(EXEEXT) --data-directory=`pwd`/data-directory $(GDBFLAGS)
2034
2035jit-reader.h: $(srcdir)/jit-reader.in
2036	$(SHELL) config.status $@
2037
2038gcore: $(srcdir)/gcore.in
2039	$(SHELL) config.status $@
2040
2041gdb-gdb.py: $(srcdir)/gdb-gdb.py.in
2042	$(SHELL) config.status $@
2043
2044gdb-gdb.gdb: $(srcdir)/gdb-gdb.gdb.in
2045	$(SHELL) config.status $@
2046
2047config.h: stamp-h ; @true
2048stamp-h: $(srcdir)/config.in config.status
2049	CONFIG_HEADERS=config.h:config.in \
2050	  CONFIG_COMMANDS="default depdir" \
2051	  CONFIG_FILES= \
2052	  CONFIG_LINKS= \
2053	  $(SHELL) config.status
2054
2055config.status: $(srcdir)/configure configure.nat configure.tgt configure.host ../bfd/development.sh
2056	$(SHELL) config.status --recheck
2057
2058ACLOCAL = aclocal
2059ACLOCAL_AMFLAGS = -I ../config
2060
2061# Keep these in sync with the includes in acinclude.m4.
2062aclocal_m4_deps = \
2063	configure.ac \
2064	acx_configure_dir.m4 \
2065	libmcheck.m4 \
2066	transform.m4 \
2067	../bfd/bfd.m4 \
2068	../config/acinclude.m4 \
2069	../config/plugins.m4 \
2070	../config/lead-dot.m4 \
2071	../config/override.m4 \
2072	../config/largefile.m4 \
2073	../config/gettext-sister.m4 \
2074	../config/lib-ld.m4 \
2075	../config/lib-prefix.m4 \
2076	../config/lib-link.m4 \
2077	../config/acx.m4 \
2078	../config/tcl.m4 \
2079	../config/depstand.m4 \
2080	../config/lcmessage.m4 \
2081	../config/codeset.m4 \
2082	../config/zlib.m4
2083
2084$(srcdir)/aclocal.m4: @MAINTAINER_MODE_TRUE@ $(aclocal_m4_deps)
2085	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
2086
2087AUTOCONF = autoconf
2088configure_deps = $(srcdir)/configure.ac $(srcdir)/aclocal.m4
2089$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(configure_deps)
2090	cd $(srcdir) && $(AUTOCONF)
2091
2092AUTOHEADER = autoheader
2093$(srcdir)/config.in: @MAINTAINER_MODE_TRUE@ $(configure_deps)
2094	cd $(srcdir) && $(AUTOHEADER)
2095	rm -f stamp-h
2096	touch $@
2097
2098# automatic rebuilding in automake-generated Makefiles requires
2099# this rule in the toplevel Makefile, which, with GNU make, causes
2100# the desired updates through the implicit regeneration of the Makefile
2101# and all of its prerequisites.
2102am--refresh:
2103	@:
2104
2105force:
2106
2107# Documentation!
2108# GDB QUICK REFERENCE (TeX dvi file, CM fonts)
2109doc/refcard.dvi:
2110	cd doc; $(MAKE) refcard.dvi $(FLAGS_TO_PASS)
2111
2112# GDB QUICK REFERENCE (PostScript output, common PS fonts)
2113doc/refcard.ps:
2114	cd doc; $(MAKE) refcard.ps $(FLAGS_TO_PASS)
2115
2116# GDB MANUAL: TeX dvi file
2117doc/gdb.dvi:
2118	cd doc; $(MAKE) gdb.dvi $(FLAGS_TO_PASS)
2119
2120# GDB MANUAL: info file
2121doc/gdb.info:
2122	cd doc; $(MAKE) gdb.info $(FLAGS_TO_PASS)
2123
2124# Make copying.c from COPYING
2125$(srcdir)/copying.c: @MAINTAINER_MODE_TRUE@ $(srcdir)/../COPYING3 $(srcdir)/copying.awk
2126	awk -f $(srcdir)/copying.awk \
2127		< $(srcdir)/../COPYING3 > $(srcdir)/copying.tmp
2128	mv $(srcdir)/copying.tmp $(srcdir)/copying.c
2129
2130version.c: stamp-version; @true
2131# Note that the obvious names for the temp file are taken by
2132# create-version.sh.
2133stamp-version: Makefile version.in $(srcdir)/../bfd/version.h $(srcdir)/common/create-version.sh
2134	$(ECHO_GEN) $(SHELL) $(srcdir)/common/create-version.sh $(srcdir) \
2135	    $(host_alias) $(target_alias) version-t.t
2136	@$(SHELL) $(srcdir)/../move-if-change version-t.t version.c
2137	@echo stamp > stamp-version
2138
2139
2140gdb.cxref: $(SFILES)
2141	cxref -I. $(SFILES) >gdb.cxref
2142
2143force_update:
2144
2145# GNU Make has an annoying habit of putting *all* the Makefile variables
2146# into the environment, unless you include this target as a circumvention.
2147# Rumor is that this will be fixed (and this target can be removed)
2148# in GNU Make 4.0.
2149.NOEXPORT:
2150
2151# GNU Make 3.63 has a different problem: it keeps tacking command line
2152# overrides onto the definition of $(MAKE).  This variable setting
2153# will remove them.
2154MAKEOVERRIDES =
2155
2156ALLDEPFILES = \
2157	aarch64-fbsd-nat.c \
2158	aarch64-fbsd-tdep.c \
2159	aarch64-linux-nat.c \
2160	aarch64-linux-tdep.c \
2161	aarch64-nbsd-nat.c \
2162	aarch64-nbsd-tdep.c \
2163	aarch64-newlib-tdep.c \
2164	aarch64-ravenscar-thread.c \
2165	aarch64-tdep.c \
2166	aix-thread.c \
2167	alpha-bsd-nat.c \
2168	alpha-bsd-tdep.c \
2169	alpha-linux-nat.c \
2170	alpha-linux-tdep.c \
2171	alpha-mdebug-tdep.c \
2172	alpha-nbsd-tdep.c \
2173	alpha-obsd-tdep.c \
2174	alpha-tdep.c \
2175	amd64-bsd-nat.c \
2176	amd64-darwin-tdep.c \
2177	amd64-dicos-tdep.c \
2178	amd64-fbsd-nat.c \
2179	amd64-fbsd-tdep.c \
2180	amd64-linux-nat.c \
2181	amd64-linux-tdep.c \
2182	amd64-nat.c \
2183	amd64-nbsd-nat.c \
2184	amd64-nbsd-tdep.c \
2185	amd64-obsd-nat.c \
2186	amd64-obsd-tdep.c \
2187	amd64-sol2-tdep.c \
2188	amd64-tdep.c \
2189	arc-tdep.c \
2190	arm.c \
2191	arm-bsd-tdep.c \
2192	arm-fbsd-nat.c \
2193	arm-fbsd-tdep.c \
2194	arm-get-next-pcs.c \
2195	arm-linux.c \
2196	arm-linux-nat.c \
2197	arm-linux-tdep.c \
2198	arm-nbsd-nat.c \
2199	arm-nbsd-tdep.c \
2200	arm-obsd-tdep.c \
2201	arm-symbian-tdep.c \
2202	arm-tdep.c \
2203	avr-tdep.c \
2204	bfin-linux-tdep.c \
2205	bfin-tdep.c \
2206	bsd-kvm.c \
2207	bsd-uthread.c \
2208	csky-linux-tdep.c \
2209	csky-tdep.c \
2210	darwin-nat.c \
2211	dicos-tdep.c \
2212	fbsd-nat.c \
2213	fbsd-tdep.c \
2214	fork-child.c \
2215	ft32-tdep.c \
2216	glibc-tdep.c \
2217	go32-nat.c \
2218	h8300-tdep.c \
2219	hppa-bsd-tdep.c \
2220	hppa-linux-nat.c \
2221	hppa-linux-tdep.c \
2222	hppa-nbsd-nat.c \
2223	hppa-nbsd-tdep.c \
2224	hppa-obsd-nat.c \
2225	hppa-obsd-tdep.c \
2226	hppa-tdep.c \
2227	i386-bsd-nat.c \
2228	i386-bsd-tdep.c \
2229	i386-cygwin-tdep.c \
2230	i386-darwin-nat.c \
2231	i386-darwin-tdep.c \
2232	i386-dicos-tdep.c \
2233	i386-fbsd-nat.c \
2234	i386-fbsd-tdep.c \
2235	i386-gnu-nat.c \
2236	i386-gnu-tdep.c \
2237	i386-linux-nat.c \
2238	i386-linux-tdep.c \
2239	i386-nbsd-nat.c \
2240	i386-nbsd-tdep.c \
2241	i386-obsd-nat.c \
2242	i386-obsd-tdep.c \
2243	i386-sol2-nat.c \
2244	i386-sol2-tdep.c \
2245	i386-tdep.c \
2246	i387-tdep.c \
2247	ia64-libunwind-tdep.c \
2248	ia64-linux-nat.c \
2249	ia64-linux-tdep.c \
2250	ia64-tdep.c \
2251	ia64-vms-tdep.c \
2252	inf-ptrace.c \
2253	linux-fork.c \
2254	linux-record.c \
2255	linux-tdep.c \
2256	lm32-tdep.c \
2257	m32r-linux-nat.c \
2258	m32r-linux-tdep.c \
2259	m32r-tdep.c \
2260	m68hc11-tdep.c \
2261	m68k-bsd-nat.c \
2262	m68k-bsd-tdep.c \
2263	m68k-linux-nat.c \
2264	m68k-linux-tdep.c \
2265	m68k-tdep.c \
2266	microblaze-linux-tdep.c \
2267	microblaze-tdep.c \
2268	mingw-hdep.c \
2269	mips-fbsd-nat.c \
2270	mips-fbsd-tdep.c \
2271	mips-linux-nat.c \
2272	mips-linux-tdep.c \
2273	mips-nbsd-nat.c \
2274	mips-nbsd-tdep.c \
2275	mips-sde-tdep.c \
2276	mips-tdep.c \
2277	mips64-obsd-nat.c \
2278	mips64-obsd-tdep.c \
2279	msp430-tdep.c \
2280	nbsd-nat.c \
2281	nbsd-tdep.c \
2282	nds32-tdep.c \
2283	nios2-linux-tdep.c \
2284	nios2-tdep.c \
2285	obsd-nat.c \
2286	obsd-tdep.c \
2287	posix-hdep.c \
2288	ppc-fbsd-nat.c \
2289	ppc-fbsd-tdep.c \
2290	ppc-linux-nat.c \
2291	ppc-linux-tdep.c \
2292	ppc-nbsd-nat.c \
2293	ppc-nbsd-tdep.c \
2294	ppc-obsd-nat.c \
2295	ppc-obsd-tdep.c \
2296	ppc-ravenscar-thread.c \
2297	ppc-sysv-tdep.c \
2298	ppc64-tdep.c \
2299	procfs.c \
2300	ravenscar-thread.c \
2301	remote-sim.c \
2302	riscv-fbsd-nat.c \
2303	riscv-fbsd-tdep.c \
2304	riscv-linux-nat.c \
2305	riscv-linux-tdep.c \
2306	riscv-tdep.c \
2307	rl78-tdep.c \
2308	rs6000-lynx178-tdep.c \
2309	rs6000-nat.c \
2310	rs6000-tdep.c \
2311	rx-tdep.c \
2312	s390-linux-nat.c \
2313	s390-linux-tdep.c \
2314	s390-tdep.c \
2315	score-tdep.c \
2316	ser-go32.c \
2317	ser-mingw.c \
2318	ser-pipe.c \
2319	ser-tcp.c \
2320	ser-uds.c \
2321	sh-nbsd-nat.c \
2322	sh-nbsd-tdep.c \
2323	sh-tdep.c \
2324	sol2-tdep.c \
2325	solib-aix.c \
2326	solib-spu.c \
2327	solib-svr4.c \
2328	sparc-linux-nat.c \
2329	sparc-linux-tdep.c \
2330	sparc-nat.c \
2331	sparc-nbsd-nat.c \
2332	sparc-nbsd-tdep.c \
2333	sparc-obsd-tdep.c \
2334	sparc-ravenscar-thread.c \
2335	sparc-sol2-nat.c \
2336	sparc-sol2-tdep.c \
2337	sparc-tdep.c \
2338	sparc64-fbsd-nat.c \
2339	sparc64-fbsd-tdep.c \
2340	sparc64-linux-nat.c \
2341	sparc64-linux-tdep.c \
2342	sparc64-nat.c \
2343	sparc64-nbsd-nat.c \
2344	sparc64-nbsd-tdep.c \
2345	sparc64-obsd-nat.c \
2346	sparc64-obsd-tdep.c \
2347	sparc64-sol2-tdep.c \
2348	sparc64-tdep.c \
2349	spu-linux-nat.c \
2350	spu-multiarch.c \
2351	spu-tdep.c \
2352	tilegx-linux-nat.c \
2353	tilegx-linux-tdep.c \
2354	tilegx-tdep.c \
2355	v850-tdep.c \
2356	vax-bsd-nat.c \
2357	vax-nbsd-tdep.c \
2358	vax-tdep.c \
2359	windows-nat.c \
2360	windows-tdep.c \
2361	x86-nat.c \
2362	x86-tdep.c \
2363	xcoffread.c \
2364	xstormy16-tdep.c \
2365	xtensa-config.c \
2366	xtensa-linux-nat.c \
2367	xtensa-linux-tdep.c \
2368	xtensa-tdep.c \
2369	xtensa-xtregs.c \
2370	common/mingw-strerror.c \
2371	common/posix-strerror.c
2372
2373# Some files need explicit build rules (due to -Werror problems) or due
2374# to sub-directory fun 'n' games.
2375
2376# ada-exp.c can appear in srcdir, for releases; or in ., for
2377# development builds.
2378ADA_EXP_C = `if test -f ada-exp.c; then echo ada-exp.c; else echo $(srcdir)/ada-exp.c; fi`
2379
2380ada-exp.o: ada-exp.c
2381	$(COMPILE) $(ADA_EXP_C)
2382	$(POSTCOMPILE)
2383
2384# Message files.  Based on code in gcc/Makefile.in.
2385
2386# Rules for generating translated message descriptions.  Disabled by
2387# autoconf if the tools are not available.
2388
2389.PHONY: all-po install-po uninstall-po clean-po update-po $(PACKAGE).pot
2390
2391all-po: $(CATALOGS)
2392
2393# This notation should be acceptable to all Make implementations used
2394# by people who are interested in updating .po files.
2395update-po: $(CATALOGS:.gmo=.pox)
2396
2397# N.B. We do not attempt to copy these into $(srcdir).  The snapshot
2398# script does that.
2399%.gmo: %.po
2400	-test -d po || mkdir po
2401	$(GMSGFMT) --statistics -o $@ $<
2402
2403# The new .po has to be gone over by hand, so we deposit it into
2404# build/po with a different extension.  If build/po/$(PACKAGE).pot
2405# exists, use it (it was just created), else use the one in srcdir.
2406%.pox: %.po
2407	-test -d po || mkdir po
2408	$(MSGMERGE) $< `if test -f po/$(PACKAGE).pot; \
2409			then echo po/$(PACKAGE).pot; \
2410			else echo $(srcdir)/po/$(PACKAGE).pot; fi` -o $@
2411
2412# This rule has to look for .gmo modules in both srcdir and the cwd,
2413# and has to check that we actually have a catalog for each language,
2414# in case they weren't built or included with the distribution.
2415install-po:
2416	$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(datadir)
2417	cats="$(CATALOGS)"; for cat in $$cats; do \
2418	  lang=`basename $$cat | sed 's/\.gmo$$//'`; \
2419	  if [ -f $$cat ]; then :; \
2420	  elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \
2421	  else continue; \
2422	  fi; \
2423	  dir=$(localedir)/$$lang/LC_MESSAGES; \
2424	  echo $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$$dir; \
2425	  $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$$dir || exit 1; \
2426	  echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
2427	  $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
2428	done
2429uninstall-po:
2430	cats="$(CATALOGS)"; for cat in $$cats; do \
2431	  lang=`basename $$cat | sed 's/\.gmo$$//'`; \
2432	  if [ -f $$cat ]; then :; \
2433	  elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \
2434	  else continue; \
2435	  fi; \
2436	  dir=$(localedir)/$$lang/LC_MESSAGES; \
2437	  rm -f $(DESTDIR)$$dir/$(PACKAGE).mo; \
2438	done
2439# Delete po/*.gmo only if we are not building in the source directory.
2440clean-po:
2441	-if [ ! -f Makefile.in ]; then rm -f po/*.gmo; fi
2442
2443# Rule for regenerating the message template (gdb.pot).  Instead of
2444# forcing everyone to edit POTFILES.in, which proved impractical, this
2445# rule has no dependencies and always regenerates gdb.pot.  This is
2446# relatively harmless since the .po files do not directly depend on
2447# it.  The .pot file is left in the build directory.  Since GDB's
2448# Makefile lacks a cannonical list of sources (missing xm, tm and nm
2449# files) force this rule.
2450$(PACKAGE).pot: po/$(PACKAGE).pot
2451po/$(PACKAGE).pot: force
2452	-test -d po || mkdir po
2453	sh -e $(srcdir)/po/gdbtext $(XGETTEXT) $(PACKAGE) . $(srcdir)
2454
2455
2456#
2457# YACC/LEX dependencies
2458#
2459# LANG-exp.c is generated in objdir from LANG-exp.y if it doesn't
2460# exist in srcdir, then compiled in objdir to LANG-exp.o.  If we
2461# said LANG-exp.c rather than ./c-exp.c some makes would
2462# sometimes re-write it into $(srcdir)/c-exp.c.  Remove bogus
2463# decls for malloc/realloc/free which conflict with everything else.
2464# Strictly speaking c-exp.c should therefore depend on
2465# Makefile.in, but that was a pretty big annoyance.
2466
2467%.c: %.y
2468	$(ECHO_YACC) $(SHELL) $(YLWRAP) $< y.tab.c $@.tmp -- \
2469		$(YACC) $(YFLAGS) || (rm -f $@.tmp; false)
2470	@sed -e '/extern.*malloc/d' \
2471	     -e '/extern.*realloc/d' \
2472	     -e '/extern.*free/d' \
2473	     -e '/include.*malloc.h/d' \
2474	     -e 's/\([^x]\)malloc/\1xmalloc/g' \
2475	     -e 's/\([^x]\)realloc/\1xrealloc/g' \
2476	     -e 's/\([ \t;,(]\)free\([ \t]*[&(),]\)/\1xfree\2/g' \
2477	     -e 's/\([ \t;,(]\)free$$/\1xfree/g' \
2478	     -e '/^#line.*y.tab.c/d' \
2479	     -e 's/YY_NULL/YY_NULLPTR/g' \
2480	  < $@.tmp > $@.new && \
2481	  rm -f $@.tmp && \
2482	  mv $@.new $@
2483%.c: %.l
2484	$(ECHO_LEX) $(FLEX) -t $<  \
2485	    | sed -e '/extern.*malloc/d' \
2486	        -e '/extern.*realloc/d' \
2487	        -e '/extern.*free/d' \
2488	        -e '/include.*malloc.h/d' \
2489	        -e 's/\([^x]\)malloc/\1xmalloc/g' \
2490	        -e 's/\([^x]\)realloc/\1xrealloc/g' \
2491	        -e 's/\([ \t;,(]\)free\([ \t]*[&(),]\)/\1xfree\2/g' \
2492	        -e 's/\([ \t;,(]\)free$$/\1xfree/g' \
2493		-e 's/yy_flex_xrealloc/yyxrealloc/g' \
2494	      > $@.new && \
2495	    mv $@.new $@
2496
2497.PRECIOUS: ada-lex.c
2498
2499# XML rules
2500
2501xml-builtin.c: stamp-xml; @true
2502stamp-xml: $(srcdir)/features/feature_to_c.sh Makefile $(XMLFILES)
2503	$(SILENCE) rm -f xml-builtin.tmp
2504	$(ECHO_GEN_XML_BUILTIN) AWK="$(AWK)" \
2505	  $(SHELL) $(srcdir)/features/feature_to_c.sh \
2506	  xml-builtin.tmp $(XMLFILES)
2507	$(SILENCE) $(SHELL) $(srcdir)/../move-if-change xml-builtin.tmp xml-builtin.c
2508	$(SILENCE) echo stamp > stamp-xml
2509
2510.PRECIOUS: xml-builtin.c
2511
2512#
2513# GDBTK sub-directory
2514#
2515
2516all-gdbtk: insight$(EXEEXT)
2517
2518install-gdbtk:
2519	transformed_name=`t='$(program_transform_name)'; \
2520		  echo insight | sed -e $$t` ; \
2521	if test "x$$transformed_name" = x; then \
2522	  transformed_name=insight ; \
2523	else \
2524	  true ; \
2525	fi ; \
2526	$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir); \
2527	$(INSTALL_PROGRAM) insight$(EXEEXT) \
2528		$(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \
2529	$(SHELL) $(srcdir)/../mkinstalldirs \
2530		$(DESTDIR)$(GDBTK_LIBRARY) ; \
2531	$(SHELL) $(srcdir)/../mkinstalldirs \
2532		$(DESTDIR)$(libdir)/insight$(GDBTK_VERSION) ; \
2533	$(INSTALL_DATA) $(srcdir)/gdbtk/plugins/plugins.tcl \
2534		$(DESTDIR)$(libdir)/insight$(GDBTK_VERSION)/plugins.tcl ; \
2535	$(SHELL) $(srcdir)/../mkinstalldirs \
2536		$(DESTDIR)$(GDBTK_LIBRARY)/images \
2537		$(DESTDIR)$(GDBTK_LIBRARY)/images2 ; \
2538	$(SHELL) $(srcdir)/../mkinstalldirs \
2539		$(DESTDIR)$(GDBTK_LIBRARY)/help \
2540		$(DESTDIR)$(GDBTK_LIBRARY)/help/images \
2541		$(DESTDIR)$(GDBTK_LIBRARY)/help/trace ; \
2542	cd $(srcdir)/gdbtk/library ; \
2543	for i in *.tcl *.itcl *.ith *.itb images/*.gif images2/*.gif images/icons.txt images2/icons.txt tclIndex help/*.html  help/trace/*.html help/trace/index.toc help/images/*.gif help/images/*.png; \
2544	  do \
2545		$(INSTALL_DATA) $$i $(DESTDIR)$(GDBTK_LIBRARY)/$$i ; \
2546	  done ;
2547
2548uninstall-gdbtk:
2549	transformed_name=`t='$(program_transform_name)'; \
2550		  echo insight | sed -e $$t` ; \
2551	if test "x$$transformed_name" = x; then \
2552		transformed_name=insight ; \
2553	else \
2554		true ; \
2555	fi ; \
2556	rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \
2557	rm -rf $(DESTDIR)$(GDBTK_LIBRARY)
2558
2559clean-gdbtk:
2560	rm -f insight$(EXEEXT)
2561
2562# Removing the old gdb first works better if it is running, at least on SunOS.
2563insight$(EXEEXT): gdbtk-main.o libgdb.a $(CDEPS) $(TDEPLIBS)
2564	rm -f insight$(EXEEXT)
2565	$(ECHO_CXXLD) $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) \
2566		-o insight$(EXEEXT) gdbtk-main.o libgdb.a \
2567		$(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES)
2568
2569gdbres.o: $(srcdir)/gdbtk/gdb.rc $(srcdir)/gdbtk/gdbtool.ico
2570	$(WINDRES) --include $(srcdir)/gdbtk $(srcdir)/gdbtk/gdb.rc gdbres.o
2571
2572all_gdbtk_cflags = $(IDE_CFLAGS) $(ITCL_CFLAGS) \
2573		$(ITK_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) \
2574		$(GDBTK_CFLAGS) \
2575		-DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\" \
2576		-DSRC_DIR=\"$(GDBTK_SRC_DIR)\"
2577
2578#
2579# Dependency tracking.
2580#
2581
2582ifeq ($(DEPMODE),depmode=gcc3)
2583# Note that we put the dependencies into a .Tpo file, then move them
2584# into place if the compile succeeds.  We need this because gcc does
2585# not atomically write the dependency output file.
2586override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \
2587	-MF $(@D)/$(DEPDIR)/$(basename $(@F)).Tpo
2588override POSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(basename $(@F)).Tpo \
2589	$(@D)/$(DEPDIR)/$(basename $(@F)).Po
2590else
2591override COMPILE.pre = source='$<' object='$@' libtool=no \
2592	DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) \
2593	$(CXX) -x c++ $(CXX_DIALECT)
2594# depcomp handles atomicity for us, so we don't need a postcompile
2595# step.
2596override POSTCOMPILE =
2597endif
2598
2599# A list of all the objects we might care about in this build, for
2600# dependency tracking.
2601all_object_files = gdb.o $(LIBGDB_OBS) gdbtk-main.o \
2602	test-cp-name-parser.o
2603
2604# All the .deps files to include.
2605all_deps_files = $(foreach dep,$(patsubst %.o,%.Po,$(all_object_files)),\
2606    $(dir $(dep))/$(DEPDIR)/$(notdir $(dep)))
2607
2608# Ensure that generated files are created early.  Use order-only
2609# dependencies if available.  They require GNU make 3.80 or newer,
2610# and the .VARIABLES variable was introduced at the same time.
2611ifdef .VARIABLES
2612$(all_object_files): | $(generated_files)
2613else
2614$(all_object_files) : $(generated_files)
2615endif
2616
2617# Dependencies.
2618-include $(all_deps_files)
2619
2620# Disable implicit make rules.
2621include $(srcdir)/disable-implicit-rules.mk
2622
2623### end of the gdb Makefile.in.
2624