nat_extra_makefile_frag -> nat_makefile_frag
[external/binutils.git] / gdb / configure.nat
1 # ; -*- mode: sh ; -*-
2 # Copyright (C) 2013-2017 Free Software Foundation, Inc.
3 #
4 # This file is part of GDB.
5 #
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19 # Variables defined here:
20 #
21 # NAT_FILE - The header file with definitions for this native target.
22 #
23 # NATDEPFILES - Source files required for native debugging on this
24 #               native target.
25 #
26 # NAT_CDEPS - Dynamic symbols to be exported for libthread_db.
27 #
28 # LOADLIBES - Libraries against which GDB will be linked for this
29 #             native target.
30 #
31 # MH_CFLAGS - Additional CFLAGS for this host.
32 #
33 # XM_CLIBS - Host-dependent libraries against which GDB will be linked
34 #            for this native target.
35 #
36 # HAVE_NATIVE_GCORE_HOST - Whether gcore should be installed on this
37 #                          native target.
38 #
39 # nat_makefile_frag - Name of the (optional) Makefile fragment file
40 #                     required to build the native target.  The
41 #                     fragment is incorporated into the Makefile that
42 #                     configure constructs from Makefile.in.
43 #
44 # Notes:
45 #
46 # - To avoid shell expansion of variables, declare them with single
47 #   quotes.
48 #
49 # - nat_makefile_frag must contain the full path of the file.
50
51
52 # This first case is useful for filling default values for each
53 # gdb_host.
54 case ${gdb_host} in
55     *linux*)
56         NAT_FILE='config/nm-linux.h'
57         NATDEPFILES='inf-ptrace.o fork-child.o proc-service.o \
58                 linux-thread-db.o linux-nat.o linux-osdata.o linux-fork.o \
59                 linux-procfs.o linux-ptrace.o linux-waitpid.o \
60                 linux-personality.o linux-namespaces.o'
61         NAT_CDEPS='$(srcdir)/proc-service.list'
62         LOADLIBES='-ldl $(RDYNAMIC)'
63         ;;
64     fbsd*)
65         NATDEPFILES='fork-child.o inf-ptrace.o fbsd-nat.o'
66         HAVE_NATIVE_GCORE_HOST=1
67         LOADLIBES='-lkvm'
68         ;;
69     nbsd*)
70         NATDEPFILES='fork-child.o inf-ptrace.o'
71         ;;
72     obsd*)
73         NATDEPFILES='fork-child.o inf-ptrace.o'
74         ;;
75     cygwin*)
76         NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o'
77         ;;
78     mingw*)
79         NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o'
80         ;;
81 esac
82
83 # This is where we actually filter by host and host CPU.
84 case ${gdb_host} in
85     aix)
86         case ${gdb_host_cpu} in
87             powerpc)
88                 # Host: IBM PowerPC running AIX aix-thread.o is not
89                 # listed in NATDEPFILES as it is pulled in by
90                 # configure.
91                 NATDEPFILES='fork-child.o inf-ptrace.o rs6000-nat.o'
92
93                 # When compiled with cc, for debugging, this argument
94                 # should be passed.  We have no idea who our current
95                 # compiler is though, so we skip it.
96                 # MH_CFLAGS='-bnodelcsect'
97                 ;;
98         esac
99         ;;
100     alpha-linux)
101         case ${gdb_host_cpu} in
102             alpha)
103                 # Host: Little-endian Alpha running Linux
104                 NATDEPFILES="${NATDEPFILES} alpha-linux-nat.o"
105                 # doublest.c currently assumes some properties of FP arithmetic
106                 # on the host which require this.
107                 MH_CFLAGS='-mieee'
108                 ;;
109         esac
110         ;;
111     cygwin)
112         case ${gdb_host_cpu} in
113             i386)
114                 # Native config information for GDB on i386
115                 # systems running Cygwin.
116                 NATDEPFILES="${NATDEPFILES} i386-windows-nat.o"
117                 ;;
118         esac
119         ;;
120     cygwin64)
121         case ${gdb_host_cpu} in
122             i386)
123                 # Native config information for GDB on amd64
124                 # systems running Cygwin.
125                 NATDEPFILES="${NATDEPFILES} amd64-windows-nat.o"
126                 ;;
127         esac
128         ;;
129     darwin)
130         case ${gdb_host_cpu} in
131             i386)
132                 # Host: IA86 running Darwin
133                 NATDEPFILES='fork-child.o darwin-nat.o \
134                 i386-darwin-nat.o x86-nat.o x86-dregs.o amd64-nat.o \
135                 darwin-nat-info.o'
136                 ;;
137         esac
138         ;;
139     fbsd)
140         case ${gdb_host_cpu} in
141             i386)
142                 # Host: FreeBSD/i386
143                 NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \
144                 x86-bsd-nat.o i386-bsd-nat.o i386-fbsd-nat.o bsd-kvm.o"
145                 NAT_FILE='nm-fbsd.h'
146                 ;;
147             mips)
148                 # Host: FreeBSD/mips
149                 NATDEPFILES="${NATDEPFILES} mips-fbsd-nat.o"
150                 LOADLIBES=
151                 ;;
152             powerpc)
153                 # Native config information for GDB on PowerPC
154                 # systems running FreeBSD.
155                 NATDEPFILES="${NATDEPFILES} ppc-fbsd-nat.o bsd-kvm.o"
156                 ;;
157             sparc)
158                 # Host: FreeBSD/sparc64
159                 NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc64-nat.o \
160                 sparc64-fbsd-nat.o bsd-kvm.o"
161                 ;;
162         esac
163         ;;
164     fbsd64)
165         case ${gdb_host_cpu} in
166             i386)
167                 # Host: FreeBSD/amd64
168                 NATDEPFILES="${NATDEPFILES} amd64-nat.o amd64-bsd-nat.o \
169                 amd64-fbsd-nat.o bsd-kvm.o x86-nat.o x86-dregs.o x86-bsd-nat.o"
170                 ;;
171         esac
172         ;;
173     go32)
174         case ${gdb_host_cpu} in
175             i386)
176                 # Host: Intel x86 running DJGPP
177                 # We include several header files from config/djgpp
178                 MH_CFLAGS='-I$(srcdir)/config/djgpp'
179                 NATDEPFILES='go32-nat.o x86-nat.o x86-dregs.o'
180                 XM_CLIBS='-ldbg'
181                 ;;
182         esac
183         ;;
184     i386gnu)
185         case ${gdb_host_cpu} in
186             i386)
187                 # Host: Intel 386 running the GNU Hurd
188                 NATDEPFILES='i386-gnu-nat.o gnu-nat.o \
189                      x86-nat.o x86-dregs.o fork-child.o \
190                      notify_S.o process_reply_S.o msg_reply_S.o \
191                      msg_U.o exc_request_U.o exc_request_S.o'
192                 HAVE_NATIVE_GCORE_HOST=1
193
194                 NAT_FILE='nm-i386gnu.h'
195                 MH_CFLAGS='-D_GNU_SOURCE'
196
197                 XM_CLIBS='-lshouldbeinlibc'
198
199                 nat_makefile_frag="${srcdir}/config/${gdb_host_cpu}/i386gnu.mn"
200                 ;;
201         esac
202         ;;
203     i386sol2)
204         case ${gdb_host_cpu} in
205             i386)
206                 # Host: Solaris x86
207                 NATDEPFILES='fork-child.o i386-v4-nat.o i386-sol2-nat.o \
208                 procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
209                 HAVE_NATIVE_GCORE_HOST=1
210                 ;;
211         esac
212         ;;
213     linux)
214         case ${gdb_host_cpu} in
215             aarch64)
216                 #  Host: AArch64 based machine running GNU/Linux
217                 NATDEPFILES="${NATDEPFILES} aarch64-linux-nat.o \
218                 aarch32-linux-nat.o aarch64-linux-hw-point.o aarch64-linux.o"
219                 ;;
220             arm)
221                 # Host: ARM based machine running GNU/Linux
222                 NATDEPFILES="${NATDEPFILES} arm-linux-nat.o \
223                 aarch32-linux-nat.o"
224                 ;;
225             i386)
226                 # Host: Intel 386 running GNU/Linux.
227                 NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \
228                 i386-linux-nat.o x86-linux-nat.o linux-btrace.o \
229                 x86-linux.o x86-linux-dregs.o"
230                 ;;
231             ia64)
232                 # Host: Intel IA-64 running GNU/Linux
233                 NATDEPFILES="${NATDEPFILES} ia64-linux-nat.o"
234                 ;;
235             m32r)
236                 # Host: M32R based machine running GNU/Linux
237                 NATDEPFILES="${NATDEPFILES} m32r-linux-nat.o"
238                 ;;
239             m68k)
240                 # Host: Motorola m68k running GNU/Linux.
241                 NATDEPFILES="${NATDEPFILES} m68k-linux-nat.o"
242                 ;;
243             mips)
244                 # Host: Linux/MIPS
245                 NATDEPFILES="${NATDEPFILES} mips-linux-nat.o \
246                 mips-linux-watch.o"
247                 ;;
248             pa)
249                 # Host: Hewlett-Packard PA-RISC machine, running Linux
250                 NATDEPFILES="${NATDEPFILES} hppa-linux-nat.o"
251                 ;;
252             powerpc)
253                 # Host: PowerPC, running Linux
254                 NATDEPFILES="${NATDEPFILES} ppc-linux-nat.o"
255                 ;;
256             s390)
257                 # Host: S390, running Linux
258                 NATDEPFILES="${NATDEPFILES} s390-linux-nat.o"
259                 ;;
260             sparc)
261                 # Host: GNU/Linux SPARC
262                 NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc-linux-nat.o"
263                 ;;
264             tilegx)
265                 # Host: Tilera TILE-Gx running GNU/Linux.
266                 NATDEPFILES="${NATDEPFILES} tilegx-linux-nat.o"
267                 NAT_CDEPS=
268                 ;;
269             xtensa)
270                 # Host: Xtensa, running GNU/Linux.
271                 NATDEPFILES="${NATDEPFILES} xtensa-linux-nat.o"
272                 ;;
273         esac
274         ;;
275     linux64)
276         case ${gdb_host_cpu} in
277             i386)
278                 # Host: GNU/Linux x86-64
279                 NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \
280                 amd64-nat.o amd64-linux-nat.o x86-linux-nat.o linux-btrace.o \
281                 x86-linux.o x86-linux-dregs.o amd64-linux-siginfo.o"
282                 ;;
283             sparc)
284                 # Host: GNU/Linux UltraSPARC
285                 NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc64-nat.o \
286                 sparc64-linux-nat.o"
287                 ;;
288         esac
289         ;;
290     mingw)
291         case ${gdb_host_cpu} in
292             i386)
293                 NATDEPFILES="${NATDEPFILES} i386-windows-nat.o"
294                 ;;
295         esac
296         ;;
297     mingw64)
298         case ${gdb_host_cpu} in
299             i386)
300                 NATDEPFILES="${NATDEPFILES} amd64-windows-nat.o"
301                 ;;
302         esac
303         ;;
304     nbsd)
305         case ${gdb_host_cpu} in
306             alpha)
307                 # Host: NetBSD/alpha
308                 NATDEPFILES="${NATDEPFILES} alpha-bsd-nat.o bsd-kvm.o"
309                 LOADLIBES='-lkvm'
310                 ;;
311             mips)
312                 # Host: NetBSD/mips
313                 NATDEPFILES="${NATDEPFILES} mips-nbsd-nat.o"
314                 ;;
315             pa)
316                 # Host: NetBSD/hppa
317                 NATDEPFILES="${NATDEPFILES} nbsd-nat.o hppa-nbsd-nat.o"
318                 ;;
319             powerpc)
320                 # Host: NetBSD/powerpc
321                 NATDEPFILES="${NATDEPFILES} ppc-nbsd-nat.o bsd-kvm.o"
322                 LOADLIBES='-lkvm'
323                 ;;
324             sh)
325                 # Host: NetBSD/sh
326                 NATDEPFILES="${NATDEPFILES} sh-nbsd-nat.o"
327                 ;;
328
329         esac
330         ;;
331     nbsd64)
332         case ${gdb_host_cpu} in
333             i386)
334                 # Host: NetBSD/amd64
335                 NATDEPFILES="${NATDEPFILES} nbsd-nat.o amd64-nat.o \
336                 x86-bsd-nat.o amd64-bsd-nat.o amd64-nbsd-nat.o"
337                 ;;
338             sparc)
339                 # Host: NetBSD/sparc64
340                 NATDEPFILES="${NATDEPFILES} sparc64-nbsd-nat.o sparc-nat.o \
341                 bsd-kvm.o"
342                 ;;
343
344         esac
345         ;;
346     nbdself)
347         case ${gdb_host_cpu} in
348             arm)
349                 # Host: NetBSD/arm
350                 NATDEPFILES="${NATDEPFILES} arm-nbsd-nat.o"
351                 ;;
352             i386)
353                 # Host: NetBSD/i386 ELF
354                 NATDEPFILES="${NATDEPFILES} nbsd-nat.o x86-bsd-nat.o \
355                 i386-bsd-nat.o i386-nbsd-nat.o bsd-kvm.o"
356                 LOADLIBES='-lkvm'
357                 ;;
358             m68k)
359                 # Host: NetBSD/m68k ELF
360                 NATDEPFILES="${NATDEPFILES} m68k-bsd-nat.o bsd-kvm.o"
361                 LOADLIBES='-lkvm'
362                 ;;
363             sparc)
364                 # Host: NetBSD/sparc ELF
365                 NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc-nbsd-nat.o \
366                 bsd-kvm.o"
367                 LOADLIBES='-lkvm'
368                 ;;
369             vax)
370                 # Host: NetBSD/vax ELF
371                 NATDEPFILES="${NATDEPFILES} vax-bsd-nat.o bsd-kvm.o"
372                 LOADLIBES='-lkvm'
373                 ;;
374
375         esac
376         ;;
377     nto)
378         case ${gdb_host_cpu} in
379             i386)
380                 # Host: Intel 386 running QNX.
381                 NATDEPFILES='nto-procfs.o'
382                 NAT_FILE='config/nm-nto.h'
383                 ;;
384         esac
385         ;;
386     obsd)
387         case ${gdb_host_cpu} in
388             i386)
389                 # Host: OpenBSD/i386 ELF
390                 NATDEPFILES="${NATDEPFILES} obsd-nat.o x86-bsd-nat.o \
391                 i386-bsd-nat.o i386-obsd-nat.o bsd-kvm.o"
392                 LOADLIBES='-lkvm'
393                 ;;
394             m68k)
395                 # Host: OpenBSD/m68k
396                 NATDEPFILES="${NATDEPFILES} m68k-bsd-nat.o bsd-kvm.o"
397                 LOADLIBES='-lkvm'
398                 ;;
399             m88k)
400                 # Host: OpenBSD/m88k
401                 NATDEPFILES="${NATDEPFILES} m88k-bsd-nat.o"
402                 ;;
403             pa)
404                 # Host: OpenBSD/hppa
405                 NATDEPFILES="${NATDEPFILES} obsd-nat.o hppa-obsd-nat.o"
406                 ;;
407             powerpc)
408                 # Host: OpenBSD/powerpc
409                 NATDEPFILES="${NATDEPFILES} obsd-nat.o ppc-obsd-nat.o bsd-kvm.o"
410                 LOADLIBES='-lkvm'
411                 ;;
412             vax)
413                 # Host: OpenBSD/vax
414                 NATDEPFILES="${NATDEPFILES} vax-bsd-nat.o bsd-kvm.o"
415                 LOADLIBES='-lkvm'
416                 ;;
417         esac
418         ;;
419     obsd64)
420         case ${gdb_host_cpu} in
421             i386)
422                 # Host: OpenBSD/amd64
423                 NATDEPFILES="${NATDEPFILES} obsd-nat.o amd64-nat.o \
424                 x86-bsd-nat.o amd64-bsd-nat.o amd64-obsd-nat.o bsd-kvm.o"
425                 LOADLIBES='-lkvm'
426                 ;;
427             mips)
428                 # Host: OpenBSD/mips64
429                 NATDEPFILES="${NATDEPFILES} obsd-nat.o mips64-obsd-nat.o"
430                 ;;
431             sparc)
432                 # Host: OpenBSD/sparc64
433                 NATDEPFILES="${NATDEPFILES} obsd-nat.o sparc64-obsd-nat.o \
434                 sparc-nat.o bsd-kvm.o"
435                 LOADLIBES='-lkvm'
436                 ;;
437         esac
438         ;;
439     ppc64-linux)
440         case ${gdb_host_cpu} in
441             powerpc)
442                 # Host: PowerPC64, running Linux
443                 XM_CLIBS=
444                 NATDEPFILES="${NATDEPFILES} ppc-linux-nat.o ppc-linux.o"
445                 ;;
446         esac
447         ;;
448     sol2)
449         case ${gdb_host_cpu} in
450             sparc)
451                 # Host: Solaris SPARC & UltraSPARC
452                 NAT_FILE='nm-sol2.h'
453                 NATDEPFILES='sparc-sol2-nat.o \
454                 fork-child.o \
455                 procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
456                 HAVE_NATIVE_GCORE_HOST=1
457                 ;;
458         esac
459         ;;
460     sol2-64)
461         case ${gdb_host_cpu} in
462             i386)
463                 # Host: Solaris x86_64
464                 NATDEPFILES='fork-child.o amd64-nat.o i386-v4-nat.o i386-sol2-nat.o \
465                 procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
466                 HAVE_NATIVE_GCORE_HOST=1
467                 ;;
468         esac
469         ;;
470     spu-linux)
471         case ${gdb_host_cpu} in
472             powerpc)
473                 # Target: Cell BE (PowerPC64 + SPU)
474                 # This implements a 'pseudo-native' GDB running on the
475                 # PPU side of the Cell BE and debugging the SPU side.
476                 NAT_FILE=
477                 NAT_CDEPS=
478                 LOADLIBES=
479                 NATDEPFILES='spu-linux-nat.o fork-child.o inf-ptrace.o \
480                       linux-procfs.o linux-ptrace.o linux-waitpid.o \
481                       linux-personality.o linux-namespaces.o'
482                 ;;
483         esac
484         ;;
485 esac