]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/gcc-interface/Makefile.in
[multiple changes]
[thirdparty/gcc.git] / gcc / ada / gcc-interface / Makefile.in
CommitLineData
a1ab4c31 1# Makefile for GNU Ada Compiler (GNAT).
4bdaaf2f 2# Copyright (C) 1994-2011 Free Software Foundation, Inc.
a1ab4c31
AC
3
4#This file is part of GCC.
5
6#GCC 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, or (at your option)
9#any later version.
10
11#GCC 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 GCC; see the file COPYING3. If not see
18#<http://www.gnu.org/licenses/>.
19
20# The makefile built from this file lives in the language subdirectory.
21# Its purpose is to provide support for:
22#
23# 1) recursion where necessary, and only then (building .o's), and
24# 2) building and debugging cc1 from the language subdirectory, and
25# 3) nothing else.
26#
27# The parent makefile handles all other chores, with help from the
28# language makefile fragment, of course.
29#
30# The targets for external use are:
31# all, TAGS, ???mostlyclean, ???clean.
32
33# This makefile will only work with Gnu make.
34# The rules are written assuming a minimum subset of tools are available:
35#
36# Required:
37# MAKE: Only Gnu make will work.
38# MV: Must accept (at least) one, maybe wildcard, source argument,
39# a file or directory destination, and support creation/
40# modification date preservation. Gnu mv -f works.
41# RM: Must accept an arbitrary number of space separated file
42# arguments, or one wildcard argument. Gnu rm works.
43# RMDIR: Must delete a directory and all its contents. Gnu rm -rf works.
44# ECHO: Must support command line redirection. Any Unix-like
45# shell will typically provide this, otherwise a custom version
46# is trivial to write.
47# AR: Gnu ar works.
48# MKDIR: Gnu mkdir works.
49# CHMOD: Gnu chmod works.
50# true: Does nothing and returns a normal successful return code.
51# pwd: Prints the current directory on stdout.
52# cd: Change directory.
53#
54# Optional:
55# BISON: Gnu bison works.
56# FLEX: Gnu flex works.
57# Other miscellaneous tools for obscure targets.
58
59# Suppress smart makes who think they know how to automake Yacc files
60.y.c:
61
62# Variables that exist for you to override.
63# See below for how to change them for certain systems.
64
65# Various ways of specifying flags for compilations:
66# CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
67# BOOT_CFLAGS is the value of CFLAGS to pass
68# to the stage2 and stage3 compilations
a1ab4c31
AC
69CFLAGS = -g
70BOOT_CFLAGS = -O $(CFLAGS)
00afcaa0 71# These exists to be overridden by the t-* files, respectively.
a1ab4c31
AC
72T_CFLAGS =
73
a1ab4c31
AC
74CC = cc
75BISON = bison
76BISONFLAGS =
77ECHO = echo
78LEX = flex
79LEXFLAGS =
80CHMOD = chmod
81LN = ln
82LN_S = ln -s
83CP = cp -p
84MV = mv -f
85RM = rm -f
86RMDIR = rm -rf
87MKDIR = mkdir -p
88AR = ar
89AR_FLAGS = rc
90LS = ls
91RANLIB = @RANLIB@
92RANLIB_FLAGS = @ranlib_flags@
a760c977 93AWK = @AWK@
a1ab4c31 94
7980bfb8
ILT
95COMPILER = $(CC)
96COMPILER_FLAGS = $(CFLAGS)
97
a1ab4c31
AC
98SHELL = @SHELL@
99PWD_COMMAND = $${PWDCMD-pwd}
100# How to copy preserving the date
101INSTALL_DATA_DATE = cp -p
102MAKEINFO = makeinfo
103TEXI2DVI = texi2dvi
104TEXI2PDF = texi2pdf
105GNATBIND_FLAGS = -static -x
106ADA_CFLAGS =
107ADAFLAGS = -W -Wall -gnatpg -gnata
a1ab4c31 108FORCE_DEBUG_ADAFLAGS = -g
0cfaf83f
EB
109NO_SIBLING_ADAFLAGS = -fno-optimize-sibling-calls
110NO_REORDER_ADAFLAGS = -fno-toplevel-reorder
111GNATLIBFLAGS = -W -Wall -gnatpg -nostdinc
a1ab4c31 112GNATLIBCFLAGS = -g -O2
e3aa9eba 113PICFLAG_FOR_TARGET = @PICFLAG_FOR_TARGET@
2f18d9af
EB
114# Pretend that _Unwind_GetIPInfo is available for the target by default. This
115# should be autodetected during the configuration of libada and passed down to
116# here, but we need something for --disable-libada and hope for the best.
0cfaf83f
EB
117GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET) \
118 -fexceptions -DIN_RTS -DHAVE_GETIPINFO
00afcaa0 119ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
a1ab4c31
AC
120THREAD_KIND = native
121THREADSLIB =
122GMEM_LIB =
123MISCLIB =
124SYMDEPS = $(LIBINTL_DEP)
125OUTPUT_OPTION = @OUTPUT_OPTION@
126
127objext = .o
128exeext =
129arext = .a
130soext = .so
131shext =
132hyphen = -
133
134# Define this as & to perform parallel make on a Sequent.
135# Note that this has some bugs, and it seems currently necessary
136# to compile all the gen* files first by hand to avoid erroneous results.
137P =
138
139# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
00afcaa0 140# It specifies -B./.
a1ab4c31 141# It also specifies -B$(tooldir)/ to find as and ld for a cross compiler.
00afcaa0 142GCC_CFLAGS = $(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS)
a1ab4c31
AC
143
144# Tools to use when building a cross-compiler.
145# These are used because `configure' appends `cross-make'
146# to the makefile when making a cross-compiler.
147
148# We don't use cross-make. Instead we use the tools from the build tree,
149# if they are available.
150# program_transform_name and objdir are set by configure.in.
151program_transform_name =
152objdir = .
153
154target_alias=@target_alias@
155target=@target@
156xmake_file = @xmake_file@
157tmake_file = @tmake_file@
158host_canonical=@host@
a760c977 159target_cpu_default=@target_cpu_default@
a1ab4c31
AC
160#version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < $(srcdir)/version.c`
161#mainversion=`sed -e 's/.*\"\([0-9]*\.[0-9]*\).*/\1/' < $(srcdir)/version.c`
162
163# Directory where sources are, from where we are.
a760c977 164VPATH = $(srcdir)/ada
a1ab4c31
AC
165
166fsrcdir := $(shell cd $(srcdir);${PWD_COMMAND})
167fsrcpfx := $(shell cd $(srcdir);${PWD_COMMAND})/
168fcurdir := $(shell ${PWD_COMMAND})
169fcurpfx := $(shell ${PWD_COMMAND})/
170
171# Top build directory, relative to here.
172top_builddir = ../..
173
174# Internationalization library.
175LIBINTL = @LIBINTL@
176LIBINTL_DEP = @LIBINTL_DEP@
177
178# Any system libraries needed just for GNAT.
179SYSLIBS = @GNAT_LIBEXC@
180
181# List of extra object files linked in with various programs.
677f3fa8
JM
182EXTRA_GNATTOOLS_OBJS = ../../libcommon-target.a ../../libcommon.a \
183 ../../../libcpp/libcpp.a
a1ab4c31 184
e1876cac
EB
185# List extra gnattools
186EXTRA_GNATTOOLS =
187
a1ab4c31
AC
188# List of target dependent sources, overridden below as necessary
189TARGET_ADA_SRCS =
190
191# Type of tools build we are doing; default is not compiling tools.
192TOOLSCASE =
193
a7dafa20 194# Multilib handling
d88a51b1 195MULTISUBDIR =
a7dafa20
LG
196RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
197
207b1744
TG
198# Link flags used to build gnat tools. By default we prefer to statically
199# link with libgcc to avoid a dependency on shared libgcc (which is tricky
200# to deal with as it may conflict with the libgcc provided by the system).
201GCC_LINK_FLAGS=-static-libgcc
202
a1ab4c31
AC
203# End of variables for you to override.
204
205all: all.indirect
206
207# This tells GNU Make version 3 not to put all variables in the environment.
208.NOEXPORT:
209
a1ab4c31
AC
210# target overrides
211ifneq ($(tmake_file),)
a760c977 212include $(tmake_file)
a1ab4c31
AC
213endif
214
215# host overrides
216ifneq ($(xmake_file),)
a760c977 217include $(xmake_file)
a1ab4c31
AC
218endif
219\f
220# Now figure out from those variables how to compile and link.
221
222all.indirect: Makefile ../gnat1$(exeext)
223
f2991b48
EB
224# IN_GCC is meant to distinguish between code compiled into GCC itself, i.e.
225# for the host, and the rest. But we also use it for the tools (link.c) and
226# even break the host/target wall by using it for the library (targext.c).
a1ab4c31
AC
227# autoconf inserts -DCROSS_DIRECTORY_STRUCTURE if we are building a cross
228# compiler which does not use the native libraries and headers.
229INTERNAL_CFLAGS = @CROSS@ -DIN_GCC
230
231# This is the variable actually used when we compile.
0cfaf83f 232ALL_CFLAGS = $(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS)
a1ab4c31
AC
233
234# Likewise.
00afcaa0 235ALL_CPPFLAGS = $(CPPFLAGS)
a1ab4c31 236
7980bfb8
ILT
237# Used with $(COMPILER).
238ALL_COMPILERFLAGS = $(ALL_CFLAGS)
239
a1ab4c31
AC
240# This is where we get libiberty.a from.
241LIBIBERTY = ../../libiberty/libiberty.a
242
243# How to link with both our special library facilities
244# and the system's installed libraries.
245LIBS = $(LIBINTL) $(LIBIBERTY) $(SYSLIBS)
246LIBDEPS = $(LIBINTL_DEP) $(LIBIBERTY)
247# Default is no TGT_LIB; one might be passed down or something
248TGT_LIB =
4bdaaf2f 249TOOLS_LIBS = $(EXTRA_GNATTOOLS_OBJS) targext.o link.o $(LIBGNAT) $(LIBINTL) ../../../libiberty/libiberty.a $(SYSLIBS) $(TGT_LIB)
a1ab4c31 250
e1876cac
EB
251# Convert the target variable into a space separated list of architecture,
252# manufacturer, and operating system and assign each of those to its own
253# variable.
254
255host:=$(subst -, ,$(host_canonical))
256targ:=$(subst -, ,$(target))
257arch:=$(word 1,$(targ))
258ifeq ($(words $(targ)),2)
259 manu:=
260 osys:=$(word 2,$(targ))
261else
262 manu:=$(word 2,$(targ))
263 osys:=$(word 3,$(targ))
264endif
265
a1ab4c31
AC
266# Specify the directories to be searched for header files.
267# Both . and srcdir are used, in that order,
268# so that tm.h and config.h will be found in the compilation
269# subdirectory rather than in the source directory.
a760c977
AS
270INCLUDES = -I- -I. -I.. -I$(srcdir)/ada -I$(srcdir) -I$(srcdir)/config \
271 -I$(srcdir)/../include
a1ab4c31 272
a760c977 273ADA_INCLUDES = -I- -I. -I$(srcdir)/ada
a1ab4c31 274
c5ecd6b7
AC
275INCLUDES_FOR_SUBDIR = -iquote . -iquote .. -iquote ../.. -iquote $(fsrcdir)/ada \
276 -I$(fsrcdir)/../include
277
278ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),)
279 # On Windows native the tconfig.h files used by C runtime files needs to have
280 # the gcc source dir in its include dir list
281 INCLUDES_FOR_SUBDIR = -iquote . -iquote .. -iquote ../.. -iquote $(fsrcdir)/ada \
282 -I$(fsrcdir)/../include -I$(fsrcdir)
283endif
284
a760c977 285ADA_INCLUDES_FOR_SUBDIR = -I. -I$(fsrcdir)/ada
a1ab4c31
AC
286
287# Avoid a lot of time thinking about remaking Makefile.in and *.def.
288.SUFFIXES: .in .def
289
290# Say how to compile Ada programs.
291.SUFFIXES: .ada .adb .ads .asm
292
293# Always use -I$(srcdir)/config when compiling.
294.asm.o:
295 $(CC) -c -x assembler $< $(OUTPUT_OPTION)
296
297.c.o:
7980bfb8
ILT
298 $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) \
299 $(INCLUDES) $< $(OUTPUT_OPTION)
a1ab4c31
AC
300
301.adb.o:
302 $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
303
304.ads.o:
305 $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
306
307# how to regenerate this file
a760c977 308Makefile: ../config.status $(srcdir)/ada/gcc-interface/Makefile.in $(srcdir)/ada/Makefile.in $(srcdir)/version.c
a1ab4c31
AC
309 cd ..; \
310 LANGUAGES="$(CONFIG_LANGUAGES)" \
311 CONFIG_HEADERS= \
312 CONFIG_FILES="ada/gcc-interface/Makefile ada/Makefile" $(SHELL) config.status
313
314# This tells GNU make version 3 not to export all the variables
315# defined in this file into the environment.
316.NOEXPORT:
317\f
318# Lists of files for various purposes.
319
320GNATLINK_OBJS = gnatlink.o \
321 a-except.o ali.o alloc.o butil.o casing.o csets.o debug.o fmap.o fname.o \
322 gnatvsn.o hostparm.o indepsw.o interfac.o i-c.o i-cstrin.o namet.o opt.o \
323 osint.o output.o rident.o s-exctab.o s-secsta.o s-stalib.o s-stoele.o \
324 sdefault.o snames.o stylesw.o switch.o system.o table.o targparm.o tree_io.o \
325 types.o validsw.o widechar.o
326
9beddc4c
AC
327GNATMAKE_OBJS = a-except.o ali.o ali-util.o aspects.o s-casuti.o alloc.o \
328 atree.o binderr.o butil.o casing.o csets.o debug.o elists.o einfo.o errout.o \
a1ab4c31
AC
329 erroutc.o errutil.o err_vars.o fmap.o fname.o fname-uf.o fname-sf.o \
330 gnatmake.o gnatvsn.o hostparm.o interfac.o i-c.o i-cstrin.o krunch.o lib.o \
331 make.o makeusg.o makeutl.o mlib.o mlib-fil.o mlib-prj.o mlib-tgt.o \
d88a51b1
AC
332 mlib-tgt-specific.o mlib-utl.o namet.o nlists.o opt.o osint.o osint-m.o \
333 output.o prj.o prj-attr.o prj-attr-pm.o prj-com.o prj-dect.o prj-env.o \
9beddc4c
AC
334 prj-conf.o prj-pp.o prj-err.o prj-ext.o prj-nmsc.o prj-pars.o prj-part.o \
335 prj-proc.o prj-strt.o prj-tree.o prj-util.o restrict.o rident.o s-exctab.o \
336 s-secsta.o s-stalib.o s-stoele.o scans.o scng.o sdefault.o sfn_scan.o \
337 s-purexc.o s-htable.o scil_ll.o sem_aux.o sinfo.o sinput.o sinput-c.o \
338 sinput-p.o snames.o stand.o stringt.o styleg.o stylesw.o system.o validsw.o \
339 switch.o switch-m.o table.o targparm.o tempdir.o tree_io.o types.o uintp.o \
340 uname.o urealp.o usage.o widechar.o \
a1ab4c31
AC
341 $(EXTRA_GNATMAKE_OBJS)
342
7193e639
LG
343# Make arch match the current multilib so that the RTS selection code
344# picks up the right files. For a given target this must be coherent
345# with MULTILIB_DIRNAMES defined in gcc/config/target/t-*.
346
347ifeq ($(strip $(filter-out %x86_64, $(arch))),)
348 ifeq ($(strip $(MULTISUBDIR)),/32)
349 arch:=i686
350 endif
351endif
352
353# ???: handle more multilib targets
354
a1ab4c31
AC
355# LIBGNAT_TARGET_PAIRS is a list of pairs of filenames.
356# The members of each pair must be separated by a '<' and no whitespace.
357# Each pair must be separated by some amount of whitespace from the following
358# pair.
359
360# Non-tasking case:
361
362LIBGNAT_TARGET_PAIRS = \
363a-intnam.ads<a-intnam-dummy.ads \
364s-inmaop.adb<s-inmaop-dummy.adb \
365s-intman.adb<s-intman-dummy.adb \
366s-osinte.ads<s-osinte-dummy.ads \
367s-osprim.adb<s-osprim-posix.adb \
368s-taprop.adb<s-taprop-dummy.adb \
369s-taspri.ads<s-taspri-dummy.ads
370
371# When using the GCC exception handling mechanism, we need to use an
372# alternate body for a-exexpr.adb (a-exexpr-gcc.adb)
373
374EH_MECHANISM=
375
376# Default shared object option. Note that we rely on the fact that the "soname"
377# option will always be present and last in this flag, so that we can have
378# $(SO_OPTS)libgnat-x.xx
379
380SO_OPTS = -Wl,-soname,
381
382# Default gnatlib-shared target.
383# By default, equivalent to gnatlib.
384# Set to gnatlib-shared-default, gnatlib-shared-dual, or a platform specific
385# target when supported.
386GNATLIB_SHARED = gnatlib
387
388# default value for gnatmake's target dependent file
389MLIB_TGT = mlib-tgt
390
6594c0f3 391# By default, build socket support units. On platforms that do not support
0a0a18c3 392# sockets, reset this variable to empty and add DUMMY_SOCKETS_TARGET_PAIRS
6594c0f3
AC
393# to LIBGNAT_TARGET_PAIRS.
394
cfb53555 395GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \
4a214958 396 g-soliop$(objext) g-sothco$(objext)
6594c0f3
AC
397
398DUMMY_SOCKETS_TARGET_PAIRS = \
399 g-socket.adb<g-socket-dummy.adb \
400 g-socket.ads<g-socket-dummy.ads \
401 g-socthi.adb<g-socthi-dummy.adb \
402 g-socthi.ads<g-socthi-dummy.ads \
403 g-sothco.adb<g-sothco-dummy.adb \
4a214958 404 g-sothco.ads<g-sothco-dummy.ads
6594c0f3 405
d51813db 406# On platforms where atomic increment/decrement operations are supported,
7415029d
AC
407# special version of Ada.Strings.Unbounded package can be used.
408
d51813db 409ATOMICS_TARGET_PAIRS = \
7415029d
AC
410 a-stunau.adb<a-stunau-shared.adb \
411 a-suteio.adb<a-suteio-shared.adb \
412 a-strunb.ads<a-strunb-shared.ads \
413 a-strunb.adb<a-strunb-shared.adb \
414 a-stwiun.adb<a-stwiun-shared.adb \
415 a-stwiun.ads<a-stwiun-shared.ads \
416 a-swunau.adb<a-swunau-shared.adb \
417 a-swuwti.adb<a-swuwti-shared.adb \
418 a-stzunb.adb<a-stzunb-shared.adb \
419 a-stzunb.ads<a-stzunb-shared.ads \
420 a-szunau.adb<a-szunau-shared.adb \
718f39dc
AC
421 a-szuzti.adb<a-szuzti-shared.adb
422
d51813db 423ATOMICS_BUILTINS_TARGET_PAIRS = \
718f39dc
AC
424 s-atocou.adb<s-atocou-builtin.adb
425
d51813db
AC
426# Special version of units for x86 and x86-64 platforms.
427
718f39dc
AC
428X86_TARGET_PAIRS = \
429 a-numaux.ads<a-numaux-x86.ads \
430 a-numaux.adb<a-numaux-x86.adb \
431 g-bytswa.adb<g-bytswa-x86.adb \
432 s-atocou.adb<s-atocou-x86.adb
433
434X86_64_TARGET_PAIRS = \
435 a-numaux.ads<a-numaux-x86.ads \
436 a-numaux.adb<a-numaux-x86.adb \
437 g-bytswa.adb<g-bytswa-x86.adb \
19172ae9 438 s-atocou.adb<s-atocou-builtin.adb
7415029d 439
a760c977 440LIB_VERSION = $(strip $(shell grep ' Library_Version :' $(fsrcpfx)ada/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/'))
a1ab4c31
AC
441
442# $(filter-out PATTERN...,TEXT) removes all PATTERN words from TEXT.
443# $(strip STRING) removes leading and trailing spaces from STRING.
444# If what's left is null then it's a match.
445
446ifeq ($(strip $(filter-out m68k% wrs vx%,$(targ))),)
447 LIBGNAT_TARGET_PAIRS = \
448 a-intnam.ads<a-intnam-vxworks.ads \
449 a-numaux.ads<a-numaux-vxworks.ads \
d8b962d8 450 s-inmaop.adb<s-inmaop-vxworks.adb \
e5c73177 451 s-interr.adb<s-interr-hwint.adb \
a1ab4c31
AC
452 s-intman.ads<s-intman-vxworks.ads \
453 s-intman.adb<s-intman-vxworks.adb \
6cc60200 454 s-osinte.adb<s-osinte-vxworks.adb \
a1ab4c31
AC
455 s-osinte.ads<s-osinte-vxworks.ads \
456 s-osprim.adb<s-osprim-vxworks.adb \
457 s-parame.ads<s-parame-vxworks.ads \
458 s-parame.adb<s-parame-vxworks.adb \
459 s-stchop.ads<s-stchop-limit.ads \
460 s-stchop.adb<s-stchop-vxworks.adb \
461 s-taprop.adb<s-taprop-vxworks.adb \
95cd3246 462 s-tasinf.ads<s-tasinf-vxworks.ads \
a1ab4c31
AC
463 s-taspri.ads<s-taspri-vxworks.ads \
464 s-tpopsp.adb<s-tpopsp-vxworks.adb \
465 s-vxwork.ads<s-vxwork-m68k.ads \
a1ab4c31
AC
466 g-socthi.ads<g-socthi-vxworks.ads \
467 g-socthi.adb<g-socthi-vxworks.adb \
468 g-stsifd.adb<g-stsifd-sockets.adb \
a1ab4c31
AC
469 system.ads<system-vxworks-m68k.ads
470
471 TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb
472
473 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
4bffd4e0 474 EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o
a1ab4c31
AC
475
476 EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
477 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
478
479 ifeq ($(strip $(filter-out yes,$(TRACE))),)
480 LIBGNAT_TARGET_PAIRS += \
481 s-traces.adb<s-traces-default.adb \
482 s-tratas.adb<s-tratas-default.adb \
483 s-trafor.adb<s-trafor-default.adb \
484 s-trafor.ads<s-trafor-default.ads \
485 s-tfsetr.adb<s-tfsetr-vxworks.adb
486 endif
487endif
488
c5ecd6b7 489ifeq ($(strip $(filter-out e500% powerpc% wrs vxworks,$(targ))),)
a1ab4c31
AC
490 LIBGNAT_TARGET_PAIRS = \
491 a-intnam.ads<a-intnam-vxworks.ads \
492 a-numaux.ads<a-numaux-vxworks.ads \
d8b962d8 493 s-inmaop.adb<s-inmaop-vxworks.adb \
a1ab4c31
AC
494 s-intman.ads<s-intman-vxworks.ads \
495 s-intman.adb<s-intman-vxworks.adb \
4bffd4e0 496 s-osinte.ads<s-osinte-vxworks.ads \
6cc60200 497 s-osinte.adb<s-osinte-vxworks.adb \
a1ab4c31
AC
498 s-osprim.adb<s-osprim-vxworks.adb \
499 s-parame.ads<s-parame-vxworks.ads \
500 s-parame.adb<s-parame-vxworks.adb \
501 s-stchop.ads<s-stchop-limit.ads \
502 s-stchop.adb<s-stchop-vxworks.adb \
503 s-taprop.adb<s-taprop-vxworks.adb \
95cd3246 504 s-tasinf.ads<s-tasinf-vxworks.ads \
a1ab4c31
AC
505 s-taspri.ads<s-taspri-vxworks.ads \
506 s-vxwork.ads<s-vxwork-ppc.ads \
a1ab4c31
AC
507 g-socthi.ads<g-socthi-vxworks.ads \
508 g-socthi.adb<g-socthi-vxworks.adb \
509 g-stsifd.adb<g-stsifd-sockets.adb \
718f39dc
AC
510 $(ATOMICS_TARGET_PAIRS) \
511 $(ATOMICS_BUILTINS_TARGET_PAIRS)
a1ab4c31 512
4bffd4e0
AC
513 TOOLS_TARGET_PAIRS=\
514 mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
515 indepsw.adb<indepsw-gnu.adb
a1ab4c31
AC
516
517 ifeq ($(strip $(filter-out yes,$(TRACE))),)
518 LIBGNAT_TARGET_PAIRS += \
519 s-traces.adb<s-traces-default.adb \
520 s-trafor.adb<s-trafor-default.adb \
521 s-trafor.ads<s-trafor-default.ads \
522 s-tratas.adb<s-tratas-default.adb \
523 s-tfsetr.adb<s-tfsetr-vxworks.adb
524 endif
525
526 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
527 LIBGNAT_TARGET_PAIRS += \
62298c61
TG
528 s-vxwext.ads<s-vxwext-rtp.ads \
529 s-vxwext.adb<s-vxwext-rtp.adb \
a1ab4c31
AC
530 s-tpopsp.adb<s-tpopsp-vxworks-rtp.adb \
531 system.ads<system-vxworks-ppc-rtp.ads
532
533 EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o
534 else
d88a51b1 535 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
a1ab4c31 536 LIBGNAT_TARGET_PAIRS += \
3467e8c7 537 s-mudido.adb<s-mudido-affinity.adb \
d88a51b1 538 s-vxwext.ads<s-vxwext-rtp.ads \
95cd3246 539 s-vxwext.adb<s-vxwext-rtp-smp.adb \
d88a51b1
AC
540 s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \
541 system.ads<system-vxworks-ppc-rtp.ads
89522556
AC
542
543 EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o
c5ecd6b7
AC
544 EXTRA_LIBGNAT_OBJS+=affinity.o
545 EXTRA_LIBGNAT_SRCS+=affinity.c
4bffd4e0 546 else
d88a51b1
AC
547 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
548 LIBGNAT_TARGET_PAIRS += \
549 s-interr.adb<s-interr-hwint.adb \
3467e8c7 550 s-mudido.adb<s-mudido-affinity.adb \
d88a51b1
AC
551 s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \
552 s-vxwext.ads<s-vxwext-kernel.ads \
553 s-vxwext.adb<s-vxwext-kernel-smp.adb \
554 system.ads<system-vxworks-ppc-kernel.ads
95cd3246 555
686d0984 556 EH_MECHANISM=-gcc
c5ecd6b7
AC
557 EXTRA_LIBGNAT_OBJS+=affinity.o
558 EXTRA_LIBGNAT_SRCS+=affinity.c
d88a51b1
AC
559 else
560 LIBGNAT_TARGET_PAIRS += \
561 s-interr.adb<s-interr-hwint.adb \
562 s-tpopsp.adb<s-tpopsp-vxworks.adb
563
564 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
686d0984 565 EH_MECHANISM=-gcc
d88a51b1
AC
566 LIBGNAT_TARGET_PAIRS += \
567 s-vxwext.ads<s-vxwext-kernel.ads \
568 s-vxwext.adb<s-vxwext-kernel.adb \
569 system.ads<system-vxworks-ppc-kernel.ads
570 else
571 LIBGNAT_TARGET_PAIRS += \
572 system.ads<system-vxworks-ppc.ads
573 endif
d88a51b1
AC
574 endif
575 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o
576 endif
a1ab4c31
AC
577 endif
578
95cd3246 579 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
a1ab4c31
AC
580
581 EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
582 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
583endif
584
ebd34478 585# vxworks 653
60435286 586ifeq ($(strip $(filter-out powerpc% e500v2 wrs vxworksae,$(targ))),)
95cd3246 587 # target pairs for vthreads runtime
a1ab4c31
AC
588 LIBGNAT_TARGET_PAIRS = \
589 a-elchha.adb<a-elchha-vxworks-ppc-full.adb \
590 a-intnam.ads<a-intnam-vxworks.ads \
591 a-numaux.ads<a-numaux-vxworks.ads \
592 g-io.adb<g-io-vxworks-ppc-cert.adb \
d8b962d8 593 s-inmaop.adb<s-inmaop-vxworks.adb \
e5c73177 594 s-interr.adb<s-interr-hwint.adb \
a1ab4c31
AC
595 s-intman.ads<s-intman-vxworks.ads \
596 s-intman.adb<s-intman-vxworks.adb \
6cc60200 597 s-osinte.adb<s-osinte-vxworks.adb \
a1ab4c31
AC
598 s-osinte.ads<s-osinte-vxworks.ads \
599 s-osprim.adb<s-osprim-vxworks.adb \
600 s-parame.ads<s-parame-ae653.ads \
601 s-parame.adb<s-parame-vxworks.adb \
602 s-taprop.adb<s-taprop-vxworks.adb \
95cd3246 603 s-tasinf.ads<s-tasinf-vxworks.ads \
a1ab4c31
AC
604 s-taspri.ads<s-taspri-vxworks.ads \
605 s-tpopsp.adb<s-tpopsp-vxworks.adb \
6cc60200
AC
606 s-vxwext.adb<s-vxwext-noints.adb \
607 s-vxwext.ads<s-vxwext-vthreads.ads \
a1ab4c31 608 s-vxwork.ads<s-vxwork-ppc.ads \
7415029d 609 system.ads<system-vxworks-ppc-vthread.ads \
718f39dc
AC
610 $(ATOMICS_TARGET_PAIRS) \
611 $(ATOMICS_BUILTINS_TARGET_PAIRS)
a1ab4c31 612
4bffd4e0
AC
613 TOOLS_TARGET_PAIRS=\
614 mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
615 indepsw.adb<indepsw-gnu.adb
a1ab4c31
AC
616
617 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o
4bffd4e0
AC
618 EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o
619
620 # Extra pairs for the vthreads runtime
621 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
622 LIBGNAT_TARGET_PAIRS += \
d88a51b1
AC
623 s-thread.adb<s-thread-ae653.adb \
624 $(DUMMY_SOCKETS_TARGET_PAIRS)
625
626 GNATRTL_SOCKETS_OBJS =
4bffd4e0 627 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o
d88a51b1
AC
628 else
629 LIBGNAT_TARGET_PAIRS += \
630 g-socthi.ads<g-socthi-vxworks.ads \
631 g-socthi.adb<g-socthi-vxworks.adb \
4a214958 632 g-stsifd.adb<g-stsifd-sockets.adb
4bffd4e0
AC
633 endif
634
635 ifeq ($(strip $(filter-out yes,$(TRACE))),)
636 LIBGNAT_TARGET_PAIRS += \
637 s-traces.adb<s-traces-default.adb \
638 s-trafor.adb<s-trafor-default.adb \
639 s-trafor.ads<s-trafor-default.ads \
640 s-tratas.adb<s-tratas-default.adb \
641 s-tfsetr.adb<s-tfsetr-vxworks.adb
642 endif
643endif
644
ebd34478 645# vxworks MILS
c5ecd6b7 646ifeq ($(strip $(filter-out e500% powerpc% wrs vxworksmils,$(targ))),)
ebd34478
AC
647 # target pairs for vthreads runtime
648 LIBGNAT_TARGET_PAIRS = \
19172ae9 649 a-elchha.adb<a-elchha-vx6-raven-cert.adb \
ebd34478
AC
650 a-intnam.ads<a-intnam-vxworks.ads \
651 a-numaux.ads<a-numaux-vxworks.ads \
652 g-io.adb<g-io-vxworks-ppc-cert.adb \
d8b962d8 653 s-inmaop.adb<s-inmaop-vxworks.adb \
ebd34478
AC
654 s-interr.adb<s-interr-hwint.adb \
655 s-intman.ads<s-intman-vxworks.ads \
656 s-intman.adb<s-intman-vxworks.adb \
657 s-osinte.adb<s-osinte-vxworks.adb \
658 s-osinte.ads<s-osinte-vxworks.ads \
659 s-osprim.adb<s-osprim-vxworks.adb \
660 s-parame.ads<s-parame-ae653.ads \
661 s-parame.adb<s-parame-vxworks.adb \
662 s-stchop.adb<s-stchop-vxworks.adb \
663 s-stchop.ads<s-stchop-limit.ads \
664 s-taprop.adb<s-taprop-vxworks.adb \
665 s-tasinf.ads<s-tasinf-vxworks.ads \
666 s-taspri.ads<s-taspri-vxworks.ads \
667 s-thread.adb<s-thread-ae653.adb \
668 s-tpopsp.adb<s-tpopsp-vxworks.adb \
669 s-vxwork.ads<s-vxwork-ppc.ads \
ebd34478 670 system.ads<system-vxworks-ppc.ads \
7415029d 671 $(ATOMICS_TARGET_PAIRS) \
718f39dc 672 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
ebd34478
AC
673 $(DUMMY_SOCKETS_TARGET_PAIRS)
674
675 TOOLS_TARGET_PAIRS=\
676 mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
677 indepsw.adb<indepsw-gnu.adb
678
679 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-thread.o s-vxwexc.o
680 EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o
681
682 EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
683 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
684 GNATRTL_SOCKETS_OBJS =
685
686 ifeq ($(strip $(filter-out yes,$(TRACE))),)
687 LIBGNAT_TARGET_PAIRS += \
688 s-traces.adb<s-traces-default.adb \
689 s-trafor.adb<s-trafor-default.adb \
690 s-trafor.ads<s-trafor-default.ads \
691 s-tratas.adb<s-tratas-default.adb \
692 s-tfsetr.adb<s-tfsetr-vxworks.adb
693 endif
694endif
695
696# vxworksae / vxworks 653 for x86 (vxsim) - ?? vxworksmils not implemented
697ifeq ($(strip $(filter-out %86 wrs vxworksae vxworksmils,$(targ))),)
4bffd4e0
AC
698 # target pairs for kernel + vthreads runtime
699 LIBGNAT_TARGET_PAIRS = \
700 a-elchha.adb<a-elchha-vxworks-ppc-full.adb \
701 a-intnam.ads<a-intnam-vxworks.ads \
4bffd4e0
AC
702 a-sytaco.ads<1asytaco.ads \
703 a-sytaco.adb<1asytaco.adb \
4bffd4e0 704 g-io.adb<g-io-vxworks-ppc-cert.adb \
d8b962d8 705 s-inmaop.adb<s-inmaop-vxworks.adb \
4bffd4e0
AC
706 s-interr.adb<s-interr-hwint.adb \
707 s-intman.ads<s-intman-vxworks.ads \
708 s-intman.adb<s-intman-vxworks.adb \
6cc60200 709 s-osinte.adb<s-osinte-vxworks.adb \
4bffd4e0
AC
710 s-osinte.ads<s-osinte-vxworks.ads \
711 s-osprim.adb<s-osprim-vxworks.adb \
712 s-parame.ads<s-parame-ae653.ads \
713 s-taprop.adb<s-taprop-vxworks.adb \
95cd3246 714 s-tasinf.ads<s-tasinf-vxworks.ads \
4bffd4e0 715 s-taspri.ads<s-taspri-vxworks.ads \
4bffd4e0 716 s-tpopsp.adb<s-tpopsp-vxworks.adb \
6cc60200
AC
717 s-vxwext.adb<s-vxwext-noints.adb \
718 s-vxwext.ads<s-vxwext-vthreads.ads \
4bffd4e0 719 s-vxwork.ads<s-vxwork-x86.ads \
19172ae9 720 $(ATOMICS_TARGET_PAIRS) \
d51813db
AC
721 $(X86_TARGET_PAIRS) \
722 system.ads<system-vxworks-x86.ads
4bffd4e0
AC
723
724 TOOLS_TARGET_PAIRS=\
725 mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
726 indepsw.adb<indepsw-gnu.adb
727
728 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o
729 EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o
a1ab4c31
AC
730
731 # Extra pairs for the vthreads runtime
732 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
733 LIBGNAT_TARGET_PAIRS += \
d88a51b1
AC
734 s-thread.adb<s-thread-ae653.adb \
735 $(DUMMY_SOCKETS_TARGET_PAIRS)
736
737 GNATRTL_SOCKETS_OBJS =
a1ab4c31 738 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o
d88a51b1
AC
739 else
740 LIBGNAT_TARGET_PAIRS += \
741 g-socthi.ads<g-socthi-vxworks.ads \
742 g-socthi.adb<g-socthi-vxworks.adb \
4a214958 743 g-stsifd.adb<g-stsifd-sockets.adb
a1ab4c31
AC
744 endif
745
746 ifeq ($(strip $(filter-out yes,$(TRACE))),)
747 LIBGNAT_TARGET_PAIRS += \
748 s-traces.adb<s-traces-default.adb \
749 s-trafor.adb<s-trafor-default.adb \
750 s-trafor.ads<s-trafor-default.ads \
751 s-tratas.adb<s-tratas-default.adb \
752 s-tfsetr.adb<s-tfsetr-vxworks.adb
753 endif
754endif
755
756ifeq ($(strip $(filter-out sparc% wrs vx%,$(targ))),)
757 LIBGNAT_TARGET_PAIRS = \
758 a-intnam.ads<a-intnam-vxworks.ads \
759 a-numaux.ads<a-numaux-vxworks.ads \
d8b962d8 760 s-inmaop.adb<s-inmaop-vxworks.adb \
e5c73177 761 s-interr.adb<s-interr-hwint.adb \
a1ab4c31
AC
762 s-intman.ads<s-intman-vxworks.ads \
763 s-intman.adb<s-intman-vxworks.adb \
6cc60200 764 s-osinte.adb<s-osinte-vxworks.adb \
a1ab4c31
AC
765 s-osinte.ads<s-osinte-vxworks.ads \
766 s-osprim.adb<s-osprim-vxworks.adb \
767 s-parame.ads<s-parame-vxworks.ads \
768 s-parame.adb<s-parame-vxworks.adb \
769 s-stchop.ads<s-stchop-limit.ads \
770 s-stchop.adb<s-stchop-vxworks.adb \
771 s-taprop.adb<s-taprop-vxworks.adb \
95cd3246 772 s-tasinf.ads<s-tasinf-vxworks.ads \
a1ab4c31
AC
773 s-taspri.ads<s-taspri-vxworks.ads \
774 s-tpopsp.adb<s-tpopsp-vxworks.adb \
775 s-vxwork.ads<s-vxwork-sparcv9.ads \
a1ab4c31
AC
776 g-socthi.ads<g-socthi-vxworks.ads \
777 g-socthi.adb<g-socthi-vxworks.adb \
778 g-stsifd.adb<g-stsifd-sockets.adb \
a1ab4c31
AC
779 system.ads<system-vxworks-sparcv9.ads \
780
4bffd4e0
AC
781 TOOLS_TARGET_PAIRS=\
782 mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
783 indepsw.adb<indepsw-gnu.adb
a1ab4c31
AC
784
785 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
4bffd4e0 786 EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o
a1ab4c31
AC
787
788 EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
789 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
790endif
791
792ifeq ($(strip $(filter-out %86 wrs vxworks,$(targ))),)
793 LIBGNAT_TARGET_PAIRS = \
794 a-intnam.ads<a-intnam-vxworks.ads \
795 i-vxwork.ads<i-vxwork-x86.ads \
6cc60200 796 s-osinte.adb<s-osinte-vxworks.adb \
4bffd4e0 797 s-osinte.ads<s-osinte-vxworks.ads \
d8b962d8 798 s-inmaop.adb<s-inmaop-vxworks.adb \
a1ab4c31
AC
799 s-intman.ads<s-intman-vxworks.ads \
800 s-intman.adb<s-intman-vxworks.adb \
a1ab4c31
AC
801 s-osprim.adb<s-osprim-vxworks.adb \
802 s-parame.ads<s-parame-vxworks.ads \
803 s-parame.adb<s-parame-vxworks.adb \
804 s-stchop.ads<s-stchop-limit.ads \
805 s-stchop.adb<s-stchop-vxworks.adb \
806 s-taprop.adb<s-taprop-vxworks.adb \
95cd3246 807 s-tasinf.ads<s-tasinf-vxworks.ads \
a1ab4c31
AC
808 s-taspri.ads<s-taspri-vxworks.ads \
809 s-vxwork.ads<s-vxwork-x86.ads \
a1ab4c31
AC
810 g-socthi.ads<g-socthi-vxworks.ads \
811 g-socthi.adb<g-socthi-vxworks.adb \
812 g-stsifd.adb<g-stsifd-sockets.adb \
19172ae9 813 $(ATOMICS_TARGET_PAIRS) \
d51813db 814 $(X86_TARGET_PAIRS)
a1ab4c31 815
4bffd4e0
AC
816 TOOLS_TARGET_PAIRS=\
817 mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
818 indepsw.adb<indepsw-gnu.adb
a1ab4c31
AC
819
820 ifeq ($(strip $(filter-out yes,$(TRACE))),)
821 LIBGNAT_TARGET_PAIRS += \
822 s-traces.adb<s-traces-default.adb \
823 s-trafor.adb<s-trafor-default.adb \
824 s-trafor.ads<s-trafor-default.ads \
825 s-tratas.adb<s-tratas-default.adb \
826 s-tfsetr.adb<s-tfsetr-vxworks.adb
827 endif
828
829 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
830 LIBGNAT_TARGET_PAIRS += \
62298c61
TG
831 s-vxwext.ads<s-vxwext-rtp.ads \
832 s-vxwext.adb<s-vxwext-rtp.adb \
a1ab4c31
AC
833 s-tpopsp.adb<s-tpopsp-vxworks-rtp.adb \
834 system.ads<system-vxworks-x86-rtp.ads
835
836 EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o
837 else
d88a51b1 838 ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),)
a1ab4c31 839 LIBGNAT_TARGET_PAIRS += \
3467e8c7 840 s-mudido.adb<s-mudido-affinity.adb \
d88a51b1 841 s-vxwext.ads<s-vxwext-rtp.ads \
95cd3246 842 s-vxwext.adb<s-vxwext-rtp-smp.adb \
d88a51b1
AC
843 s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \
844 system.ads<system-vxworks-x86-rtp.ads
89522556
AC
845
846 EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o
c5ecd6b7
AC
847 EXTRA_LIBGNAT_SRCS+=affinity.o
848 EXTRA_LIBGNAT_SRCS+=affinity.c
4bffd4e0 849 else
d88a51b1
AC
850 ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),)
851 LIBGNAT_TARGET_PAIRS += \
852 s-interr.adb<s-interr-hwint.adb \
3467e8c7 853 s-mudido.adb<s-mudido-affinity.adb \
d88a51b1
AC
854 s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \
855 s-vxwext.ads<s-vxwext-kernel.ads \
856 s-vxwext.adb<s-vxwext-kernel-smp.adb \
857 system.ads<system-vxworks-x86-kernel.ads
c5ecd6b7
AC
858 EXTRA_LIBGNAT_OBJS+=affinity.o
859 EXTRA_LIBGNAT_SRCS+=affinity.c
d88a51b1
AC
860 else
861 LIBGNAT_TARGET_PAIRS += \
862 s-interr.adb<s-interr-hwint.adb \
863 s-tpopsp.adb<s-tpopsp-vxworks.adb
864
865 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
866 LIBGNAT_TARGET_PAIRS += \
867 s-vxwext.ads<s-vxwext-kernel.ads \
868 s-vxwext.adb<s-vxwext-kernel.adb \
869 system.ads<system-vxworks-x86-kernel.ads
870 else
871 LIBGNAT_TARGET_PAIRS += \
872 system.ads<system-vxworks-x86.ads
873 endif
874 endif
a1ab4c31 875
d88a51b1
AC
876 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o
877 endif
a1ab4c31 878 endif
95cd3246 879 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
a1ab4c31
AC
880
881 EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
882 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
883endif
884
885ifeq ($(strip $(filter-out arm% coff wrs vx%,$(targ))),)
886 LIBGNAT_TARGET_PAIRS = \
887 a-intnam.ads<a-intnam-vxworks.ads \
888 a-numaux.ads<a-numaux-vxworks.ads \
d8b962d8 889 s-inmaop.adb<s-inmaop-vxworks.adb \
e5c73177 890 s-interr.adb<s-interr-hwint.adb \
a1ab4c31
AC
891 s-intman.ads<s-intman-vxworks.ads \
892 s-intman.adb<s-intman-vxworks.adb \
6cc60200 893 s-osinte.adb<s-osinte-vxworks.adb \
a1ab4c31
AC
894 s-osinte.ads<s-osinte-vxworks.ads \
895 s-osprim.adb<s-osprim-vxworks.adb \
896 s-parame.ads<s-parame-vxworks.ads \
897 s-parame.adb<s-parame-vxworks.adb \
898 s-stchop.ads<s-stchop-limit.ads \
899 s-stchop.adb<s-stchop-vxworks.adb \
900 s-taprop.adb<s-taprop-vxworks.adb \
95cd3246 901 s-tasinf.ads<s-tasinf-vxworks.ads \
a1ab4c31
AC
902 s-taspri.ads<s-taspri-vxworks.ads \
903 s-tpopsp.adb<s-tpopsp-vxworks.adb \
904 s-vxwork.ads<s-vxwork-arm.ads \
a1ab4c31
AC
905 g-socthi.ads<g-socthi-vxworks.ads \
906 g-socthi.adb<g-socthi-vxworks.adb \
907 g-stsifd.adb<g-stsifd-sockets.adb \
a1ab4c31
AC
908 system.ads<system-vxworks-arm.ads
909
4bffd4e0
AC
910 TOOLS_TARGET_PAIRS=\
911 mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
912 indepsw.adb<indepsw-gnu.adb
a1ab4c31
AC
913
914 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
4bffd4e0 915 EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o
a1ab4c31
AC
916
917 EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
918 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
919endif
920
921ifeq ($(strip $(filter-out mips% wrs vx%,$(targ))),)
922 LIBGNAT_TARGET_PAIRS = \
923 a-intnam.ads<a-intnam-vxworks.ads \
924 a-numaux.ads<a-numaux-vxworks.ads \
d8b962d8 925 s-inmaop.adb<s-inmaop-vxworks.adb \
e5c73177 926 s-interr.adb<s-interr-hwint.adb \
a1ab4c31
AC
927 s-intman.ads<s-intman-vxworks.ads \
928 s-intman.adb<s-intman-vxworks.adb \
6cc60200 929 s-osinte.adb<s-osinte-vxworks.adb \
a1ab4c31
AC
930 s-osinte.ads<s-osinte-vxworks.ads \
931 s-osprim.adb<s-osprim-vxworks.adb \
932 s-parame.ads<s-parame-vxworks.ads \
933 s-parame.adb<s-parame-vxworks.adb \
934 s-stchop.ads<s-stchop-limit.ads \
935 s-stchop.adb<s-stchop-vxworks.adb \
936 s-taprop.adb<s-taprop-vxworks.adb \
95cd3246 937 s-tasinf.ads<s-tasinf-vxworks.ads \
a1ab4c31
AC
938 s-taspri.ads<s-taspri-vxworks.ads \
939 s-tpopsp.adb<s-tpopsp-vxworks.adb \
940 s-vxwork.ads<s-vxwork-mips.ads \
a1ab4c31
AC
941 g-socthi.ads<g-socthi-vxworks.ads \
942 g-socthi.adb<g-socthi-vxworks.adb \
943 g-stsifd.adb<g-stsifd-sockets.adb \
a1ab4c31
AC
944 system.ads<system-vxworks-mips.ads
945
4bffd4e0
AC
946 TOOLS_TARGET_PAIRS=\
947 mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
948 indepsw.adb<indepsw-gnu.adb
a1ab4c31
AC
949
950 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
4bffd4e0 951 EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o
a1ab4c31
AC
952
953 EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
954 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
955endif
956
957ifeq ($(strip $(filter-out sparc% sun solaris%,$(targ))),)
6818f0fc 958 LIBGNAT_TARGET_PAIRS_COMMON = \
a1ab4c31
AC
959 a-intnam.ads<a-intnam-solaris.ads \
960 s-inmaop.adb<s-inmaop-posix.adb \
961 s-intman.adb<s-intman-solaris.adb \
3467e8c7 962 s-mudido.adb<s-mudido-affinity.adb \
a1ab4c31
AC
963 s-osinte.adb<s-osinte-solaris.adb \
964 s-osinte.ads<s-osinte-solaris.ads \
965 s-osprim.adb<s-osprim-solaris.adb \
966 s-taprop.adb<s-taprop-solaris.adb \
967 s-tasinf.adb<s-tasinf-solaris.adb \
968 s-tasinf.ads<s-tasinf-solaris.ads \
969 s-taspri.ads<s-taspri-solaris.ads \
970 s-tpopsp.adb<s-tpopsp-solaris.adb \
6818f0fc
EB
971 g-soliop.ads<g-soliop-solaris.ads
972
973 LIBGNAT_TARGET_PAIRS_32 = \
a1ab4c31
AC
974 system.ads<system-solaris-sparc.ads
975
976 LIBGNAT_TARGET_PAIRS_64 = \
7415029d 977 system.ads<system-solaris-sparcv9.ads \
718f39dc
AC
978 $(ATOMICS_TARGET_PAIRS) \
979 $(ATOMICS_BUILTINS_TARGET_PAIRS)
a1ab4c31
AC
980
981 ifeq ($(strip $(filter-out sparc sun solaris%,$(targ))),)
8f5730b9 982 ifeq ($(strip $(MULTISUBDIR)),/sparcv9)
6818f0fc
EB
983 LIBGNAT_TARGET_PAIRS = \
984 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
8f5730b9 985 else
6818f0fc
EB
986 LIBGNAT_TARGET_PAIRS = \
987 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
8f5730b9 988 endif
a1ab4c31 989 else
f37f5bb9 990 ifeq ($(strip $(MULTISUBDIR)),/sparcv8plus)
6818f0fc
EB
991 LIBGNAT_TARGET_PAIRS = \
992 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
8f5730b9 993 else
6818f0fc
EB
994 LIBGNAT_TARGET_PAIRS = \
995 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
8f5730b9 996 endif
a1ab4c31
AC
997 endif
998
999 TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb
1000
1001 EH_MECHANISM=-gcc
1002 THREADSLIB = -lposix4 -lthread
1003 MISCLIB = -lposix4 -lnsl -lsocket
1004 SO_OPTS = -Wl,-h,
1005 GNATLIB_SHARED = gnatlib-shared-dual
1006 GMEM_LIB = gmemlib
a1ab4c31
AC
1007 LIBRARY_VERSION := $(LIB_VERSION)
1008
1009 ifeq ($(strip $(filter-out pthread PTHREAD,$(THREAD_KIND))),)
1010 LIBGNAT_TARGET_PAIRS = \
1011 a-intnam.ads<a-intnam-solaris.ads \
1012 s-inmaop.adb<s-inmaop-posix.adb \
1013 s-intman.adb<s-intman-posix.adb \
1014 s-osinte.adb<s-osinte-posix.adb \
1015 s-osinte.ads<s-osinte-solaris-posix.ads \
1016 s-osprim.adb<s-osprim-solaris.adb \
1017 s-taprop.adb<s-taprop-posix.adb \
1018 s-taspri.ads<s-taspri-posix.ads \
1019 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
a1ab4c31
AC
1020 g-soliop.ads<g-soliop-solaris.ads \
1021 system.ads<system-solaris-sparc.ads
1022
1023 THREADSLIB = -lposix4 -lpthread
1024 endif
1025
1026 ifeq ($(strip $(filter-out m64,$(THREAD_KIND))),)
1027 LIBGNAT_TARGET_PAIRS = $(LIBGNAT_TARGET_PAIRS_64)
1028 endif
1029endif
1030
fbdd5d87
RO
1031ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(arch) $(osys))),)
1032 LIBGNAT_TARGET_PAIRS_COMMON = \
a1ab4c31
AC
1033 a-intnam.ads<a-intnam-solaris.ads \
1034 s-inmaop.adb<s-inmaop-posix.adb \
1035 s-intman.adb<s-intman-solaris.adb \
3467e8c7 1036 s-mudido.adb<s-mudido-affinity.adb \
a1ab4c31
AC
1037 s-osinte.adb<s-osinte-solaris.adb \
1038 s-osinte.ads<s-osinte-solaris.ads \
1039 s-osprim.adb<s-osprim-solaris.adb \
1040 s-taprop.adb<s-taprop-solaris.adb \
1041 s-tasinf.adb<s-tasinf-solaris.adb \
1042 s-tasinf.ads<s-tasinf-solaris.ads \
1043 s-taspri.ads<s-taspri-solaris.ads \
1044 s-tpopsp.adb<s-tpopsp-solaris.adb \
19172ae9
AC
1045 g-soliop.ads<g-soliop-solaris.ads \
1046 $(ATOMICS_TARGET_PAIRS)
f5026442 1047
d51813db
AC
1048 LIBGNAT_TARGET_PAIRS_32 = \
1049 $(X86_TARGET_PAIRS) \
1050 system.ads<system-solaris-x86.ads
1051
1052 LIBGNAT_TARGET_PAIRS_64 = \
1053 $(X86_64_TARGET_PAIRS) \
1054 system.ads<system-solaris-x86_64.ads
1055
1056 ifeq ($(strip $(filter-out %86 solaris2%,$(arch) $(osys))),)
1057 ifeq ($(strip $(MULTISUBDIR)),/amd64)
1058 LIBGNAT_TARGET_PAIRS = \
1059 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
1060 else
1061 LIBGNAT_TARGET_PAIRS = \
1062 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
1063 endif
f5026442 1064 else
d51813db
AC
1065 ifeq ($(strip $(MULTISUBDIR)),/32)
1066 LIBGNAT_TARGET_PAIRS = \
1067 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
1068 else
1069 LIBGNAT_TARGET_PAIRS = \
1070 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
1071 endif
f5026442 1072 endif
a1ab4c31
AC
1073
1074 TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb
1075
1076 EH_MECHANISM=-gcc
1077 THREADSLIB = -lposix4 -lthread
1078 MISCLIB = -lposix4 -lnsl -lsocket
1079 SO_OPTS = -Wl,-h,
1080 GNATLIB_SHARED = gnatlib-shared-dual
1081 GMEM_LIB = gmemlib
a1ab4c31
AC
1082 LIBRARY_VERSION := $(LIB_VERSION)
1083endif
1084
1085ifeq ($(strip $(filter-out %86 linux%,$(arch) $(osys))),)
1086 LIBGNAT_TARGET_PAIRS = \
1087 a-intnam.ads<a-intnam-linux.ads \
718f39dc
AC
1088 a-synbar.adb<a-synbar-posix.adb \
1089 a-synbar.ads<a-synbar-posix.ads \
a1ab4c31
AC
1090 s-inmaop.adb<s-inmaop-posix.adb \
1091 s-intman.adb<s-intman-posix.adb \
686d0984 1092 s-tpopsp.adb<s-tpopsp-tls.adb \
19172ae9 1093 g-sercom.adb<g-sercom-linux.adb \
ffb35bbf
ES
1094 a-exetim.adb<a-exetim-posix.adb \
1095 a-exetim.ads<a-exetim-default.ads \
1096 s-linux.ads<s-linux.ads \
1097 s-osinte.adb<s-osinte-posix.adb \
1098 system.ads<system-linux-x86.ads \
19172ae9 1099 $(ATOMICS_TARGET_PAIRS) \
d51813db 1100 $(X86_TARGET_PAIRS)
a1ab4c31 1101
ffb35bbf 1102 ifeq ($(strip $(filter-out xenomai,$(THREAD_KIND))),)
a1ab4c31 1103 LIBGNAT_TARGET_PAIRS += \
ffb35bbf
ES
1104 s-osinte.ads<s-osinte-linux-xenomai.ads \
1105 s-osprim.adb<s-osprim-linux-xenomai.adb \
1106 s-taprop.adb<s-taprop-linux-xenomai.adb \
1107 s-taspri.ads<s-taspri-linux-xenomai.ads
a1ab4c31
AC
1108 else
1109 LIBGNAT_TARGET_PAIRS += \
ffb35bbf
ES
1110 s-mudido.adb<s-mudido-affinity.adb \
1111 s-osinte.ads<s-osinte-linux.ads \
1112 s-osprim.adb<s-osprim-posix.adb \
1113 s-taprop.adb<s-taprop-linux.adb \
1114 s-tasinf.ads<s-tasinf-linux.ads \
1115 s-tasinf.adb<s-tasinf-linux.adb \
1116 s-taspri.ads<s-taspri-posix.ads
a1ab4c31
AC
1117 endif
1118
ffb35bbf
ES
1119 EH_MECHANISM=-gcc
1120 THREADSLIB = -lpthread -lrt
1121 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1122 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
1123
a1ab4c31
AC
1124 TOOLS_TARGET_PAIRS = \
1125 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
1126 indepsw.adb<indepsw-gnu.adb
1127
1128 GNATLIB_SHARED = gnatlib-shared-dual
1129 GMEM_LIB = gmemlib
a1ab4c31
AC
1130 LIBRARY_VERSION := $(LIB_VERSION)
1131endif
1132
1133ifeq ($(strip $(filter-out %86 kfreebsd%,$(arch) $(osys))),)
1134 LIBGNAT_TARGET_PAIRS = \
1135 a-intnam.ads<a-intnam-freebsd.ads \
a1ab4c31
AC
1136 s-inmaop.adb<s-inmaop-posix.adb \
1137 s-intman.adb<s-intman-posix.adb \
a1ab4c31
AC
1138 s-osinte.adb<s-osinte-posix.adb \
1139 s-osinte.ads<s-osinte-kfreebsd-gnu.ads \
1140 s-osprim.adb<s-osprim-posix.adb \
1141 s-taprop.adb<s-taprop-linux.adb \
1142 s-tasinf.ads<s-tasinf-linux.ads \
1143 s-tasinf.adb<s-tasinf-linux.adb \
1144 s-taspri.ads<s-taspri-posix.ads \
1145 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
19172ae9 1146 $(ATOMICS_TARGET_PAIRS) \
d51813db
AC
1147 $(X86_TARGET_PAIRS) \
1148 system.ads<system-freebsd-x86.ads
a1ab4c31
AC
1149
1150 TOOLS_TARGET_PAIRS = \
1151 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
1152 indepsw.adb<indepsw-gnu.adb
1153
1154 EH_MECHANISM=-gcc
1155 THREADSLIB = -lpthread
1156 GNATLIB_SHARED = gnatlib-shared-dual
1157 GMEM_LIB = gmemlib
a1ab4c31
AC
1158 LIBRARY_VERSION := $(LIB_VERSION)
1159endif
1160
92532234
AJ
1161ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(arch) $(osys))),)
1162 LIBGNAT_TARGET_PAIRS = \
1163 a-intnam.ads<a-intnam-freebsd.ads \
1164 a-numaux.adb<a-numaux-x86.adb \
1165 a-numaux.ads<a-numaux-x86.ads \
1166 s-inmaop.adb<s-inmaop-posix.adb \
1167 s-intman.adb<s-intman-posix.adb \
1168 s-osinte.adb<s-osinte-posix.adb \
1169 s-osinte.ads<s-osinte-kfreebsd-gnu.ads \
1170 s-osprim.adb<s-osprim-posix.adb \
1171 s-taprop.adb<s-taprop-linux.adb \
1172 s-tasinf.ads<s-tasinf-linux.ads \
1173 s-tasinf.adb<s-tasinf-linux.adb \
1174 s-taspri.ads<s-taspri-posix.ads \
1175 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
1176 system.ads<system-freebsd-x86_64.ads
1177
1178 TOOLS_TARGET_PAIRS = \
1179 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
1180 indepsw.adb<indepsw-gnu.adb
1181
1182 EH_MECHANISM=-gcc
1183 THREADSLIB = -lpthread
1184 GNATLIB_SHARED = gnatlib-shared-dual
1185 GMEM_LIB = gmemlib
92532234
AJ
1186 LIBRARY_VERSION := $(LIB_VERSION)
1187endif
1188
a1ab4c31
AC
1189ifeq ($(strip $(filter-out %86 freebsd%,$(arch) $(osys))),)
1190 LIBGNAT_TARGET_PAIRS = \
1191 a-intnam.ads<a-intnam-freebsd.ads \
a1ab4c31
AC
1192 s-inmaop.adb<s-inmaop-posix.adb \
1193 s-intman.adb<s-intman-posix.adb \
1194 s-osinte.adb<s-osinte-freebsd.adb \
1195 s-osinte.ads<s-osinte-freebsd.ads \
1196 s-osprim.adb<s-osprim-posix.adb \
1197 s-taprop.adb<s-taprop-posix.adb \
1198 s-taspri.ads<s-taspri-posix.ads \
1199 s-tpopsp.adb<s-tpopsp-posix.adb \
19172ae9 1200 $(ATOMICS_TARGET_PAIRS) \
d51813db
AC
1201 $(X86_TARGET_PAIRS) \
1202 system.ads<system-freebsd-x86.ads
1203
1204 TOOLS_TARGET_PAIRS = \
1205 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb
1206 GNATLIB_SHARED = gnatlib-shared-dual
1207
1208 EH_MECHANISM=-gcc
1209 THREADSLIB= -lpthread
1210 GMEM_LIB = gmemlib
1211 LIBRARY_VERSION := $(LIB_VERSION)
1212endif
1213
1214ifeq ($(strip $(filter-out %86_64 freebsd%,$(arch) $(osys))),)
1215 LIBGNAT_TARGET_PAIRS = \
1216 a-intnam.ads<a-intnam-freebsd.ads \
1217 s-inmaop.adb<s-inmaop-posix.adb \
1218 s-intman.adb<s-intman-posix.adb \
1219 s-osinte.adb<s-osinte-freebsd.adb \
1220 s-osinte.ads<s-osinte-freebsd.ads \
1221 s-osprim.adb<s-osprim-posix.adb \
1222 s-taprop.adb<s-taprop-posix.adb \
1223 s-taspri.ads<s-taspri-posix.ads \
1224 s-tpopsp.adb<s-tpopsp-posix.adb \
1225 g-trasym.adb<g-trasym-dwarf.adb \
1226 $(ATOMICS_TARGET_PAIRS) \
1227 $(X86_64_TARGET_PAIRS) \
1228 system.ads<system-freebsd-x86_64.ads
a1ab4c31
AC
1229
1230 TOOLS_TARGET_PAIRS = \
1231 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb
1232 GNATLIB_SHARED = gnatlib-shared-dual
1233
1234 EH_MECHANISM=-gcc
1235 THREADSLIB= -lpthread
1236 GMEM_LIB = gmemlib
a1ab4c31
AC
1237 LIBRARY_VERSION := $(LIB_VERSION)
1238endif
1239
1240ifeq ($(strip $(filter-out s390% linux%,$(arch) $(osys))),)
358ef7fb
AK
1241 LIBGNAT_TARGET_PAIRS_COMMON = \
1242 a-intnam.ads<a-intnam-linux.ads \
1243 s-inmaop.adb<s-inmaop-posix.adb \
1244 s-intman.adb<s-intman-posix.adb \
1245 s-linux.ads<s-linux.ads \
1246 s-osinte.adb<s-osinte-posix.adb \
1247 s-osinte.ads<s-osinte-linux.ads \
1248 s-osprim.adb<s-osprim-posix.adb \
1249 s-taprop.adb<s-taprop-linux.adb \
1250 s-tasinf.ads<s-tasinf-linux.ads \
1251 s-tasinf.adb<s-tasinf-linux.adb \
1252 s-taspri.ads<s-taspri-posix-noaltstack.ads \
885c4871 1253 s-tpopsp.adb<s-tpopsp-posix-foreign.adb
358ef7fb
AK
1254
1255 LIBGNAT_TARGET_PAIRS_32 = \
1256 system.ads<system-linux-s390.ads
1257
1258 LIBGNAT_TARGET_PAIRS_64 = \
1259 system.ads<system-linux-s390x.ads
1260
a1ab4c31 1261 ifeq ($(strip $(filter-out s390x,$(arch))),)
358ef7fb
AK
1262 ifeq ($(strip $(MULTISUBDIR)),/32)
1263 LIBGNAT_TARGET_PAIRS = \
1264 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
1265 else
1266 LIBGNAT_TARGET_PAIRS = \
1267 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
1268 endif
a1ab4c31
AC
1269 else
1270 LIBGNAT_TARGET_PAIRS = \
358ef7fb 1271 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
a1ab4c31
AC
1272 endif
1273
1274 TOOLS_TARGET_PAIRS = \
4bffd4e0
AC
1275 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
1276 indepsw.adb<indepsw-gnu.adb
a1ab4c31
AC
1277
1278 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1279 EH_MECHANISM=-gcc
1280 THREADSLIB = -lpthread
1281 GNATLIB_SHARED = gnatlib-shared-dual
a1ab4c31
AC
1282 LIBRARY_VERSION := $(LIB_VERSION)
1283endif
1284
9aaa1ee8
RO
1285ifeq ($(strip $(filter-out mips sgi irix6%,$(targ))),)
1286 LIBGNAT_TARGET_PAIRS = \
1287 a-intnam.ads<a-intnam-irix.ads \
718f39dc
AC
1288 a-synbar.adb<a-synbar-posix.adb \
1289 a-synbar.ads<a-synbar-posix.ads \
9aaa1ee8
RO
1290 s-inmaop.adb<s-inmaop-posix.adb \
1291 s-intman.adb<s-intman-irix.adb \
1292 s-mastop.adb<s-mastop-irix.adb \
1293 s-osinte.adb<s-osinte-irix.adb \
1294 s-osinte.ads<s-osinte-irix.ads \
1295 s-osprim.adb<s-osprim-posix.adb \
1296 s-proinf.adb<s-proinf-irix-athread.adb \
1297 s-proinf.ads<s-proinf-irix-athread.ads \
1298 s-taprop.adb<s-taprop-irix.adb \
1299 s-tasinf.ads<s-tasinf-irix.ads \
1300 s-taspri.ads<s-taspri-posix.ads \
1301 s-tpopsp.adb<s-tpopsp-posix.adb \
1302 s-traceb.adb<s-traceb-mastop.adb
f5026442 1303
9aaa1ee8
RO
1304 ifeq ($(strip $(MULTISUBDIR)),/64)
1305 LIBGNAT_TARGET_PAIRS += \
1306 system.ads<system-irix-n64.ads
1307 else
1308 ifeq ($(strip $(MULTISUBDIR)),/32)
f5026442 1309 LIBGNAT_TARGET_PAIRS += \
9aaa1ee8 1310 system.ads<system-irix-o32.ads
f5026442 1311 else
9aaa1ee8
RO
1312 LIBGNAT_TARGET_PAIRS += \
1313 system.ads<system-irix-n32.ads
f5026442 1314 endif
a1ab4c31
AC
1315 endif
1316
9aaa1ee8
RO
1317 THREADSLIB = -lpthread
1318 GNATLIB_SHARED = gnatlib-shared-default
1319
a1ab4c31
AC
1320 EH_MECHANISM=-gcc
1321 TOOLS_TARGET_PAIRS = mlib-tgt-specific.adb<mlib-tgt-specific-irix.adb
1322 TGT_LIB = -lexc
1323 MISCLIB = -lexc
a1ab4c31
AC
1324 LIBRARY_VERSION := $(LIB_VERSION)
1325 GMEM_LIB = gmemlib
1326endif
1327
1328ifeq ($(strip $(filter-out hppa% hp hpux10%,$(targ))),)
1329 LIBGNAT_TARGET_PAIRS = \
1330 a-excpol.adb<a-excpol-abort.adb \
1331 a-intnam.ads<a-intnam-hpux.ads \
1332 s-inmaop.adb<s-inmaop-posix.adb \
1333 s-interr.adb<s-interr-sigaction.adb \
1334 s-intman.adb<s-intman-posix.adb \
1335 s-osinte.adb<s-osinte-hpux-dce.adb \
1336 s-osinte.ads<s-osinte-hpux-dce.ads \
1337 s-parame.ads<s-parame-hpux.ads \
1338 s-osprim.adb<s-osprim-posix.adb \
1339 s-taprop.adb<s-taprop-hpux-dce.adb \
1340 s-taspri.ads<s-taspri-hpux-dce.ads \
1341 s-tpopsp.adb<s-tpopsp-posix.adb \
a1ab4c31
AC
1342 system.ads<system-hpux.ads
1343
1344 EH_MECHANISM=-gcc
a1ab4c31
AC
1345endif
1346
1347ifeq ($(strip $(filter-out hppa% hp hpux11%,$(targ))),)
1348 LIBGNAT_TARGET_PAIRS = \
1349 a-intnam.ads<a-intnam-hpux.ads \
1350 s-inmaop.adb<s-inmaop-posix.adb \
1351 s-intman.adb<s-intman-posix.adb \
1352 s-osinte.adb<s-osinte-posix.adb \
1353 s-osinte.ads<s-osinte-hpux.ads \
1354 s-parame.ads<s-parame-hpux.ads \
1355 s-osprim.adb<s-osprim-posix.adb \
1356 s-traceb.adb<s-traceb-hpux.adb \
1357 s-taprop.adb<s-taprop-posix.adb \
1358 s-taspri.ads<s-taspri-posix.ads \
1359 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
a1ab4c31
AC
1360 system.ads<system-hpux.ads
1361
1362 TOOLS_TARGET_PAIRS = mlib-tgt-specific.adb<mlib-tgt-specific-hpux.adb
1363 EH_MECHANISM=-gcc
1364 TGT_LIB = /usr/lib/libcl.a
1365 THREADSLIB = -lpthread
1366 GMEM_LIB = gmemlib
1367 soext = .sl
1368 SO_OPTS = -Wl,+h,
a1ab4c31
AC
1369 GNATLIB_SHARED = gnatlib-shared-dual
1370 LIBRARY_VERSION := $(LIB_VERSION)
1371endif
1372
1373ifeq ($(strip $(filter-out ibm aix%,$(manu) $(osys))),)
4c1a9016 1374 LIBGNAT_TARGET_PAIRS_COMMON = \
a1ab4c31
AC
1375 a-intnam.ads<a-intnam-aix.ads \
1376 s-inmaop.adb<s-inmaop-posix.adb \
1377 s-intman.adb<s-intman-posix.adb \
1378 s-osinte.adb<s-osinte-aix.adb \
1379 s-osinte.ads<s-osinte-aix.ads \
1380 s-osprim.adb<s-osprim-posix.adb \
1381 s-taprop.adb<s-taprop-posix.adb \
1382 s-taspri.ads<s-taspri-posix.ads \
7415029d 1383 s-tpopsp.adb<s-tpopsp-posix.adb \
718f39dc
AC
1384 $(ATOMICS_TARGET_PAIRS) \
1385 $(ATOMICS_BUILTINS_TARGET_PAIRS)
4c1a9016
OH
1386
1387 LIBGNAT_TARGET_PAIRS_32 = \
a1ab4c31
AC
1388 system.ads<system-aix.ads
1389
4c1a9016
OH
1390 LIBGNAT_TARGET_PAIRS_64 = \
1391 system.ads<system-aix64.ads
1392
1393 ifeq ($(findstring ppc64, \
1394 $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \
1395 -print-multi-os-directory)), \
1396 ppc64)
1397 LIBGNAT_TARGET_PAIRS = \
1398 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
1399 else
1400 LIBGNAT_TARGET_PAIRS = \
1401 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
1402 endif
1403
a1ab4c31 1404 THREADSLIB = -lpthreads
686d0984 1405 EH_MECHANISM=-gcc
a1ab4c31
AC
1406 TOOLS_TARGET_PAIRS = \
1407 mlib-tgt-specific.adb<mlib-tgt-specific-aix.adb \
1408 indepsw.adb<indepsw-aix.adb
1409
1410 GMEM_LIB = gmemlib
1411endif
1412
a1ab4c31
AC
1413ifeq ($(strip $(filter-out rtems%,$(osys))),)
1414 LIBGNAT_TARGET_PAIRS = \
1415 system.ads<system-rtems.ads \
1416 a-intnam.ads<a-intnam-rtems.ads \
1417 s-inmaop.adb<s-inmaop-posix.adb \
1418 s-intman.adb<s-intman-posix.adb \
1419 s-osinte.adb<s-osinte-rtems.adb \
1420 s-osinte.ads<s-osinte-rtems.ads \
1421 s-osprim.adb<s-osprim-posix.adb \
1422 s-parame.adb<s-parame-rtems.adb \
1423 s-taprop.adb<s-taprop-posix.adb \
1424 s-taspri.ads<s-taspri-posix.ads \
1425 s-tpopsp.adb<s-tpopsp-rtems.adb \
1011d8a2 1426 s-stchop.adb<s-stchop-rtems.adb \
885c4871 1427 s-interr.adb<s-interr-hwint.adb
a1ab4c31
AC
1428endif
1429
1430ifeq ($(strip $(filter-out alpha% dec osf%,$(targ))),)
1431 LIBGNAT_TARGET_PAIRS = \
1432 a-intnam.ads<a-intnam-tru64.ads \
1433 s-inmaop.adb<s-inmaop-posix.adb \
1434 s-intman.adb<s-intman-posix.adb \
1435 s-mastop.adb<s-mastop-tru64.adb \
1436 s-osinte.adb<s-osinte-tru64.adb \
1437 s-osinte.ads<s-osinte-tru64.ads \
1438 s-osprim.adb<s-osprim-unix.adb \
1439 s-taprop.adb<s-taprop-tru64.adb \
1440 s-tasinf.ads<s-tasinf-tru64.ads \
1441 s-taspri.ads<s-taspri-tru64.ads \
1442 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
1443 s-traceb.adb<s-traceb-mastop.adb \
7415029d 1444 system.ads<system-tru64.ads \
718f39dc
AC
1445 $(ATOMICS_TARGET_PAIRS) \
1446 $(ATOMICS_BUILTINS_TARGET_PAIRS)
a1ab4c31
AC
1447
1448 TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-tru64.adb
1449
1450 EH_MECHANISM=-gcc
1451 GMEM_LIB=gmemlib
b26be063 1452 MISCLIB = -lexc
a1ab4c31 1453 THREADSLIB = -lpthread -lmach -lexc -lrt
a1ab4c31
AC
1454 GNATLIB_SHARED = gnatlib-shared-default
1455 LIBRARY_VERSION := $(LIB_VERSION)
1456endif
1457
1458ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(host))),)
1459
1460soext = .exe
1461hyphen = _
1462LN = cp -p
1463LN_S = cp -p
1464
1465.SUFFIXES: .sym
1466
1467.o.sym:
1468 @ gnu:[bin]vmssymvec $<
1469endif
1470
1471ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(targ))),)
a1ab4c31 1472 LIBGNAT_TARGET_PAIRS = \
d88a51b1
AC
1473 a-caldel.adb<a-caldel-vms.adb \
1474 a-calend.adb<a-calend-vms.adb \
1475 a-calend.ads<a-calend-vms.ads \
1476 a-dirval.adb<a-dirval-vms.adb \
1477 a-excpol.adb<a-excpol-abort.adb \
1478 a-intnam.ads<a-intnam-vms.ads \
1479 a-numaux.ads<a-numaux-vms.ads \
1480 g-expect.adb<g-expect-vms.adb \
1481 g-socthi.ads<g-socthi-vms.ads \
1482 g-socthi.adb<g-socthi-vms.adb \
1483 g-stsifd.adb<g-stsifd-sockets.adb \
d88a51b1
AC
1484 i-cstrea.adb<i-cstrea-vms.adb \
1485 memtrack.adb<memtrack-vms_64.adb \
1486 s-auxdec.ads<s-auxdec-vms_64.ads \
d88a51b1
AC
1487 s-inmaop.adb<s-inmaop-vms.adb \
1488 s-interr.adb<s-interr-vms.adb \
1489 s-intman.adb<s-intman-vms.adb \
1490 s-intman.ads<s-intman-vms.ads \
1491 s-memory.adb<s-memory-vms_64.adb \
1492 s-memory.ads<s-memory-vms_64.ads \
1493 s-osprim.adb<s-osprim-vms.adb \
1494 s-osprim.ads<s-osprim-vms.ads \
1495 s-taprop.adb<s-taprop-vms.adb \
1496 s-tasdeb.adb<s-tasdeb-vms.adb \
1497 s-taspri.ads<s-taspri-vms.ads \
0187b60e 1498 s-tpopsp.adb<s-tpopsp-vms.adb \
d88a51b1 1499 s-tpopde.adb<s-tpopde-vms.adb \
2933b16c 1500 s-tpopde.ads<s-tpopde-vms.ads
d88a51b1
AC
1501
1502 ifeq ($(strip $(filter-out ia64 hp vms% openvms%,$(targ))),)
2933b16c
RD
1503 LIBGNAT_TARGET_PAIRS += \
1504 g-enblsp.adb<g-enblsp-vms-ia64.adb \
1505 g-trasym.adb<g-trasym-vms-ia64.adb \
1506 s-asthan.adb<s-asthan-vms-ia64.adb \
1507 s-auxdec.adb<s-auxdec-vms-ia64.adb \
1508 s-osinte.adb<s-osinte-vms-ia64.adb \
1509 s-osinte.ads<s-osinte-vms-ia64.ads \
1510 s-vaflop.adb<s-vaflop-vms-ia64.adb \
1511 system.ads<system-vms-ia64.ads \
1512 s-parame.ads<s-parame-vms-ia64.ads \
718f39dc
AC
1513 $(ATOMICS_TARGET_PAIRS) \
1514 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2933b16c 1515
d88a51b1
AC
1516 TOOLS_TARGET_PAIRS= \
1517 mlib-tgt-specific.adb<mlib-tgt-specific-vms-ia64.adb \
1518 symbols.adb<symbols-vms.adb \
1519 symbols-processing.adb<symbols-processing-vms-ia64.adb
1520 else
2933b16c
RD
1521 ifeq ($(strip $(filter-out alpha64 dec vms% openvms% alphavms%,$(targ))),)
1522 LIBGNAT_TARGET_PAIRS += \
1523 g-enblsp.adb<g-enblsp-vms-alpha.adb \
1524 g-trasym.adb<g-trasym-vms-alpha.adb \
1525 s-asthan.adb<s-asthan-vms-alpha.adb \
1526 s-auxdec.adb<s-auxdec-vms-alpha.adb \
1527 s-osinte.adb<s-osinte-vms.adb \
1528 s-osinte.ads<s-osinte-vms.ads \
1529 s-traent.adb<s-traent-vms.adb \
1530 s-traent.ads<s-traent-vms.ads \
1531 s-vaflop.adb<s-vaflop-vms-alpha.adb \
1532 system.ads<system-vms_64.ads \
1533 s-parame.ads<s-parame-vms-alpha.ads \
718f39dc
AC
1534 $(ATOMICS_TARGET_PAIRS) \
1535 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2933b16c 1536
d88a51b1
AC
1537 TOOLS_TARGET_PAIRS= \
1538 mlib-tgt-specific.adb<mlib-tgt-specific-vms-alpha.adb \
1539 symbols.adb<symbols-vms.adb \
1540 symbols-processing.adb<symbols-processing-vms-alpha.adb
2933b16c 1541 endif
d88a51b1 1542 endif
a1ab4c31
AC
1543
1544adamsg.o: adamsg.msg
1545 -$(DECC) --cc=message adamsg.msg -o adamsg.o
1546
1547 EXTRA_GNATMAKE_OBJS = mlib-tgt-vms_common.o
1548
1549 GMEM_LIB = gmemlib
1550 EH_MECHANISM=-gcc
1551 GNATLIB_SHARED=gnatlib-shared-vms
a1ab4c31
AC
1552 EXTRA_LIBGNAT_SRCS+=adamsg.msg
1553 EXTRA_LIBGNAT_OBJS+=adamsg.o
c5ecd6b7 1554 EXTRA_GNATRTL_NONTASKING_OBJS+=s-po32gl.o
a1ab4c31
AC
1555 EXTRA_GNATRTL_TASKING_OBJS=s-tpopde.o
1556 EXTRA_GNATTOOLS = \
f00c5f52 1557 ../../gnatsym$(exeext)
a1ab4c31 1558 # This command transforms (YYYYMMDD) into YY,MMDD
a760c977 1559 GSMATCH_VERSION := $(shell grep "^ *Gnat_Static_Version_String" $(fsrcpfx)ada/gnatvsn.ads | sed -e 's/.*(\(.*\)).*/\1/' -e 's/\(..\)\(..\)\(....\).*/\2,\3/')
a1ab4c31
AC
1560 TOOLS_LIBS_LO := --for-linker=sys\\$$\$$library:trace.exe
1561 LIBRARY_VERSION := $(subst .,_,$(LIB_VERSION))
1562endif
1563
d88a51b1
AC
1564ifeq ($(strip $(filter-out avr none powerpc% eabispe leon% erc32% unknown elf,$(targ))),)
1565 TOOLS_TARGET_PAIRS=\
1566 mlib-tgt-specific.adb<mlib-tgt-specific-xi.adb \
1567 indepsw.adb<indepsw-gnu.adb
1568endif
1569
a1ab4c31
AC
1570ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),)
1571 LIBGNAT_TARGET_PAIRS = \
1572 a-dirval.adb<a-dirval-mingw.adb \
1573 a-excpol.adb<a-excpol-abort.adb \
a1ab4c31
AC
1574 s-gloloc.adb<s-gloloc-mingw.adb \
1575 s-inmaop.adb<s-inmaop-dummy.adb \
1576 s-memory.adb<s-memory-mingw.adb \
1577 s-taspri.ads<s-taspri-mingw.ads \
1578 s-tasinf.adb<s-tasinf-mingw.adb \
1579 s-tasinf.ads<s-tasinf-mingw.ads \
a1ab4c31
AC
1580 g-socthi.ads<g-socthi-mingw.ads \
1581 g-socthi.adb<g-socthi-mingw.adb \
1582 g-stsifd.adb<g-stsifd-sockets.adb \
19172ae9 1583 g-soliop.ads<g-soliop-mingw.ads \
d51813db 1584 $(ATOMICS_TARGET_PAIRS)
a1ab4c31
AC
1585
1586 ifeq ($(strip $(filter-out rtx_w32 rtx_rtss,$(THREAD_KIND))),)
1587 LIBGNAT_TARGET_PAIRS += \
1588 s-intman.adb<s-intman-dummy.adb \
1589 s-osinte.ads<s-osinte-rtx.ads \
1590 s-osprim.adb<s-osprim-rtx.adb \
d51813db
AC
1591 s-taprop.adb<s-taprop-rtx.adb \
1592 $(X86_TARGET_PAIRS)
a1ab4c31
AC
1593
1594 EXTRA_GNATRTL_NONTASKING_OBJS = s-win32.o
1595
f921a1cd
JR
1596 ifeq ($(strip $(filter-out rtx_w32,$(THREAD_KIND))),)
1597 LIBGNAT_TARGET_PAIRS += system.ads<system-rtx.ads
1598
1599 EH_MECHANISM=-gcc
1600 else
d59214bd
JR
1601 LIBGNAT_TARGET_PAIRS += \
1602 system.ads<system-rtx-rtss.ads \
1603 s-parame.adb<s-parame-vxworks.adb
f921a1cd
JR
1604
1605 EH_MECHANISM=
1606 endif
1607
a1ab4c31
AC
1608 else
1609 LIBGNAT_TARGET_PAIRS += \
1610 a-exetim.adb<a-exetim-mingw.adb \
1611 a-exetim.ads<a-exetim-mingw.ads \
1612 a-intnam.ads<a-intnam-mingw.ads \
1613 g-sercom.adb<g-sercom-mingw.adb \
1614 s-interr.adb<s-interr-sigaction.adb \
1615 s-intman.adb<s-intman-mingw.adb \
3467e8c7 1616 s-mudido.adb<s-mudido-affinity.adb \
a1ab4c31
AC
1617 s-osinte.ads<s-osinte-mingw.ads \
1618 s-osprim.adb<s-osprim-mingw.adb \
b282ab37 1619 s-taprop.adb<s-taprop-mingw.adb
a1ab4c31 1620
b282ab37 1621 ifeq ($(strip $(filter-out x86_64%,$(arch))),)
57e215e4
KT
1622 ifeq ($(strip $(MULTISUBDIR)),/32)
1623 LIBGNAT_TARGET_PAIRS += \
d51813db 1624 $(X86_TARGET_PAIRS) \
57e215e4 1625 system.ads<system-mingw.ads
333d8aff 1626 SO_OPTS= -m32 -Wl,-soname,
57e215e4
KT
1627 else
1628 LIBGNAT_TARGET_PAIRS += \
d51813db 1629 $(X86_64_TARGET_PAIRS) \
57e215e4 1630 system.ads<system-mingw-x86_64.ads
333d8aff 1631 SO_OPTS = -m64 -Wl,-soname,
57e215e4 1632 endif
b282ab37 1633 else
57e215e4
KT
1634 ifeq ($(strip $(MULTISUBDIR)),/64)
1635 LIBGNAT_TARGET_PAIRS += \
d51813db 1636 $(X86_64_TARGET_PAIRS) \
57e215e4 1637 system.ads<system-mingw-x86_64.ads
333d8aff 1638 SO_OPTS = -m64 -Wl,-soname,
57e215e4
KT
1639 else
1640 LIBGNAT_TARGET_PAIRS += \
d51813db 1641 $(X86_TARGET_PAIRS) \
57e215e4 1642 system.ads<system-mingw.ads
333d8aff 1643 SO_OPTS = -m32 -Wl,-soname,
57e215e4 1644 endif
b282ab37
AC
1645 endif
1646
81d93365 1647 EXTRA_GNATRTL_NONTASKING_OBJS = \
5391897d 1648 s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o
a1ab4c31
AC
1649 EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
1650
32838704 1651 MISCLIB = -lws2_32
a1ab4c31
AC
1652
1653 # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
1654 # auto-import support for array/record will be done.
1655 GNATLIB_SHARED = gnatlib-shared-win32
c5ecd6b7
AC
1656
1657 EH_MECHANISM=-gcc
a1ab4c31
AC
1658 endif
1659
1660 TOOLS_TARGET_PAIRS= \
1661 mlib-tgt-specific.adb<mlib-tgt-specific-mingw.adb \
1662 indepsw.adb<indepsw-mingw.adb
1663
a1ab4c31 1664 GMEM_LIB = gmemlib
a1ab4c31
AC
1665 EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
1666 EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o
1667 soext = .dll
1668 LIBRARY_VERSION := $(LIB_VERSION)
1669endif
1670
1671ifeq ($(strip $(filter-out mips linux%,$(arch) $(osys))),)
1672 LIBGNAT_TARGET_PAIRS = \
1673 a-intnam.ads<a-intnam-linux.ads \
a1ab4c31
AC
1674 s-inmaop.adb<s-inmaop-posix.adb \
1675 s-intman.adb<s-intman-posix.adb \
1676 s-linux.ads<s-linux.ads \
1677 s-osinte.adb<s-osinte-posix.adb \
1678 s-osinte.ads<s-osinte-linux.ads \
1679 s-osprim.adb<s-osprim-posix.adb \
1680 s-taprop.adb<s-taprop-linux.adb \
1681 s-tasinf.ads<s-tasinf-linux.ads \
1682 s-tasinf.adb<s-tasinf-linux.adb \
1683 s-taspri.ads<s-taspri-posix.ads \
1684 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
1685 system.ads<system-linux-mips.ads
1686
1687 EH_MECHANISM=-gcc
1688 THREADSLIB = -lpthread
1689 GNATLIB_SHARED = gnatlib-shared-dual
1690 GMEM_LIB = gmemlib
a1ab4c31
AC
1691 LIBRARY_VERSION := $(LIB_VERSION)
1692endif
1693
1694ifeq ($(strip $(filter-out mipsel linux%,$(arch) $(osys))),)
e84efdce 1695 LIBGNAT_TARGET_PAIRS_COMMON = \
a1ab4c31 1696 a-intnam.ads<a-intnam-linux.ads \
a1ab4c31
AC
1697 s-inmaop.adb<s-inmaop-posix.adb \
1698 s-intman.adb<s-intman-posix.adb \
e84efdce
LG
1699 s-linux.ads<s-linux-mipsel.ads \
1700 s-osinte.adb<s-osinte-posix.adb \
1701 s-osinte.ads<s-osinte-linux.ads \
1702 s-osprim.adb<s-osprim-posix.adb \
1703 s-taprop.adb<s-taprop-linux.adb \
1704 s-tasinf.ads<s-tasinf-linux.ads \
1705 s-tasinf.adb<s-tasinf-linux.adb \
1706 s-taspri.ads<s-taspri-posix-noaltstack.ads \
1707 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
1708 g-sercom.adb<g-sercom-linux.adb
1709
1710 LIBGNAT_TARGET_PAIRS_32 = \
1711 system.ads<system-linux-mipsel.ads
1712
1713 LIBGNAT_TARGET_PAIRS_64 = \
1714 system.ads<system-linux-mips64el.ads
1715
1716 ifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64)
1717 LIBGNAT_TARGET_PAIRS = \
1718 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
1719 else
1720 LIBGNAT_TARGET_PAIRS = \
1721 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
1722 endif
1723
1724 TOOLS_TARGET_PAIRS = \
1725 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
1726 indepsw.adb<indepsw-gnu.adb
1727
1728 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1729 EH_MECHANISM=-gcc
1730 THREADSLIB = -lpthread
1731 GNATLIB_SHARED = gnatlib-shared-dual
1732 GMEM_LIB = gmemlib
e84efdce
LG
1733 LIBRARY_VERSION := $(LIB_VERSION)
1734endif
1735
1736ifeq ($(strip $(filter-out mips64el linux%,$(arch) $(osys))),)
1737 LIBGNAT_TARGET_PAIRS_COMMON = \
1738 a-intnam.ads<a-intnam-linux.ads \
1739 s-inmaop.adb<s-inmaop-posix.adb \
1740 s-intman.adb<s-intman-posix.adb \
1741 s-linux.ads<s-linux-mipsel.ads \
a1ab4c31
AC
1742 s-osinte.adb<s-osinte-posix.adb \
1743 s-osinte.ads<s-osinte-linux.ads \
1744 s-osprim.adb<s-osprim-posix.adb \
1745 s-taprop.adb<s-taprop-linux.adb \
1746 s-tasinf.ads<s-tasinf-linux.ads \
1747 s-tasinf.adb<s-tasinf-linux.adb \
d0ec4c99 1748 s-taspri.ads<s-taspri-posix-noaltstack.ads \
a1ab4c31 1749 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
e84efdce
LG
1750 g-sercom.adb<g-sercom-linux.adb
1751
1752 LIBGNAT_TARGET_PAIRS_32 = \
a1ab4c31
AC
1753 system.ads<system-linux-mipsel.ads
1754
e84efdce
LG
1755 LIBGNAT_TARGET_PAIRS_64 = \
1756 system.ads<system-linux-mips64el.ads
1757
1758 ifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64)
1759 LIBGNAT_TARGET_PAIRS = \
1760 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
1761 else
1762 LIBGNAT_TARGET_PAIRS = \
1763 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
1764 endif
1765
d0ec4c99
LG
1766 TOOLS_TARGET_PAIRS = \
1767 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
1768 indepsw.adb<indepsw-gnu.adb
1769
1770 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
a1ab4c31
AC
1771 EH_MECHANISM=-gcc
1772 THREADSLIB = -lpthread
1773 GNATLIB_SHARED = gnatlib-shared-dual
1774 GMEM_LIB = gmemlib
a1ab4c31
AC
1775 LIBRARY_VERSION := $(LIB_VERSION)
1776endif
1777
1778ifeq ($(strip $(filter-out powerpc% linux%,$(arch) $(osys))),)
9e81dbc7 1779 LIBGNAT_TARGET_PAIRS_COMMON = \
c775c209
AC
1780 a-exetim.adb<a-exetim-posix.adb \
1781 a-exetim.ads<a-exetim-default.ads \
a1ab4c31 1782 a-intnam.ads<a-intnam-linux.ads \
718f39dc
AC
1783 a-synbar.adb<a-synbar-posix.adb \
1784 a-synbar.ads<a-synbar-posix.ads \
a1ab4c31
AC
1785 s-inmaop.adb<s-inmaop-posix.adb \
1786 s-intman.adb<s-intman-posix.adb \
1787 s-linux.ads<s-linux.ads \
1788 s-osinte.adb<s-osinte-posix.adb \
686d0984 1789 s-tpopsp.adb<s-tpopsp-tls.adb \
7415029d 1790 g-sercom.adb<g-sercom-linux.adb \
718f39dc
AC
1791 $(ATOMICS_TARGET_PAIRS) \
1792 $(ATOMICS_BUILTINS_TARGET_PAIRS)
9e81dbc7 1793
ab0c3d8e 1794 ifeq ($(strip $(filter-out xenomai,$(THREAD_KIND))),)
9e81dbc7 1795 LIBGNAT_TARGET_PAIRS = \
ab0c3d8e 1796 $(LIBGNAT_TARGET_PAIRS_COMMON)
9e81dbc7 1797
fde4b6f5
AC
1798 LIBGNAT_TARGET_PAIRS += \
1799 s-osinte.ads<s-osinte-linux-xenomai.ads \
1800 s-osprim.adb<s-osprim-linux-xenomai.adb \
1801 s-taprop.adb<s-taprop-linux-xenomai.adb \
1802 s-taspri.ads<s-taspri-linux-xenomai.ads \
2bd2d858 1803 system.ads<system-linux-ppc.ads
fde4b6f5 1804 else
ab0c3d8e
JR
1805 LIBGNAT_TARGET_PAIRS_32 = \
1806 system.ads<system-linux-ppc.ads
1807
1808 LIBGNAT_TARGET_PAIRS_64 = \
1809 system.ads<system-linux-ppc64.ads
1810
1811 ifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64)
1812 LIBGNAT_TARGET_PAIRS = \
1813 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
1814 else
1815 LIBGNAT_TARGET_PAIRS = \
1816 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
1817 endif
1818
fde4b6f5 1819 LIBGNAT_TARGET_PAIRS += \
3467e8c7 1820 s-mudido.adb<s-mudido-affinity.adb \
fde4b6f5
AC
1821 s-osinte.ads<s-osinte-linux.ads \
1822 s-osprim.adb<s-osprim-posix.adb \
1823 s-taprop.adb<s-taprop-linux.adb \
f043707f
JG
1824 s-tasinf.ads<s-tasinf-linux.ads \
1825 s-tasinf.adb<s-tasinf-linux.adb \
ab0c3d8e 1826 s-taspri.ads<s-taspri-posix-noaltstack.ads
fde4b6f5
AC
1827 endif
1828
a1ab4c31
AC
1829 TOOLS_TARGET_PAIRS = \
1830 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
1831 indepsw.adb<indepsw-gnu.adb
1832
c775c209 1833 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
a1ab4c31 1834 EH_MECHANISM=-gcc
c775c209 1835 THREADSLIB = -lpthread -lrt
a1ab4c31
AC
1836 GNATLIB_SHARED = gnatlib-shared-dual
1837 GMEM_LIB = gmemlib
a1ab4c31
AC
1838 LIBRARY_VERSION := $(LIB_VERSION)
1839endif
1840
34e6988b 1841ifeq ($(strip $(filter-out arm% linux-gnueabi,$(arch) $(osys)-$(word 4,$(targ)))),)
c448ab16
MP
1842 LIBGNAT_TARGET_PAIRS = \
1843 a-intnam.ads<a-intnam-linux.ads \
1844 s-inmaop.adb<s-inmaop-posix.adb \
1845 s-intman.adb<s-intman-posix.adb \
1846 s-linux.ads<s-linux.ads \
1847 s-osinte.adb<s-osinte-posix.adb \
1848 s-osinte.ads<s-osinte-linux.ads \
1849 s-osprim.adb<s-osprim-posix.adb \
1850 s-taprop.adb<s-taprop-linux.adb \
1851 s-tasinf.ads<s-tasinf-linux.ads \
1852 s-tasinf.adb<s-tasinf-linux.adb \
1853 s-taspri.ads<s-taspri-posix-noaltstack.ads \
1854 s-tpopsp.adb<s-tpopsp-posix-foreign.adb
1855
1856 ifeq ($(strip $(filter-out arm%b,$(arch))),)
1857 LIBGNAT_TARGET_PAIRS += \
1858 system.ads<system-linux-armeb.ads
1859 else
1860 LIBGNAT_TARGET_PAIRS += \
1861 system.ads<system-linux-armel.ads
1862 endif
1863
1864 TOOLS_TARGET_PAIRS = \
1865 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
1866 indepsw.adb<indepsw-gnu.adb
1867
1868 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1869 EH_MECHANISM=
1870 THREADSLIB = -lpthread
1871 GNATLIB_SHARED = gnatlib-shared-dual
1872 GMEM_LIB = gmemlib
1873 LIBRARY_VERSION := $(LIB_VERSION)
1874endif
1875
a1ab4c31 1876ifeq ($(strip $(filter-out sparc% linux%,$(arch) $(osys))),)
6818f0fc 1877 LIBGNAT_TARGET_PAIRS_COMMON = \
a1ab4c31
AC
1878 a-intnam.ads<a-intnam-linux.ads \
1879 s-inmaop.adb<s-inmaop-posix.adb \
1880 s-intman.adb<s-intman-posix.adb \
0cf1a41a 1881 s-linux.ads<s-linux-sparc.ads \
a1ab4c31
AC
1882 s-osinte.adb<s-osinte-posix.adb \
1883 s-osinte.ads<s-osinte-linux.ads \
1884 s-osprim.adb<s-osprim-posix.adb \
1885 s-taprop.adb<s-taprop-linux.adb \
1886 s-tasinf.ads<s-tasinf-linux.ads \
1887 s-tasinf.adb<s-tasinf-linux.adb \
1888 s-taspri.ads<s-taspri-posix-noaltstack.ads \
686d0984 1889 s-tpopsp.adb<s-tpopsp-tls.adb
6818f0fc
EB
1890
1891 LIBGNAT_TARGET_PAIRS_32 = \
a1ab4c31
AC
1892 system.ads<system-linux-sparc.ads
1893
7193e639 1894 LIBGNAT_TARGET_PAIRS_64 = \
7193e639
LG
1895 system.ads<system-linux-sparcv9.ads
1896
2692d7f5 1897 ifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64)
6818f0fc
EB
1898 LIBGNAT_TARGET_PAIRS = \
1899 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
7193e639 1900 else
6818f0fc
EB
1901 LIBGNAT_TARGET_PAIRS = \
1902 $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
7193e639
LG
1903 endif
1904
a1ab4c31
AC
1905 TOOLS_TARGET_PAIRS = \
1906 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
1907 indepsw.adb<indepsw-gnu.adb
1908
1909 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1910 EH_MECHANISM=-gcc
1911 THREADSLIB = -lpthread
1912 GNATLIB_SHARED = gnatlib-shared-dual
1913 GMEM_LIB = gmemlib
a1ab4c31
AC
1914 LIBRARY_VERSION := $(LIB_VERSION)
1915endif
1916
1917ifeq ($(strip $(filter-out hppa% linux%,$(arch) $(osys))),)
1918 LIBGNAT_TARGET_PAIRS = \
1919 a-intnam.ads<a-intnam-linux.ads \
1920 s-inmaop.adb<s-inmaop-posix.adb \
1921 s-intman.adb<s-intman-posix.adb \
1922 s-linux.ads<s-linux-hppa.ads \
1923 s-osinte.adb<s-osinte-posix.adb \
1924 s-osinte.ads<s-osinte-linux.ads \
1925 s-osprim.adb<s-osprim-posix.adb \
1926 s-taprop.adb<s-taprop-linux.adb \
1927 s-tasinf.ads<s-tasinf-linux.ads \
1928 s-tasinf.adb<s-tasinf-linux.adb \
1929 s-taspri.ads<s-taspri-posix-noaltstack.ads \
1930 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
1931 system.ads<system-linux-hppa.ads
1932
1933 TOOLS_TARGET_PAIRS = \
1934 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
1935 indepsw.adb<indepsw-gnu.adb
1936
1937 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1938 EH_MECHANISM=-gcc
1939 THREADSLIB = -lpthread
1940 GNATLIB_SHARED = gnatlib-shared-dual
1941 GMEM_LIB = gmemlib
a1ab4c31
AC
1942 LIBRARY_VERSION := $(LIB_VERSION)
1943endif
1944
1945ifeq ($(strip $(filter-out sh4% linux%,$(arch) $(osys))),)
1946 LIBGNAT_TARGET_PAIRS = \
1947 a-intnam.ads<a-intnam-linux.ads \
1948 s-inmaop.adb<s-inmaop-posix.adb \
1949 s-intman.adb<s-intman-posix.adb \
1950 s-linux.ads<s-linux.ads \
1951 s-osinte.adb<s-osinte-posix.adb \
1952 s-osinte.ads<s-osinte-linux.ads \
1953 s-osprim.adb<s-osprim-posix.adb \
1954 s-taprop.adb<s-taprop-linux.adb \
1955 s-tasinf.ads<s-tasinf-linux.ads \
1956 s-tasinf.adb<s-tasinf-linux.adb \
1957 s-taspri.ads<s-taspri-posix-noaltstack.ads \
1958 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
1959 system.ads<system-linux-sh4.ads
1960
1961 TOOLS_TARGET_PAIRS = \
1962 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
1963 indepsw.adb<indepsw-linux.adb
ffb35bbf 1964
a1ab4c31
AC
1965 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1966 EH_MECHANISM=-gcc
1967 MISCLIB=
1968 THREADSLIB = -lpthread
1969 GNATLIB_SHARED = gnatlib-shared-dual
1970 GMEM_LIB = gmemlib
a1ab4c31
AC
1971 LIBRARY_VERSION := $(LIB_VERSION)
1972endif
1973
1974ifeq ($(strip $(filter-out %ia64 linux%,$(arch) $(osys))),)
1975 LIBGNAT_TARGET_PAIRS = \
c775c209
AC
1976 a-exetim.adb<a-exetim-posix.adb \
1977 a-exetim.ads<a-exetim-default.ads \
a1ab4c31
AC
1978 a-intnam.ads<a-intnam-linux.ads \
1979 a-numaux.ads<a-numaux-libc-x86.ads \
718f39dc
AC
1980 a-synbar.adb<a-synbar-posix.adb \
1981 a-synbar.ads<a-synbar-posix.ads \
a1ab4c31
AC
1982 s-inmaop.adb<s-inmaop-posix.adb \
1983 s-intman.adb<s-intman-posix.adb \
1984 s-linux.ads<s-linux.ads \
3467e8c7 1985 s-mudido.adb<s-mudido-affinity.adb \
a1ab4c31
AC
1986 s-osinte.ads<s-osinte-linux.ads \
1987 s-osinte.adb<s-osinte-posix.adb \
1988 s-osprim.adb<s-osprim-posix.adb \
1989 s-taprop.adb<s-taprop-linux.adb \
1990 s-tasinf.ads<s-tasinf-linux.ads \
1991 s-tasinf.adb<s-tasinf-linux.adb \
686d0984 1992 s-tpopsp.adb<s-tpopsp-tls.adb \
a1ab4c31
AC
1993 s-taspri.ads<s-taspri-posix-noaltstack.ads \
1994 g-sercom.adb<g-sercom-linux.adb \
7415029d 1995 system.ads<system-linux-ia64.ads \
718f39dc
AC
1996 $(ATOMICS_TARGET_PAIRS) \
1997 $(ATOMICS_BUILTINS_TARGET_PAIRS)
a1ab4c31
AC
1998
1999 TOOLS_TARGET_PAIRS = \
2000 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
2001 indepsw.adb<indepsw-gnu.adb
2002
c775c209 2003 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
a1ab4c31
AC
2004 EH_MECHANISM=-gcc
2005 MISCLIB=
c775c209 2006 THREADSLIB=-lpthread -lrt
a1ab4c31
AC
2007 GNATLIB_SHARED=gnatlib-shared-dual
2008 GMEM_LIB = gmemlib
a1ab4c31
AC
2009 LIBRARY_VERSION := $(LIB_VERSION)
2010endif
2011
d88a51b1
AC
2012ifeq ($(strip $(filter-out ia64% hp hpux%,$(targ))),)
2013 LIBGNAT_TARGET_PAIRS = \
2014 a-intnam.ads<a-intnam-hpux.ads \
2015 s-inmaop.adb<s-inmaop-posix.adb \
2016 s-intman.adb<s-intman-posix.adb \
2017 s-osinte.adb<s-osinte-posix.adb \
2018 s-osinte.ads<s-osinte-hpux.ads \
2019 s-osprim.adb<s-osprim-posix.adb \
2020 s-taprop.adb<s-taprop-posix.adb \
2021 s-taspri.ads<s-taspri-posix-noaltstack.ads \
2022 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
7415029d 2023 system.ads<system-hpux-ia64.ads \
718f39dc
AC
2024 $(ATOMICS_TARGET_PAIRS) \
2025 $(ATOMICS_BUILTINS_TARGET_PAIRS)
d88a51b1
AC
2026
2027 TOOLS_TARGET_PAIRS = \
2028 mlib-tgt-specific.adb<mlib-tgt-specific-ia64-hpux.adb
2029
2030 MISCLIB=
2031 THREADSLIB=-lpthread
2032 GNATLIB_SHARED=gnatlib-shared-dual
2033 GMEM_LIB = gmemlib
2034 soext = .sl
2035 SO_OPTS = -Wl,+h,
d88a51b1
AC
2036 LIBRARY_VERSION := $(LIB_VERSION)
2037endif
2038
a1ab4c31
AC
2039ifeq ($(strip $(filter-out alpha% linux%,$(arch) $(osys))),)
2040 LIBGNAT_TARGET_PAIRS = \
2041 a-intnam.ads<a-intnam-linux.ads \
2042 s-inmaop.adb<s-inmaop-posix.adb \
2043 s-intman.adb<s-intman-posix.adb \
2044 s-linux.ads<s-linux-alpha.ads \
2045 s-osinte.ads<s-osinte-linux.ads \
2046 s-osinte.adb<s-osinte-posix.adb \
2047 s-osprim.adb<s-osprim-posix.adb \
2048 s-taprop.adb<s-taprop-linux.adb \
2049 s-tasinf.ads<s-tasinf-linux.ads \
2050 s-tasinf.adb<s-tasinf-linux.adb \
2051 s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
2052 s-taspri.ads<s-taspri-posix-noaltstack.ads \
7415029d 2053 system.ads<system-linux-alpha.ads \
718f39dc
AC
2054 $(ATOMICS_TARGET_PAIRS) \
2055 $(ATOMICS_BUILTINS_TARGET_PAIRS)
a1ab4c31
AC
2056
2057 TOOLS_TARGET_PAIRS = \
2058 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
2059 indepsw.adb<indepsw-gnu.adb
2060
2061 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2062 EH_MECHANISM=-gcc
2063 MISCLIB=
2064 THREADSLIB=-lpthread
2065 GNATLIB_SHARED=gnatlib-shared-dual
a1ab4c31
AC
2066 LIBRARY_VERSION := $(LIB_VERSION)
2067endif
2068
2069ifeq ($(strip $(filter-out %x86_64 linux%,$(arch) $(osys))),)
2070 LIBGNAT_TARGET_PAIRS = \
c775c209
AC
2071 a-exetim.adb<a-exetim-posix.adb \
2072 a-exetim.ads<a-exetim-default.ads \
a1ab4c31 2073 a-intnam.ads<a-intnam-linux.ads \
718f39dc
AC
2074 a-synbar.adb<a-synbar-posix.adb \
2075 a-synbar.ads<a-synbar-posix.ads \
a1ab4c31
AC
2076 s-inmaop.adb<s-inmaop-posix.adb \
2077 s-intman.adb<s-intman-posix.adb \
2078 s-linux.ads<s-linux.ads \
3467e8c7 2079 s-mudido.adb<s-mudido-affinity.adb \
a1ab4c31
AC
2080 s-osinte.ads<s-osinte-linux.ads \
2081 s-osinte.adb<s-osinte-posix.adb \
2082 s-osprim.adb<s-osprim-posix.adb \
2083 s-taprop.adb<s-taprop-linux.adb \
2084 s-tasinf.ads<s-tasinf-linux.ads \
2085 s-tasinf.adb<s-tasinf-linux.adb \
686d0984 2086 s-tpopsp.adb<s-tpopsp-tls.adb \
a1ab4c31
AC
2087 s-taspri.ads<s-taspri-posix.ads \
2088 g-sercom.adb<g-sercom-linux.adb \
718f39dc 2089 $(ATOMICS_TARGET_PAIRS) \
d51813db
AC
2090 $(X86_64_TARGET_PAIRS) \
2091 system.ads<system-linux-x86_64.ads
a1ab4c31
AC
2092
2093 TOOLS_TARGET_PAIRS = \
2094 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
2095 indepsw.adb<indepsw-gnu.adb
2096
5391897d 2097 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
c775c209 2098 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
a1ab4c31 2099 EH_MECHANISM=-gcc
c775c209 2100 THREADSLIB=-lpthread -lrt
a1ab4c31
AC
2101 GNATLIB_SHARED=gnatlib-shared-dual
2102 GMEM_LIB = gmemlib
a1ab4c31
AC
2103 LIBRARY_VERSION := $(LIB_VERSION)
2104endif
2105
2106ifeq ($(strip $(filter-out darwin%,$(osys))),)
655ae828 2107 SO_OPTS = -shared-libgcc
39ffb1f9 2108 LIBGNAT_TARGET_PAIRS = \
a1ab4c31 2109 a-intnam.ads<a-intnam-darwin.ads \
90d28ec7 2110 i-forbla.adb<i-forbla-darwin.adb \
a1ab4c31 2111 s-inmaop.adb<s-inmaop-posix.adb \
a1ab4c31
AC
2112 s-osinte.adb<s-osinte-darwin.adb \
2113 s-osinte.ads<s-osinte-darwin.ads \
a1ab4c31
AC
2114 s-taprop.adb<s-taprop-posix.adb \
2115 s-taspri.ads<s-taspri-posix.ads \
885c4871 2116 s-tpopsp.adb<s-tpopsp-posix-foreign.adb
39ffb1f9
IS
2117
2118 ifeq ($(strip $(filter-out %86,$(arch))),)
2119 LIBGNAT_TARGET_PAIRS += \
2120 s-intman.adb<s-intman-susv3.adb \
2121 s-osprim.adb<s-osprim-darwin.adb \
2122 $(ATOMICS_TARGET_PAIRS)
d51813db 2123
4364e851
LG
2124 ifeq ($(strip $(MULTISUBDIR)),/x86_64)
2125 LIBGNAT_TARGET_PAIRS += \
d51813db
AC
2126 $(X86_64_TARGET_PAIRS) \
2127 system.ads<system-darwin-x86_64.ads
84ef27d3 2128 SO_OPTS += -m64
4364e851
LG
2129 else
2130 LIBGNAT_TARGET_PAIRS += \
d51813db
AC
2131 $(X86_TARGET_PAIRS) \
2132 system.ads<system-darwin-x86.ads
4364e851 2133 endif
59f3dd0a
AC
2134 endif
2135
2136 ifeq ($(strip $(filter-out %x86_64,$(arch))),)
39ffb1f9
IS
2137 LIBGNAT_TARGET_PAIRS += \
2138 s-intman.adb<s-intman-susv3.adb \
2139 s-osprim.adb<s-osprim-darwin.adb \
2140 $(ATOMICS_TARGET_PAIRS)
a1bf1ec7 2141
07b8e910
EB
2142 ifeq ($(strip $(MULTISUBDIR)),/i386)
2143 LIBGNAT_TARGET_PAIRS += \
a1bf1ec7
IS
2144 $(X86_TARGET_PAIRS) \
2145 system.ads<system-darwin-x86.ads
84ef27d3 2146 SO_OPTS += -m32
07b8e910
EB
2147 else
2148 LIBGNAT_TARGET_PAIRS += \
a1bf1ec7
IS
2149 $(X86_64_TARGET_PAIRS) \
2150 system.ads<system-darwin-x86_64.ads
07b8e910 2151 endif
59f3dd0a
AC
2152 endif
2153
2154 ifeq ($(strip $(filter-out powerpc%,$(arch))),)
39ffb1f9
IS
2155 LIBGNAT_TARGET_PAIRS += \
2156 s-intman.adb<s-intman-posix.adb \
a912d7d9
IS
2157 s-osprim.adb<s-osprim-posix.adb \
2158 a-numaux.ads<a-numaux-darwin.ads \
2159 a-numaux.adb<a-numaux-darwin.adb
1aeee5ad
IS
2160
2161 ifeq ($(strip $(MULTISUBDIR)),/ppc64)
2162 LIBGNAT_TARGET_PAIRS += \
2163 system.ads<system-darwin-ppc64.ads
2164 SO_OPTS += -m64
2165 else
2166 LIBGNAT_TARGET_PAIRS += \
2167 system.ads<system-darwin-ppc.ads
2168 endif
a1ab4c31
AC
2169 endif
2170
2171 TOOLS_TARGET_PAIRS = \
c5ecd6b7
AC
2172 mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb \
2173 indepsw.adb<indepsw-darwin.adb
a1ab4c31
AC
2174
2175 EH_MECHANISM=-gcc
2176 GNATLIB_SHARED = gnatlib-shared-darwin
a1ab4c31
AC
2177 RANLIB = ranlib -c
2178 GMEM_LIB = gmemlib
a1ab4c31
AC
2179 LIBRARY_VERSION := $(LIB_VERSION)
2180 soext = .dylib
207b1744 2181 GCC_LINK_FLAGS=
a1ab4c31
AC
2182endif
2183
2184ifneq ($(EH_MECHANISM),)
2185 LIBGNAT_TARGET_PAIRS += a-exexpr.adb<a-exexpr$(EH_MECHANISM).adb
2186 EXTRA_LIBGNAT_SRCS+=raise$(EH_MECHANISM).c
2187 EXTRA_LIBGNAT_OBJS+=raise$(EH_MECHANISM).o
2188endif
2189
2190# Use the Ada 2005 version of Ada.Exceptions by default, unless specified
2191# explicitly already. The base files (a-except.ad?) are used only for building
2192# the compiler and other basic tools.
2193# These base versions lack Ada 2005 additions which would cause bootstrap
2194# problems if included in the compiler and other basic tools.
2195
42b9d34f 2196ifeq ($(filter a-except%,$(LIBGNAT_TARGET_PAIRS)),)
a1ab4c31
AC
2197 LIBGNAT_TARGET_PAIRS += \
2198 a-except.ads<a-except-2005.ads \
2199 a-except.adb<a-except-2005.adb
2200endif
2201
2202# The runtime library for gnat comprises two directories. One contains the
2203# Ada source files that the compiler (gnat1) needs -- these files are listed
2204# by ADA_INCLUDE_SRCS -- and the other contains the object files and their
2205# corresponding .ali files for the parts written in Ada, libgnat.a for
2206# the parts of the runtime written in C, and libgthreads.a for the pthreads
2207# emulation library. LIBGNAT_OBJS lists the objects that go into libgnat.a,
2208# while GNATRTL_OBJS lists the object files compiled from Ada sources that
2209# go into the directory. The pthreads emulation is built in the threads
2210# subdirectory and copied.
4f08579c
AC
2211LIBGNAT_SRCS = adadecode.c adadecode.h adaint.c adaint.h \
2212 argv.c cio.c cstreams.c errno.c exit.c cal.c ctrl_c.c env.c env.h \
2213 arit64.c raise.h raise.c sysdep.c aux-io.c init.c initialize.c \
c56a9ba4
AC
2214 locales.c seh_init.c final.c tracebak.c tb-alvms.c tb-alvxw.c \
2215 tb-gcc.c expect.c mkdir.c socket.c gsocket.h targext.c $(EXTRA_LIBGNAT_SRCS)
4f08579c
AC
2216
2217LIBGNAT_OBJS = adadecode.o adaint.o argv.o cio.o cstreams.o ctrl_c.o \
2218 errno.o exit.o env.o raise.o sysdep.o aux-io.o init.o initialize.o \
c56a9ba4
AC
2219 locales.o seh_init.o cal.o arit64.o final.o tracebak.o expect.o \
2220 mkdir.o socket.o targext.o $(EXTRA_LIBGNAT_OBJS)
a1ab4c31
AC
2221
2222# NOTE ??? - when the -I option for compiling Ada code is made to work,
2223# the library installation will change and there will be a
2224# GNAT_RTL_SRCS. Right now we count on being able to build GNATRTL_OBJS
2225# from ADA_INCLUDE_SRCS.
2226
2227# GNATRTL_NONTASKING_OBJS and GNATRTL_TASKING_OBJS can be found in
2228# the following include file:
2229
a760c977 2230include $(fsrcdir)/ada/Makefile.rtl
a1ab4c31 2231
4d792549
AC
2232GNATRTL_LINEARALGEBRA_OBJS = a-nlcoar.o a-nllcar.o \
2233 a-nucoar.o i-forbla.o i-forlap.o s-gearop.o
a1ab4c31
AC
2234
2235GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \
2236 $(GNATRTL_LINEARALGEBRA_OBJS) g-trasym.o memtrack.o
2237
2238# Default run time files
2239
2240ADA_INCLUDE_SRCS =\
2241 ada.ads calendar.ads directio.ads gnat.ads interfac.ads ioexcept.ads \
2242 machcode.ads text_io.ads unchconv.ads unchdeal.ads \
2243 sequenio.ads system.ads memtrack.adb \
2244 a-[a-o]*.adb a-[p-z]*.adb a-[a-o]*.ads a-[p-z]*.ads g-*.ad? i-*.ad? \
2245 s-[a-o]*.adb s-[p-z]*.adb s-[a-o]*.ads s-[p-z]*.ads
2246
a7dafa20 2247LIBGNAT=../$(RTSDIR)/libgnat.a
a1ab4c31 2248
e972fd52
AC
2249TOOLS_FLAGS_TO_PASS= \
2250 "CC=$(CC)" \
2251 "CFLAGS=$(CFLAGS)" \
2252 "LDFLAGS=$(LDFLAGS)" \
2253 "ADAFLAGS=$(ADAFLAGS)" \
2254 "INCLUDES=$(INCLUDES_FOR_SUBDIR)"\
2255 "ADA_INCLUDES=$(ADA_INCLUDES) $(ADA_INCLUDES_FOR_SUBDIR)"\
2256 "libsubdir=$(libsubdir)" \
2257 "exeext=$(exeext)" \
2258 "fsrcdir=$(fsrcdir)" \
2259 "srcdir=$(fsrcdir)" \
2260 "TOOLS_LIBS=$(TOOLS_LIBS) $(TGT_LIB)" \
2261 "GNATMAKE=$(GNATMAKE)" \
2262 "GNATLINK=$(GNATLINK)" \
2263 "GNATBIND=$(GNATBIND)"
2264
207b1744 2265GCC_LINK=$(CC) $(GCC_LINK_FLAGS) $(ADA_INCLUDES)
a1ab4c31 2266
e972fd52
AC
2267# Build directory for the tools. Let's copy the target-dependent
2268# sources using the same mechanism as for gnatlib. The other sources are
2269# accessed using the vpath directive below
2270# Note: dummy target, stamp-tools is mainly handled by gnattools.
2271
2272../stamp-tools:
2273 touch ../stamp-tools
2274
a1ab4c31
AC
2275# when compiling the tools, the runtime has to be first on the path so that
2276# it hides the runtime files lying with the rest of the sources
2277ifeq ($(TOOLSCASE),native)
a7dafa20
LG
2278 vpath %.ads ../$(RTSDIR) ../
2279 vpath %.adb ../$(RTSDIR) ../
2280 vpath %.c ../$(RTSDIR) ../
2281 vpath %.h ../$(RTSDIR) ../
a1ab4c31
AC
2282endif
2283
2284# in the cross tools case, everything is compiled with the native
2285# gnatmake/link. Therefore only -I needs to be modified in ADA_INCLUDES
2286ifeq ($(TOOLSCASE),cross)
2287 vpath %.ads ../
2288 vpath %.adb ../
2289 vpath %.c ../
2290 vpath %.h ../
2291endif
2292
e972fd52
AC
2293# gnatmake/link tools cannot always be built with gnatmake/link for bootstrap
2294# reasons: gnatmake should be built with a recent compiler, a recent compiler
2295# may not generate ALI files compatible with an old gnatmake so it is important
2296# to be able to build gnatmake without a version of gnatmake around. Once
2297# everything has been compiled once, gnatmake can be recompiled with itself
2298# (see target gnattools1-re)
2299gnattools1: ../stamp-tools ../stamp-gnatlib-$(RTSDIR)
2300 $(MAKE) -C tools -f ../Makefile $(TOOLS_FLAGS_TO_PASS) \
2301 TOOLSCASE=native \
2302 ../../gnatmake$(exeext) ../../gnatlink$(exeext)
2303
2304# gnatmake/link can be built with recent gnatmake/link if they are available.
2305# This is especially convenient for building cross tools or for rebuilding
2306# the tools when the original bootstrap has already be done.
2307gnattools1-re: ../stamp-tools
2308 $(MAKE) -C tools -f ../Makefile $(TOOLS_FLAGS_TO_PASS) \
2309 TOOLSCASE=cross INCLUDES="" gnatmake-re gnatlink-re
2310
2311# these tools are built with gnatmake & are common to native and cross
2312gnattools2: ../stamp-tools
2313 $(MAKE) -C tools -f ../Makefile $(TOOLS_FLAGS_TO_PASS) \
2314 TOOLSCASE=native common-tools $(EXTRA_GNATTOOLS)
2315
2316# those tools are only built for the cross version
2317gnattools4: ../stamp-tools
2318ifeq ($(ENABLE_VXADDR2LINE),true)
2319 $(MAKE) -C tools -f ../Makefile $(TOOLS_FLAGS_TO_PASS) \
2320 TOOLSCASE=cross top_buildir=../../.. \
2321 ../../vxaddr2line$(exeext)
2322endif
2323
2324common-tools: ../stamp-tools
e8e38f35 2325 $(GNATMAKE) -j0 -c -b $(ADA_INCLUDES) \
a1ab4c31
AC
2326 --GNATBIND="$(GNATBIND)" --GCC="$(CC) $(ALL_ADAFLAGS)" \
2327 gnatchop gnatcmd gnatkr gnatls gnatprep gnatxref gnatfind gnatname \
2328 gnatclean -bargs $(ADA_INCLUDES) $(GNATBIND_FLAGS)
2329 $(GNATLINK) -v gnatcmd -o ../../gnat$(exeext) \
2330 --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2331 $(GNATLINK) -v gnatchop -o ../../gnatchop$(exeext) \
2332 --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2333 $(GNATLINK) -v gnatkr -o ../../gnatkr$(exeext) \
2334 --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2335 $(GNATLINK) -v gnatls -o ../../gnatls$(exeext) \
2336 --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2337 $(GNATLINK) -v gnatprep -o ../../gnatprep$(exeext) \
2338 --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2339 $(GNATLINK) -v gnatxref -o ../../gnatxref$(exeext) \
2340 --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2341 $(GNATLINK) -v gnatfind -o ../../gnatfind$(exeext) \
2342 --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2343 $(GNATLINK) -v gnatname -o ../../gnatname$(exeext) \
2344 --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2345 $(GNATLINK) -v gnatclean -o ../../gnatclean$(exeext) \
2346 --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2347
e972fd52 2348../../gnatsym$(exeext): ../stamp-tools
a1ab4c31
AC
2349 $(GNATMAKE) -c $(ADA_INCLUDES) gnatsym --GCC="$(CC) $(ALL_ADAFLAGS)"
2350 $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatsym
2351 $(GNATLINK) -v gnatsym -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2352
e972fd52 2353../../gnatdll$(exeext): ../stamp-tools
a1ab4c31
AC
2354 $(GNATMAKE) -c $(ADA_INCLUDES) gnatdll --GCC="$(CC) $(ALL_ADAFLAGS)"
2355 $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatdll
2356 $(GNATLINK) -v gnatdll -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2357
e972fd52 2358../../vxaddr2line$(exeext): ../stamp-tools targext.o
a1ab4c31
AC
2359 $(GNATMAKE) -c $(ADA_INCLUDES) vxaddr2line --GCC="$(CC) $(ALL_ADAFLAGS)"
2360 $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) vxaddr2line
2361 $(GNATLINK) -v vxaddr2line -o $@ --GCC="$(GCC_LINK)" targext.o $(CLIB)
2362
e972fd52 2363gnatmake-re: ../stamp-tools link.o targext.o
e8e38f35
AC
2364 $(GNATMAKE) -j0 $(ADA_INCLUDES) -u sdefault --GCC="$(CC) $(MOST_ADA_FLAGS)"
2365 $(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatmake --GCC="$(CC) $(ALL_ADAFLAGS)"
a1ab4c31
AC
2366 $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatmake
2367 $(GNATLINK) -v gnatmake -o ../../gnatmake$(exeext) \
2368 --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2369
2370# Note the use of the "mv" command in order to allow gnatlink to be linked with
2371# with the former version of gnatlink itself which cannot override itself.
e8e38f35
AC
2372# gnatlink-re cannot be run at the same time as gnatmake-re, hence the
2373# dependency
e972fd52 2374gnatlink-re: ../stamp-tools link.o targext.o gnatmake-re
e8e38f35 2375 $(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatlink --GCC="$(CC) $(ALL_ADAFLAGS)"
a1ab4c31
AC
2376 $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatlink
2377 $(GNATLINK) -v gnatlink -o ../../gnatlinknew$(exeext) \
2378 --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
2379 $(MV) ../../gnatlinknew$(exeext) ../../gnatlink$(exeext)
2380
2381# Needs to be built with CC=gcc
2382# Since the RTL should be built with the latest compiler, remove the
2383# stamp target in the parent directory whenever gnat1 is rebuilt
2384
2385# Likewise for the tools
2386../../gnatmake$(exeext): $(P) b_gnatm.o link.o targext.o $(GNATMAKE_OBJS)
2387 $(GCC_LINK) $(ALL_CFLAGS) $(LDFLAGS) -o $@ b_gnatm.o $(GNATMAKE_OBJS) \
2388 $(TOOLS_LIBS)
2389
2390../../gnatlink$(exeext): $(P) b_gnatl.o link.o targext.o $(GNATLINK_OBJS)
2391 $(GCC_LINK) $(ALL_CFLAGS) $(LDFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) \
2392 $(TOOLS_LIBS)
2393
a7dafa20
LG
2394../stamp-gnatlib-$(RTSDIR):
2395 @if [ ! -f stamp-gnatlib-$(RTSDIR) ] ; \
a1ab4c31
AC
2396 then \
2397 $(ECHO) You must first build the GNAT library: make gnatlib; \
2398 false; \
2399 else \
2400 true; \
2401 fi
2402
a7dafa20 2403install-gnatlib: ../stamp-gnatlib-$(RTSDIR)
a1ab4c31
AC
2404# Create the directory before deleting it, in case the directory is
2405# a list of directories (as it may be on VMS). This ensures we are
2406# deleting the right one.
2407 -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
2408 -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
2409 $(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
2410 $(RMDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
2411 -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
2412 -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
a7dafa20 2413 for file in $(RTSDIR)/*.ali; do \
a1ab4c31
AC
2414 $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
2415 done
a7dafa20
LG
2416 -$(INSTALL_DATA) $(RTSDIR)/g-trasym$(objext) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
2417 -cd $(RTSDIR); for file in *$(arext);do \
a1ab4c31
AC
2418 $(INSTALL_DATA) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
2419 $(RANLIB_FOR_TARGET) $(DESTDIR)$(ADA_RTL_OBJ_DIR)/$$file; \
2420 done
2421 -$(foreach file, $(EXTRA_ADALIB_FILES), \
a7dafa20 2422 $(INSTALL_DATA_DATE) $(RTSDIR)/$(file) $(DESTDIR)$(ADA_RTL_OBJ_DIR) && \
a1ab4c31
AC
2423 ) true
2424# Install the shared libraries, if any, using $(INSTALL) instead
2425# of $(INSTALL_DATA). The latter may force a mode inappropriate
2426# for shared libraries on some targets, e.g. on HP-UX where the x
2427# permission is required.
059caa3e
NS
2428# Also install the .dSYM directories if they exist (these directories
2429# contain the debug information for the shared libraries on darwin)
a1ab4c31 2430 for file in gnat gnarl; do \
a7dafa20
LG
2431 if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \
2432 $(INSTALL) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
a1ab4c31
AC
2433 $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
2434 fi; \
a7dafa20 2435 if [ -f $(RTSDIR)/lib$${file}$(soext) ]; then \
a1ab4c31
AC
2436 $(LN_S) lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
2437 $(DESTDIR)$(ADA_RTL_OBJ_DIR)/lib$${file}$(soext); \
2438 fi; \
d88a51b1
AC
2439 if [ -d $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM ]; then \
2440 $(CP) -r $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM \
059caa3e
NS
2441 $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
2442 fi; \
a1ab4c31
AC
2443 done
2444# This copy must be done preserving the date on the original file.
a7dafa20 2445 for file in $(RTSDIR)/*.ad?; do \
a1ab4c31
AC
2446 $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_INCLUDE_DIR); \
2447 done
2448 cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb
2449 cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads
2450
a7dafa20
LG
2451../stamp-gnatlib2-$(RTSDIR):
2452 $(RM) $(RTSDIR)/s-*.ali
2453 $(RM) $(RTSDIR)/s-*$(objext)
2454 $(RM) $(RTSDIR)/a-*.ali
2455 $(RM) $(RTSDIR)/a-*$(objext)
2456 $(RM) $(RTSDIR)/*.ali
2457 $(RM) $(RTSDIR)/*$(objext)
2458 $(RM) $(RTSDIR)/*$(arext)
2459 $(RM) $(RTSDIR)/*$(soext)
2460 touch ../stamp-gnatlib2-$(RTSDIR)
2461 $(RM) ../stamp-gnatlib-$(RTSDIR)
a1ab4c31
AC
2462
2463# NOTE: The $(foreach ...) commands assume ";" is the valid separator between
2464# successive target commands. Although the Gnu make documentation
2465# implies this is true on all systems, I suspect it may not be, So care
2466# has been taken to allow a sed script to look for ";)" and substitue
2467# for ";" the appropriate character in the range of lines below
2468# beginning with "GNULLI Begin" and ending with "GNULLI End"
2469
2470# GNULLI Begin ###########################################################
2471
a7dafa20
LG
2472../stamp-gnatlib1-$(RTSDIR): Makefile ../stamp-gnatlib2-$(RTSDIR)
2473 $(RMDIR) $(RTSDIR)
2474 $(MKDIR) $(RTSDIR)
2475 $(CHMOD) u+w $(RTSDIR)
a1ab4c31
AC
2476# Copy target independent sources
2477 $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS), \
a760c977 2478 $(LN_S) $(fsrcpfx)ada/$(f) $(RTSDIR) ;) true
a1ab4c31
AC
2479# Remove files to be replaced by target dependent sources
2480 $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
a7dafa20 2481 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR))))
cb1a6fae
AC
2482 for f in $(RTSDIR)/*-*-*.ads $(RTSDIR)/*-*-*.adb; do \
2483 case "$$f" in \
2484 $(RTSDIR)/s-stratt-*) ;; \
2485 *) $(RM) $$f ;; \
2486 esac; \
2487 done
a1ab4c31
AC
2488# Copy new target dependent sources
2489 $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
a760c977 2490 $(LN_S) $(fsrcpfx)ada/$(word 2,$(subst <, ,$(PAIR))) \
a7dafa20 2491 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));)
e1876cac 2492# Copy tsystem.h
cdc4cc65 2493 $(CP) $(srcdir)/tsystem.h $(RTSDIR)
2d4d7e29
TQ
2494# Copy generated target dependent sources
2495 $(RM) $(RTSDIR)/s-oscons.ads
15d2e2d4 2496 (cd $(RTSDIR); $(LN_S) ../s-oscons.ads s-oscons.ads)
a7dafa20
LG
2497 $(RM) ../stamp-gnatlib-$(RTSDIR)
2498 touch ../stamp-gnatlib1-$(RTSDIR)
a1ab4c31
AC
2499
2500# GNULLI End #############################################################
2501
2502# Don't use semicolon separated shell commands that involve list expansions.
2503# The semicolon triggers a call to DCL on VMS and DCL can't handle command
2504# line lengths in excess of 256 characters.
a7dafa20 2505# Example: cd $(RTSDIR); ar rc libfoo.a $(LONG_LIST_OF_OBJS)
a1ab4c31
AC
2506# is guaranteed to overflow the buffer.
2507
a7dafa20
LG
2508gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR)
2509 $(MAKE) -C $(RTSDIR) \
a1ab4c31 2510 CC="`echo \"$(GCC_FOR_TARGET)\" \
005ae225 2511 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \
a1ab4c31
AC
2512 INCLUDES="$(INCLUDES_FOR_SUBDIR) -I./../.." \
2513 CFLAGS="$(GNATLIBCFLAGS_FOR_C)" \
2514 FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
2515 srcdir=$(fsrcdir) \
2516 -f ../Makefile $(LIBGNAT_OBJS)
a7dafa20 2517 $(MAKE) -C $(RTSDIR) \
a1ab4c31 2518 CC="`echo \"$(GCC_FOR_TARGET)\" \
005ae225 2519 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \
a1ab4c31
AC
2520 ADA_INCLUDES="" \
2521 CFLAGS="$(GNATLIBCFLAGS)" \
2522 ADAFLAGS="$(GNATLIBFLAGS)" \
2523 FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
2524 srcdir=$(fsrcdir) \
2525 -f ../Makefile \
2526 $(GNATRTL_OBJS)
a7dafa20
LG
2527 $(RM) $(RTSDIR)/libgnat$(arext) $(RTSDIR)/libgnarl$(arext)
2528 $(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgnat$(arext) \
2529 $(addprefix $(RTSDIR)/,$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS))
a7dafa20
LG
2530 $(RANLIB_FOR_TARGET) $(RTSDIR)/libgnat$(arext)
2531 $(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgnarl$(arext) \
2532 $(addprefix $(RTSDIR)/,$(GNATRTL_TASKING_OBJS))
2533 $(RANLIB_FOR_TARGET) $(RTSDIR)/libgnarl$(arext)
2534 $(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgnala$(arext) \
2535 $(addprefix $(RTSDIR)/,$(GNATRTL_LINEARALGEBRA_OBJS))
2536 $(RANLIB_FOR_TARGET) $(RTSDIR)/libgnala$(arext)
a1ab4c31 2537 ifeq ($(GMEM_LIB),gmemlib)
a7dafa20
LG
2538 $(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgmem$(arext) \
2539 $(RTSDIR)/memtrack.o
2540 $(RANLIB_FOR_TARGET) $(RTSDIR)/libgmem$(arext)
a1ab4c31 2541 endif
a7dafa20
LG
2542 $(CHMOD) a-wx $(RTSDIR)/*.ali
2543 touch ../stamp-gnatlib-$(RTSDIR)
a1ab4c31
AC
2544
2545# Warning: this target assumes that LIBRARY_VERSION has been set correctly.
2546gnatlib-shared-default:
2547 $(MAKE) $(FLAGS_TO_PASS) \
2548 GNATLIBFLAGS="$(GNATLIBFLAGS)" \
e3aa9eba 2549 GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
2f18d9af 2550 GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
a7dafa20 2551 MULTISUBDIR="$(MULTISUBDIR)" \
a1ab4c31
AC
2552 THREAD_KIND="$(THREAD_KIND)" \
2553 gnatlib
a7dafa20 2554 $(RM) $(RTSDIR)/libgna*$(soext)
28d711bf
NR
2555 cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
2556 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \
e3aa9eba 2557 $(PICFLAG_FOR_TARGET) \
a1ab4c31
AC
2558 -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
2559 $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
2560 $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
2561 $(MISCLIB) -lm
28d711bf
NR
2562 cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
2563 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \
e3aa9eba 2564 $(PICFLAG_FOR_TARGET) \
a1ab4c31
AC
2565 -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
2566 $(GNATRTL_TASKING_OBJS) \
2567 $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
2568 $(THREADSLIB)
a7dafa20 2569 cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
a1ab4c31 2570 libgnat$(soext)
a7dafa20 2571 cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
a1ab4c31
AC
2572 libgnarl$(soext)
2573
2574gnatlib-shared-dual:
2575 $(MAKE) $(FLAGS_TO_PASS) \
2576 GNATLIBFLAGS="$(GNATLIBFLAGS)" \
2577 GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
2f18d9af 2578 GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
a7dafa20 2579 MULTISUBDIR="$(MULTISUBDIR)" \
a1ab4c31
AC
2580 THREAD_KIND="$(THREAD_KIND)" \
2581 gnatlib-shared-default
a7dafa20
LG
2582 $(MV) $(RTSDIR)/libgna*$(soext) .
2583 $(RM) ../stamp-gnatlib2-$(RTSDIR)
a1ab4c31
AC
2584 $(MAKE) $(FLAGS_TO_PASS) \
2585 GNATLIBFLAGS="$(GNATLIBFLAGS)" \
2586 GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
2f18d9af 2587 GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
a7dafa20 2588 MULTISUBDIR="$(MULTISUBDIR)" \
a1ab4c31
AC
2589 THREAD_KIND="$(THREAD_KIND)" \
2590 gnatlib
a7dafa20 2591 $(MV) libgna*$(soext) $(RTSDIR)
a1ab4c31
AC
2592
2593gnatlib-shared-dual-win32:
2594 $(MAKE) $(FLAGS_TO_PASS) \
2595 GNATLIBFLAGS="$(GNATLIBFLAGS)" \
e3aa9eba 2596 GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
2f18d9af 2597 GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
a7dafa20 2598 MULTISUBDIR="$(MULTISUBDIR)" \
a1ab4c31
AC
2599 THREAD_KIND="$(THREAD_KIND)" \
2600 gnatlib-shared-win32
a7dafa20
LG
2601 $(MV) $(RTSDIR)/libgna*$(soext) .
2602 $(RM) ../stamp-gnatlib2-$(RTSDIR)
a1ab4c31
AC
2603 $(MAKE) $(FLAGS_TO_PASS) \
2604 GNATLIBFLAGS="$(GNATLIBFLAGS)" \
2605 GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
2f18d9af 2606 GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
a7dafa20 2607 MULTISUBDIR="$(MULTISUBDIR)" \
a1ab4c31
AC
2608 THREAD_KIND="$(THREAD_KIND)" \
2609 gnatlib
a7dafa20 2610 $(MV) libgna*$(soext) $(RTSDIR)
a1ab4c31
AC
2611
2612# ??? we need to add the option to support auto-import of arrays/records to
2613# the GNATLIBFLAGS when this will be supported by GNAT. At this point we will
2614# use the gnatlib-shared-dual-win32 target to build the GNAT runtimes on
2615# Windows.
2616gnatlib-shared-win32:
2617 $(MAKE) $(FLAGS_TO_PASS) \
2618 GNATLIBFLAGS="$(GNATLIBFLAGS)" \
e3aa9eba 2619 GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
2f18d9af 2620 GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
a7dafa20 2621 MULTISUBDIR="$(MULTISUBDIR)" \
a1ab4c31
AC
2622 THREAD_KIND="$(THREAD_KIND)" \
2623 gnatlib
a7dafa20 2624 $(RM) $(RTSDIR)/libgna*$(soext)
28d711bf
NR
2625 cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
2626 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \
e3aa9eba 2627 $(PICFLAG_FOR_TARGET) \
a1ab4c31
AC
2628 -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
2629 $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
2630 $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
28d711bf
NR
2631 cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
2632 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \
e3aa9eba 2633 $(PICFLAG_FOR_TARGET) \
a1ab4c31
AC
2634 -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
2635 $(GNATRTL_TASKING_OBJS) \
2636 $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
2637 $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
2638
2639gnatlib-shared-darwin:
2640 $(MAKE) $(FLAGS_TO_PASS) \
2641 GNATLIBFLAGS="$(GNATLIBFLAGS)" \
e3aa9eba 2642 GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
2f18d9af 2643 GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) -fno-common" \
a7dafa20 2644 MULTISUBDIR="$(MULTISUBDIR)" \
a1ab4c31
AC
2645 THREAD_KIND="$(THREAD_KIND)" \
2646 gnatlib
a7dafa20 2647 $(RM) $(RTSDIR)/libgnat$(soext) $(RTSDIR)/libgnarl$(soext)
28d711bf 2648 cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
e3aa9eba 2649 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -dynamiclib $(PICFLAG_FOR_TARGET) \
a1ab4c31
AC
2650 -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
2651 $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
2652 $(SO_OPTS) \
5c6a4559 2653 -Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
f61fc398 2654 $(MISCLIB)
28d711bf 2655 cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
e3aa9eba 2656 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -dynamiclib $(PICFLAG_FOR_TARGET) \
a1ab4c31
AC
2657 -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
2658 $(GNATRTL_TASKING_OBJS) \
2659 $(SO_OPTS) \
5c6a4559 2660 -Wl,-install_name,@rpath/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
a1ab4c31 2661 $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
a7dafa20 2662 cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
a1ab4c31 2663 libgnat$(soext)
a7dafa20 2664 cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
a1ab4c31 2665 libgnarl$(soext)
d88a51b1
AC
2666 cd $(RTSDIR); dsymutil libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
2667 cd $(RTSDIR); dsymutil libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)
a1ab4c31
AC
2668
2669gnatlib-shared-vms:
2670 $(MAKE) $(FLAGS_TO_PASS) \
2671 GNATLIBFLAGS="$(GNATLIBFLAGS)" \
2672 GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
2f18d9af 2673 GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
a7dafa20 2674 MULTISUBDIR="$(MULTISUBDIR)" \
a1ab4c31
AC
2675 THREAD_KIND="$(THREAD_KIND)" \
2676 gnatlib
a7dafa20
LG
2677 $(RM) $(RTSDIR)/libgna*$(soext)
2678 cd $(RTSDIR) && \
a1ab4c31
AC
2679 ../../gnatsym -s SYMVEC_$$$$.opt \
2680 $(LIBGNAT_OBJS) $(GNATRTL_NONTASKING_OBJS) && \
2681 ../../xgcc -g -B../../ -shared -shared-libgcc \
2682 -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) libgnat.a \
2683 sys\$$library:trace.exe \
2684 --for-linker=/noinform \
2685 --for-linker=SYMVEC_$$$$.opt \
2686 --for-linker=gsmatch=equal,$(GSMATCH_VERSION)
a7dafa20 2687 cd $(RTSDIR) && \
a1ab4c31
AC
2688 ../../gnatsym -s SYMVEC_$$$$.opt \
2689 $(GNATRTL_TASKING_OBJS) && \
2690 ../../xgcc -g -B../../ -shared -shared-libgcc \
2691 -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
2692 libgnarl.a libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
2693 sys\$$library:trace.exe \
2694 --for-linker=/noinform \
2695 --for-linker=SYMVEC_$$$$.opt \
2696 --for-linker=gsmatch=equal,$(GSMATCH_VERSION)
2697
2698gnatlib-shared:
2699 $(MAKE) $(FLAGS_TO_PASS) \
2700 GNATLIBFLAGS="$(GNATLIBFLAGS)" \
2701 GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
2f18d9af 2702 GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
a7dafa20 2703 MULTISUBDIR="$(MULTISUBDIR)" \
a1ab4c31 2704 THREAD_KIND="$(THREAD_KIND)" \
e3aa9eba 2705 PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \
a1ab4c31
AC
2706 $(GNATLIB_SHARED)
2707
2708gnatlib-sjlj:
90d28ec7
AC
2709 $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="" \
2710 THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR)
a7dafa20
LG
2711 sed -e 's/ZCX_By_Default.*/ZCX_By_Default : constant Boolean := False;/' $(RTSDIR)/system.ads > $(RTSDIR)/s.ads
2712 $(MV) $(RTSDIR)/s.ads $(RTSDIR)/system.ads
a1ab4c31
AC
2713 $(MAKE) $(FLAGS_TO_PASS) \
2714 EH_MECHANISM="" \
2715 GNATLIBFLAGS="$(GNATLIBFLAGS)" \
2716 GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
2f18d9af 2717 GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
a7dafa20 2718 MULTISUBDIR="$(MULTISUBDIR)" \
a1ab4c31 2719 THREAD_KIND="$(THREAD_KIND)" \
e3aa9eba 2720 PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib
a1ab4c31
AC
2721
2722gnatlib-zcx:
90d28ec7 2723 $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="-gcc" \
e1876cac 2724 THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR)
a7dafa20
LG
2725 sed -e 's/ZCX_By_Default.*/ZCX_By_Default : constant Boolean := True;/' $(RTSDIR)/system.ads > $(RTSDIR)/s.ads
2726 $(MV) $(RTSDIR)/s.ads $(RTSDIR)/system.ads
a1ab4c31
AC
2727 $(MAKE) $(FLAGS_TO_PASS) \
2728 EH_MECHANISM="-gcc" \
2729 GNATLIBFLAGS="$(GNATLIBFLAGS)" \
2730 GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
2f18d9af 2731 GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
a7dafa20 2732 MULTISUBDIR="$(MULTISUBDIR)" \
a1ab4c31 2733 THREAD_KIND="$(THREAD_KIND)" \
e3aa9eba 2734 PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib
a1ab4c31 2735
a1ab4c31
AC
2736# Compiling object files from source files.
2737
2738# Note that dependencies on obstack.h are not written
2739# because that file is not part of GCC.
2740# Dependencies on gvarargs.h are not written
2741# because all that file does, when not compiling with GCC,
2742# is include the system varargs.h.
2743
8ad150f6
TG
2744b_gnatl.adb : $(GNATLINK_OBJS)
2745 $(GNATBIND) $(ADA_INCLUDES) -o b_gnatl.adb gnatlink.ali
a1ab4c31 2746
8ad150f6
TG
2747b_gnatl.o : b_gnatl.adb
2748 $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN \
2749 $< $(OUTPUT_OPTION)
2750
2751b_gnatm.adb : $(GNATMAKE_OBJS)
2752 $(GNATBIND) $(ADA_INCLUDES) -o b_gnatm.adb gnatmake.ali
2753
2754b_gnatm.o : b_gnatm.adb
2755 $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN \
2756 $< $(OUTPUT_OPTION)
a1ab4c31
AC
2757
2758ADA_INCLUDE_DIR = $(libsubdir)/adainclude
2759ADA_RTL_OBJ_DIR = $(libsubdir)/adalib
2760
e1876cac
EB
2761# Special flags
2762
a1ab4c31
AC
2763# force no sibling call optimization on s-traceb.o so the number of stack
2764# frames to be skipped when computing a call chain is not modified by
e1876cac 2765# optimization.
a1ab4c31 2766
e1876cac 2767s-traceb.o : s-traceb.adb s-traceb.ads
a1ab4c31 2768 $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \
e1876cac 2769 $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
a1ab4c31
AC
2770
2771# force debugging information on s-tasdeb.o so that it is always
2772# possible to set conditional breakpoints on tasks.
2773
2774s-tasdeb.o : s-tasdeb.adb s-tasdeb.ads
2775 $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \
2776 $< $(OUTPUT_OPTION)
2777
e1876cac
EB
2778# force debugging information on s-vaflop.o so that it is always
2779# possible to call the VAX float debug print routines.
2780# force at least -O so that the inline assembly works.
a1ab4c31 2781
e1876cac
EB
2782s-vaflop.o : s-vaflop.adb s-vaflop.ads
2783 $(CC) -c -O $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
2784 $< $(OUTPUT_OPTION)
a1ab4c31 2785
e1876cac
EB
2786# force no function reordering on a-except.o because of the exclusion bounds
2787# mechanism (see the source file for more detailed information).
a1ab4c31
AC
2788# force debugging information on a-except.o so that it is always
2789# possible to set conditional breakpoints on exceptions.
2790# use -O1 otherwise gdb isn't able to get a full backtrace on mips targets.
2791
2792a-except.o : a-except.adb a-except.ads
2793 $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O1 -fno-inline \
2794 $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
2795
4d792549 2796# compile s-excdeb.o without optimization and with debug info to let the
a1ab4c31
AC
2797# debugger set breakpoints and inspect subprogram parameters on exception
2798# related events.
2799
4d792549 2800s-excdeb.o : s-excdeb.adb s-excdeb.ads s-except.ads
a1ab4c31
AC
2801 $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \
2802 $< $(OUTPUT_OPTION)
2803
2804# force debugging information on s-assert.o so that it is always
2805# possible to set breakpoint on assert failures.
2806
e1876cac
EB
2807s-assert.o : s-assert.adb s-assert.ads
2808 $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
a1ab4c31
AC
2809 $< $(OUTPUT_OPTION)
2810
e1876cac
EB
2811# force debugging information on a-tags.o so that the debugger can find
2812# the description of Ada.Tags.Type_Specific_Data.
2813
2814a-tags.o : a-tags.adb a-tags.ads
2815 $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
2816 $< $(OUTPUT_OPTION)
2817
2818# need to keep the frame pointer in this file to pop the stack properly on
2819# some targets.
2820tracebak.o : tracebak.c tb-alvms.c tb-alvxw.c tb-gcc.c
2821 $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) \
2822 $(INCLUDES) -fno-omit-frame-pointer $< $(OUTPUT_OPTION)
2823
a1ab4c31
AC
2824adadecode.o : adadecode.c adadecode.h
2825aux-io.o : aux-io.c
2826argv.o : argv.c
2827cal.o : cal.c
2828deftarg.o : deftarg.c
2829errno.o : errno.c
2830exit.o : adaint.h exit.c
2831expect.o : expect.c
2832final.o : final.c
c56a9ba4 2833locales.o : locales.c
a1ab4c31
AC
2834mkdir.o : mkdir.c
2835socket.o : socket.c gsocket.h
2836sysdep.o : sysdep.c
a1ab4c31
AC
2837raise.o : raise.c raise.h
2838vx_stack_info.o : vx_stack_info.c
2839
e1876cac
EB
2840raise-gcc.o : raise-gcc.c raise.h
2841 $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
f446d60e 2842 -iquote $(srcdir) -iquote $(srcdir)/../libgcc \
e1876cac
EB
2843 $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
2844
a1ab4c31 2845cio.o : cio.c
7980bfb8 2846 $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
d88a51b1 2847 $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
a1ab4c31
AC
2848
2849init.o : init.c adaint.h raise.h
7980bfb8 2850 $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
d88a51b1 2851 $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
a1ab4c31
AC
2852
2853initialize.o : initialize.c raise.h
7980bfb8 2854 $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
d88a51b1 2855 $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
a1ab4c31 2856
e1876cac 2857link.o : link.c
7980bfb8 2858 $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
a1ab4c31
AC
2859 $(ALL_CPPFLAGS) $(INCLUDES_FOR_SUBDIR) \
2860 $< $(OUTPUT_OPTION)
2861
e1876cac
EB
2862targext.o : targext.c
2863 $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
2864 -iquote $(srcdir) \
2865 $(ALL_CPPFLAGS) $(INCLUDES_FOR_SUBDIR) \
2866 $< $(OUTPUT_OPTION)
a1ab4c31
AC
2867
2868# In GNU Make, ignore whether `stage*' exists.
2869.PHONY: stage1 stage2 stage3 stage4 clean realclean TAGS bootstrap
2870.PHONY: risky-stage1 risky-stage2 risky-stage3 risky-stage4
2871
2872force: