URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [gcc-interface/] [Makefile.in] - Rev 706
Compare with Previous | Blame | View Log
# Makefile for GNU Ada Compiler (GNAT).# Copyright (C) 1994-2012 Free Software Foundation, Inc.#This file is part of GCC.#GCC is free software; you can redistribute it and/or modify#it under the terms of the GNU General Public License as published by#the Free Software Foundation; either version 3, or (at your option)#any later version.#GCC is distributed in the hope that it will be useful,#but WITHOUT ANY WARRANTY; without even the implied warranty of#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the#GNU General Public License for more details.#You should have received a copy of the GNU General Public License#along with GCC; see the file COPYING3. If not see#<http://www.gnu.org/licenses/>.# The makefile built from this file lives in the language subdirectory.# Its purpose is to provide support for:## 1) recursion where necessary, and only then (building .o's), and# 2) building and debugging cc1 from the language subdirectory, and# 3) nothing else.## The parent makefile handles all other chores, with help from the# language makefile fragment, of course.## The targets for external use are:# all, TAGS, ???mostlyclean, ???clean.# This makefile will only work with Gnu make.# The rules are written assuming a minimum subset of tools are available:## Required:# MAKE: Only Gnu make will work.# MV: Must accept (at least) one, maybe wildcard, source argument,# a file or directory destination, and support creation/# modification date preservation. Gnu mv -f works.# RM: Must accept an arbitrary number of space separated file# arguments, or one wildcard argument. Gnu rm works.# RMDIR: Must delete a directory and all its contents. Gnu rm -rf works.# ECHO: Must support command line redirection. Any Unix-like# shell will typically provide this, otherwise a custom version# is trivial to write.# AR: Gnu ar works.# MKDIR: Gnu mkdir works.# CHMOD: Gnu chmod works.# true: Does nothing and returns a normal successful return code.# pwd: Prints the current directory on stdout.# cd: Change directory.## Optional:# BISON: Gnu bison works.# FLEX: Gnu flex works.# Other miscellaneous tools for obscure targets.# Suppress smart makes who think they know how to automake Yacc files.y.c:# Variables that exist for you to override.# See below for how to change them for certain systems.# Various ways of specifying flags for compilations:# CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.# BOOT_CFLAGS is the value of CFLAGS to pass# to the stage2 and stage3 compilationsCFLAGS = -gBOOT_CFLAGS = -O $(CFLAGS)# These exists to be overridden by the t-* files, respectively.T_CFLAGS =CC = ccBISON = bisonBISONFLAGS =ECHO = echoLEX = flexLEXFLAGS =CHMOD = chmodLN = lnLN_S = ln -sCP = cp -pMV = mv -fRM = rm -fRMDIR = rm -rfMKDIR = mkdir -pAR = arAR_FLAGS = rcLS = lsRANLIB = @RANLIB@RANLIB_FLAGS = @ranlib_flags@AWK = @AWK@COMPILER = $(CC)COMPILER_FLAGS = $(CFLAGS)SHELL = @SHELL@PWD_COMMAND = $${PWDCMD-pwd}# How to copy preserving the dateINSTALL_DATA_DATE = cp -pMAKEINFO = makeinfoTEXI2DVI = texi2dviTEXI2PDF = texi2pdfGNATBIND_FLAGS = -static -xADA_CFLAGS =ADAFLAGS = -W -Wall -gnatpg -gnataFORCE_DEBUG_ADAFLAGS = -gNO_SIBLING_ADAFLAGS = -fno-optimize-sibling-callsNO_REORDER_ADAFLAGS = -fno-toplevel-reorderGNATLIBFLAGS = -W -Wall -gnatpg -nostdincGNATLIBCFLAGS = -g -O2PICFLAG_FOR_TARGET = @PICFLAG_FOR_TARGET@# Pretend that _Unwind_GetIPInfo is available for the target by default. This# should be autodetected during the configuration of libada and passed down to# here, but we need something for --disable-libada and hope for the best.GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET) \-fexceptions -DIN_RTS -DHAVE_GETIPINFOALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)THREAD_KIND = nativeTHREADSLIB =GMEM_LIB =MISCLIB =OUTPUT_OPTION = @OUTPUT_OPTION@objext = .oexeext =arext = .asoext = .soshext =hyphen = -# Define this as & to perform parallel make on a Sequent.# Note that this has some bugs, and it seems currently necessary# to compile all the gen* files first by hand to avoid erroneous results.P =# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.# It specifies -B./.# It also specifies -B$(tooldir)/ to find as and ld for a cross compiler.GCC_CFLAGS = $(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS)# Tools to use when building a cross-compiler.# These are used because `configure' appends `cross-make'# to the makefile when making a cross-compiler.# We don't use cross-make. Instead we use the tools from the build tree,# if they are available.# program_transform_name and objdir are set by configure.in.program_transform_name =objdir = .target_alias=@target_alias@target=@target@xmake_file = @xmake_file@tmake_file = @tmake_file@host_canonical=@host@target_cpu_default=@target_cpu_default@#version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < $(srcdir)/version.c`#mainversion=`sed -e 's/.*\"\([0-9]*\.[0-9]*\).*/\1/' < $(srcdir)/version.c`# Directory where sources are, from where we are.VPATH = $(srcdir)/adafsrcdir := $(shell cd $(srcdir);${PWD_COMMAND})fsrcpfx := $(shell cd $(srcdir);${PWD_COMMAND})/fcurdir := $(shell ${PWD_COMMAND})fcurpfx := $(shell ${PWD_COMMAND})/# Top build directory, relative to here.top_builddir = ../..# Internationalization library.LIBINTL = @LIBINTL@LIBINTL_DEP = @LIBINTL_DEP@# Character encoding conversion library.LIBICONV = @LIBICONV@LIBICONV_DEP = @LIBICONV_DEP@# Any system libraries needed just for GNAT.SYSLIBS = @GNAT_LIBEXC@# List extra gnattoolsEXTRA_GNATTOOLS =# List of target dependent sources, overridden below as necessaryTARGET_ADA_SRCS =# Type of tools build we are doing; default is not compiling tools.TOOLSCASE =# Multilib handlingMULTISUBDIR =RTSDIR = rts$(subst /,_,$(MULTISUBDIR))# Link flags used to build gnat tools. By default we prefer to statically# link with libgcc to avoid a dependency on shared libgcc (which is tricky# to deal with as it may conflict with the libgcc provided by the system).GCC_LINK_FLAGS=-static-libgcc# End of variables for you to override.all: all.indirect# This tells GNU Make version 3 not to put all variables in the environment..NOEXPORT:# target overridesifneq ($(tmake_file),)include $(tmake_file)endif# host overridesifneq ($(xmake_file),)include $(xmake_file)endif# Now figure out from those variables how to compile and link.all.indirect: Makefile ../gnat1$(exeext)# IN_GCC is meant to distinguish between code compiled into GCC itself, i.e.# for the host, and the rest. But we also use it for the tools (link.c) and# even break the host/target wall by using it for the library (targext.c).# autoconf inserts -DCROSS_DIRECTORY_STRUCTURE if we are building a cross# compiler which does not use the native libraries and headers.INTERNAL_CFLAGS = @CROSS@ -DIN_GCC# This is the variable actually used when we compile.ALL_CFLAGS = $(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS)# Likewise.ALL_CPPFLAGS = $(CPPFLAGS)# Used with $(COMPILER).ALL_COMPILERFLAGS = $(ALL_CFLAGS)# This is where we get libiberty.a from.LIBIBERTY = ../../libiberty/libiberty.a# How to link with both our special library facilities# and the system's installed libraries.LIBS = $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(SYSLIBS)LIBDEPS = $(LIBINTL_DEP) $(LIBICONV_DEP) $(LIBIBERTY)# Default is no TGT_LIB; one might be passed down or somethingTGT_LIB =TOOLS_LIBS = targext.o link.o ../../libcommon-target.a ../../libcommon.a \../../../libcpp/libcpp.a $(LIBGNAT) $(LIBINTL) $(LIBICONV) \../../../libiberty/libiberty.a $(SYSLIBS) $(TGT_LIB)# Convert the target variable into a space separated list of architecture,# manufacturer, and operating system and assign each of those to its own# variable.host:=$(subst -, ,$(host_canonical))targ:=$(subst -, ,$(target))arch:=$(word 1,$(targ))ifeq ($(words $(targ)),2)manu:=osys:=$(word 2,$(targ))elsemanu:=$(word 2,$(targ))osys:=$(word 3,$(targ))endif# Specify the directories to be searched for header files.# Both . and srcdir are used, in that order,# so that tm.h and config.h will be found in the compilation# subdirectory rather than in the source directory.INCLUDES = -I- -I. -I.. -I$(srcdir)/ada -I$(srcdir) -I$(srcdir)/../includeADA_INCLUDES = -I- -I. -I$(srcdir)/ada# Likewise, but valid for subdirectories of the current dir.# FIXME: for VxWorks, we cannot add $(fsrcdir) because the regs.h file in# that directory conflicts with a system header file.ifneq ($(findstring vxworks,$(osys)),)INCLUDES_FOR_SUBDIR = -iquote . -iquote .. -iquote ../.. \-iquote $(fsrcdir)/ada \-I$(fsrcdir)/../includeelseINCLUDES_FOR_SUBDIR = -iquote . -iquote .. -iquote ../.. \-iquote $(fsrcdir)/ada -iquote $(fsrcdir) \-I$(fsrcdir)/../includeendifADA_INCLUDES_FOR_SUBDIR = -I. -I$(fsrcdir)/ada# Avoid a lot of time thinking about remaking Makefile.in and *.def..SUFFIXES: .in .def# Say how to compile Ada programs..SUFFIXES: .ada .adb .ads .asm# Always use -I$(srcdir)/config when compiling..asm.o:$(CC) -c -x assembler $< $(OUTPUT_OPTION).c.o:$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) \$(INCLUDES) $< $(OUTPUT_OPTION).adb.o:$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION).ads.o:$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)# how to regenerate this fileMakefile: ../config.status $(srcdir)/ada/gcc-interface/Makefile.in $(srcdir)/ada/Makefile.in $(srcdir)/version.ccd ..; \LANGUAGES="$(CONFIG_LANGUAGES)" \CONFIG_HEADERS= \CONFIG_FILES="ada/gcc-interface/Makefile ada/Makefile" $(SHELL) config.status# This tells GNU make version 3 not to export all the variables# defined in this file into the environment..NOEXPORT:# Lists of files for various purposes.GNATLINK_OBJS = gnatlink.o \a-except.o ali.o alloc.o butil.o casing.o csets.o debug.o fmap.o fname.o \gnatvsn.o hostparm.o indepsw.o interfac.o i-c.o i-cstrin.o namet.o opt.o \osint.o output.o rident.o s-exctab.o s-secsta.o s-stalib.o s-stoele.o \sdefault.o snames.o stylesw.o switch.o system.o table.o targparm.o tree_io.o \types.o validsw.o widechar.oGNATMAKE_OBJS = a-except.o ali.o ali-util.o aspects.o s-casuti.o alloc.o \atree.o binderr.o butil.o casing.o csets.o debug.o elists.o einfo.o errout.o \erroutc.o errutil.o err_vars.o fmap.o fname.o fname-uf.o fname-sf.o \gnatmake.o gnatvsn.o hostparm.o interfac.o i-c.o i-cstrin.o krunch.o lib.o \make.o makeusg.o makeutl.o mlib.o mlib-fil.o mlib-prj.o mlib-tgt.o \mlib-tgt-specific.o mlib-utl.o namet.o nlists.o opt.o osint.o osint-m.o \output.o prj.o prj-attr.o prj-attr-pm.o prj-com.o prj-dect.o prj-env.o \prj-conf.o prj-pp.o prj-err.o prj-ext.o prj-nmsc.o prj-pars.o prj-part.o \prj-proc.o prj-strt.o prj-tree.o prj-util.o restrict.o rident.o s-exctab.o \s-secsta.o s-stalib.o s-stoele.o scans.o scng.o sdefault.o sfn_scan.o \s-purexc.o s-htable.o scil_ll.o sem_aux.o sinfo.o sinput.o sinput-c.o \sinput-p.o snames.o stand.o stringt.o styleg.o stylesw.o system.o validsw.o \switch.o switch-m.o table.o targparm.o tempdir.o tree_io.o types.o uintp.o \uname.o urealp.o usage.o widechar.o \$(EXTRA_GNATMAKE_OBJS)# Make arch match the current multilib so that the RTS selection code# picks up the right files. For a given target this must be coherent# with MULTILIB_DIRNAMES defined in gcc/config/target/t-*.ifeq ($(strip $(filter-out %x86_64, $(arch))),)ifeq ($(strip $(MULTISUBDIR)),/32)arch:=i686endifendif# ???: handle more multilib targets# LIBGNAT_TARGET_PAIRS is a list of pairs of filenames.# The members of each pair must be separated by a '<' and no whitespace.# Each pair must be separated by some amount of whitespace from the following# pair.# Non-tasking case:LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-dummy.ads \s-inmaop.adb<s-inmaop-dummy.adb \s-intman.adb<s-intman-dummy.adb \s-osinte.ads<s-osinte-dummy.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-dummy.adb \s-taspri.ads<s-taspri-dummy.ads# When using the GCC exception handling mechanism, we need to use an# alternate body for a-exexpr.adb (a-exexpr-gcc.adb)EH_MECHANISM=# Default shared object option. Note that we rely on the fact that the "soname"# option will always be present and last in this flag, so that we can have# $(SO_OPTS)libgnat-x.xxSO_OPTS = -Wl,-soname,# Default gnatlib-shared target.# By default, equivalent to gnatlib.# Set to gnatlib-shared-default, gnatlib-shared-dual, or a platform specific# target when supported.GNATLIB_SHARED = gnatlib# default value for gnatmake's target dependent fileMLIB_TGT = mlib-tgt# By default, build socket support units. On platforms that do not support# sockets, reset this variable to empty and add DUMMY_SOCKETS_TARGET_PAIRS# to LIBGNAT_TARGET_PAIRS.GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \g-soliop$(objext) g-sothco$(objext)DUMMY_SOCKETS_TARGET_PAIRS = \g-socket.adb<g-socket-dummy.adb \g-socket.ads<g-socket-dummy.ads \g-socthi.adb<g-socthi-dummy.adb \g-socthi.ads<g-socthi-dummy.ads \g-sothco.adb<g-sothco-dummy.adb \g-sothco.ads<g-sothco-dummy.ads# On platforms where atomic increment/decrement operations are supported,# special version of Ada.Strings.Unbounded package can be used.ATOMICS_TARGET_PAIRS = \a-stunau.adb<a-stunau-shared.adb \a-suteio.adb<a-suteio-shared.adb \a-strunb.ads<a-strunb-shared.ads \a-strunb.adb<a-strunb-shared.adb \a-stwiun.adb<a-stwiun-shared.adb \a-stwiun.ads<a-stwiun-shared.ads \a-swunau.adb<a-swunau-shared.adb \a-swuwti.adb<a-swuwti-shared.adb \a-stzunb.adb<a-stzunb-shared.adb \a-stzunb.ads<a-stzunb-shared.ads \a-szunau.adb<a-szunau-shared.adb \a-szuzti.adb<a-szuzti-shared.adbATOMICS_BUILTINS_TARGET_PAIRS = \s-atocou.adb<s-atocou-builtin.adb# Special version of units for x86 and x86-64 platforms.X86_TARGET_PAIRS = \a-numaux.ads<a-numaux-x86.ads \a-numaux.adb<a-numaux-x86.adb \s-atocou.adb<s-atocou-x86.adbX86_64_TARGET_PAIRS = \a-numaux.ads<a-numaux-x86.ads \a-numaux.adb<a-numaux-x86.adb \s-atocou.adb<s-atocou-builtin.adbLIB_VERSION = $(strip $(shell grep ' Library_Version :' $(fsrcpfx)ada/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/'))# $(filter-out PATTERN...,TEXT) removes all PATTERN words from TEXT.# $(strip STRING) removes leading and trailing spaces from STRING.# If what's left is null then it's a match.ifeq ($(strip $(filter-out m68k% wrs vx%,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-vxworks.ads \a-numaux.ads<a-numaux-vxworks.ads \s-inmaop.adb<s-inmaop-vxworks.adb \s-interr.adb<s-interr-hwint.adb \s-intman.ads<s-intman-vxworks.ads \s-intman.adb<s-intman-vxworks.adb \s-osinte.adb<s-osinte-vxworks.adb \s-osinte.ads<s-osinte-vxworks.ads \s-osprim.adb<s-osprim-vxworks.adb \s-parame.ads<s-parame-vxworks.ads \s-parame.adb<s-parame-vxworks.adb \s-stchop.ads<s-stchop-limit.ads \s-stchop.adb<s-stchop-vxworks.adb \s-taprop.adb<s-taprop-vxworks.adb \s-tasinf.ads<s-tasinf-vxworks.ads \s-taspri.ads<s-taspri-vxworks.ads \s-tpopsp.adb<s-tpopsp-vxworks.adb \s-vxwork.ads<s-vxwork-m68k.ads \g-socthi.ads<g-socthi-vxworks.ads \g-socthi.adb<g-socthi-vxworks.adb \g-stsifd.adb<g-stsifd-sockets.adb \system.ads<system-vxworks-m68k.adsTOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adbEXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.oEXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.oEXTRA_LIBGNAT_SRCS+=vx_stack_info.cEXTRA_LIBGNAT_OBJS+=vx_stack_info.oifeq ($(strip $(filter-out yes,$(TRACE))),)LIBGNAT_TARGET_PAIRS += \s-traces.adb<s-traces-default.adb \s-tratas.adb<s-tratas-default.adb \s-trafor.adb<s-trafor-default.adb \s-trafor.ads<s-trafor-default.ads \s-tfsetr.adb<s-tfsetr-vxworks.adbendifendififeq ($(strip $(filter-out e500% powerpc% wrs vxworks,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-vxworks.ads \a-numaux.ads<a-numaux-vxworks.ads \s-inmaop.adb<s-inmaop-vxworks.adb \s-intman.ads<s-intman-vxworks.ads \s-intman.adb<s-intman-vxworks.adb \s-osinte.ads<s-osinte-vxworks.ads \s-osinte.adb<s-osinte-vxworks.adb \s-osprim.adb<s-osprim-vxworks.adb \s-parame.ads<s-parame-vxworks.ads \s-parame.adb<s-parame-vxworks.adb \s-stchop.ads<s-stchop-limit.ads \s-stchop.adb<s-stchop-vxworks.adb \s-taprop.adb<s-taprop-vxworks.adb \s-tasinf.ads<s-tasinf-vxworks.ads \s-taspri.ads<s-taspri-vxworks.ads \s-vxwork.ads<s-vxwork-ppc.ads \g-socthi.ads<g-socthi-vxworks.ads \g-socthi.adb<g-socthi-vxworks.adb \g-stsifd.adb<g-stsifd-sockets.adb \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS)TOOLS_TARGET_PAIRS=\mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \indepsw.adb<indepsw-gnu.adbifeq ($(strip $(filter-out yes,$(TRACE))),)LIBGNAT_TARGET_PAIRS += \s-traces.adb<s-traces-default.adb \s-trafor.adb<s-trafor-default.adb \s-trafor.ads<s-trafor-default.ads \s-tratas.adb<s-tratas-default.adb \s-tfsetr.adb<s-tfsetr-vxworks.adbendififeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += \s-vxwext.ads<s-vxwext-rtp.ads \s-vxwext.adb<s-vxwext-rtp.adb \s-tpopsp.adb<s-tpopsp-vxworks-rtp.adb \system.ads<system-vxworks-ppc-rtp.adsEXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.oelseifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += \s-mudido.adb<s-mudido-affinity.adb \s-vxwext.ads<s-vxwext-rtp.ads \s-vxwext.adb<s-vxwext-rtp-smp.adb \s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \system.ads<system-vxworks-ppc-rtp.adsEXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.oEXTRA_LIBGNAT_OBJS+=affinity.oEXTRA_LIBGNAT_SRCS+=affinity.celseifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += \s-interr.adb<s-interr-hwint.adb \s-mudido.adb<s-mudido-affinity.adb \s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \s-vxwext.ads<s-vxwext-kernel.ads \s-vxwext.adb<s-vxwext-kernel-smp.adb \system.ads<system-vxworks-ppc-kernel.adsEH_MECHANISM=-gccEXTRA_LIBGNAT_OBJS+=affinity.oEXTRA_LIBGNAT_SRCS+=affinity.celseLIBGNAT_TARGET_PAIRS += \s-interr.adb<s-interr-hwint.adb \s-tpopsp.adb<s-tpopsp-vxworks.adbifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)EH_MECHANISM=-gccLIBGNAT_TARGET_PAIRS += \s-vxwext.ads<s-vxwext-kernel.ads \s-vxwext.adb<s-vxwext-kernel.adb \system.ads<system-vxworks-ppc-kernel.adselseLIBGNAT_TARGET_PAIRS += \system.ads<system-vxworks-ppc.adsendifendifEXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.oEXTRA_LIBGNAT_OBJS+=sigtramp-ppcvxw.oEXTRA_LIBGNAT_SRCS+=sigtramp-ppcvxw.cendifendifEXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.oEXTRA_LIBGNAT_SRCS+=vx_stack_info.cEXTRA_LIBGNAT_OBJS+=vx_stack_info.oendif# vxworks 653ifeq ($(strip $(filter-out powerpc% e500v2 wrs vxworksae,$(targ))),)# target pairs for vthreads runtimeLIBGNAT_TARGET_PAIRS = \a-elchha.adb<a-elchha-vxworks-ppc-full.adb \a-intnam.ads<a-intnam-vxworks.ads \a-numaux.ads<a-numaux-vxworks.ads \g-io.adb<g-io-vxworks-ppc-cert.adb \s-inmaop.adb<s-inmaop-vxworks.adb \s-interr.adb<s-interr-hwint.adb \s-intman.ads<s-intman-vxworks.ads \s-intman.adb<s-intman-vxworks.adb \s-osinte.adb<s-osinte-vxworks.adb \s-osinte.ads<s-osinte-vxworks.ads \s-osprim.adb<s-osprim-vxworks.adb \s-parame.ads<s-parame-ae653.ads \s-parame.adb<s-parame-vxworks.adb \s-taprop.adb<s-taprop-vxworks.adb \s-tasinf.ads<s-tasinf-vxworks.ads \s-taspri.ads<s-taspri-vxworks.ads \s-tpopsp.adb<s-tpopsp-vxworks.adb \s-vxwext.adb<s-vxwext-noints.adb \s-vxwext.ads<s-vxwext-vthreads.ads \s-vxwork.ads<s-vxwork-ppc.ads \system.ads<system-vxworks-ppc-vthread.ads \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS)TOOLS_TARGET_PAIRS=\mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.oEXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.oEXTRA_LIBGNAT_SRCS+=sigtramp-ppcvxw.cEXTRA_LIBGNAT_OBJS+=sigtramp-ppcvxw.o# Extra pairs for the vthreads runtimeifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += \s-thread.adb<s-thread-ae653.adb \$(DUMMY_SOCKETS_TARGET_PAIRS)GNATRTL_SOCKETS_OBJS =EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.oelseLIBGNAT_TARGET_PAIRS += \g-socthi.ads<g-socthi-vxworks.ads \g-socthi.adb<g-socthi-vxworks.adb \g-stsifd.adb<g-stsifd-sockets.adbendififeq ($(strip $(filter-out yes,$(TRACE))),)LIBGNAT_TARGET_PAIRS += \s-traces.adb<s-traces-default.adb \s-trafor.adb<s-trafor-default.adb \s-trafor.ads<s-trafor-default.ads \s-tratas.adb<s-tratas-default.adb \s-tfsetr.adb<s-tfsetr-vxworks.adbendifendif# vxworks MILSifeq ($(strip $(filter-out e500% powerpc% wrs vxworksmils,$(targ))),)# target pairs for vthreads runtimeLIBGNAT_TARGET_PAIRS = \a-elchha.adb<a-elchha-vx6-raven-cert.adb \a-intnam.ads<a-intnam-vxworks.ads \a-numaux.ads<a-numaux-vxworks.ads \g-io.adb<g-io-vxworks-ppc-cert.adb \s-inmaop.adb<s-inmaop-vxworks.adb \s-interr.adb<s-interr-hwint.adb \s-intman.ads<s-intman-vxworks.ads \s-intman.adb<s-intman-vxworks.adb \s-osinte.adb<s-osinte-vxworks.adb \s-osinte.ads<s-osinte-vxworks.ads \s-osprim.adb<s-osprim-vxworks.adb \s-parame.ads<s-parame-ae653.ads \s-parame.adb<s-parame-vxworks.adb \s-stchop.adb<s-stchop-vxworks.adb \s-stchop.ads<s-stchop-limit.ads \s-taprop.adb<s-taprop-vxworks.adb \s-tasinf.ads<s-tasinf-vxworks.ads \s-taspri.ads<s-taspri-vxworks.ads \s-thread.adb<s-thread-ae653.adb \s-tpopsp.adb<s-tpopsp-vxworks.adb \s-vxwork.ads<s-vxwork-ppc.ads \system.ads<system-vxworks-ppc-mils.ads \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS) \$(DUMMY_SOCKETS_TARGET_PAIRS)TOOLS_TARGET_PAIRS=\mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-thread.o s-vxwexc.oEXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.oEXTRA_LIBGNAT_SRCS+=vx_stack_info.c sigtramp-ppcvxw.cEXTRA_LIBGNAT_OBJS+=vx_stack_info.o sigtramp-ppcvxw.oGNATRTL_SOCKETS_OBJS =ifeq ($(strip $(filter-out yes,$(TRACE))),)LIBGNAT_TARGET_PAIRS += \s-traces.adb<s-traces-default.adb \s-trafor.adb<s-trafor-default.adb \s-trafor.ads<s-trafor-default.ads \s-tratas.adb<s-tratas-default.adb \s-tfsetr.adb<s-tfsetr-vxworks.adbendifendif# vxworksae / vxworks 653 for x86 (vxsim) - ?? vxworksmils not implementedifeq ($(strip $(filter-out %86 wrs vxworksae vxworksmils,$(targ))),)# target pairs for kernel + vthreads runtimeLIBGNAT_TARGET_PAIRS = \a-elchha.adb<a-elchha-vxworks-ppc-full.adb \a-intnam.ads<a-intnam-vxworks.ads \a-sytaco.ads<1asytaco.ads \a-sytaco.adb<1asytaco.adb \g-io.adb<g-io-vxworks-ppc-cert.adb \s-inmaop.adb<s-inmaop-vxworks.adb \s-interr.adb<s-interr-hwint.adb \s-intman.ads<s-intman-vxworks.ads \s-intman.adb<s-intman-vxworks.adb \s-osinte.adb<s-osinte-vxworks.adb \s-osinte.ads<s-osinte-vxworks.ads \s-osprim.adb<s-osprim-vxworks.adb \s-parame.ads<s-parame-ae653.ads \s-taprop.adb<s-taprop-vxworks.adb \s-tasinf.ads<s-tasinf-vxworks.ads \s-taspri.ads<s-taspri-vxworks.ads \s-tpopsp.adb<s-tpopsp-vxworks.adb \s-vxwext.adb<s-vxwext-noints.adb \s-vxwext.ads<s-vxwext-vthreads.ads \s-vxwork.ads<s-vxwork-x86.ads \$(ATOMICS_TARGET_PAIRS) \$(X86_TARGET_PAIRS) \system.ads<system-vxworks-x86.adsTOOLS_TARGET_PAIRS=\mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.oEXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o# Extra pairs for the vthreads runtimeifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += \s-thread.adb<s-thread-ae653.adb \$(DUMMY_SOCKETS_TARGET_PAIRS)GNATRTL_SOCKETS_OBJS =EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.oelseLIBGNAT_TARGET_PAIRS += \g-socthi.ads<g-socthi-vxworks.ads \g-socthi.adb<g-socthi-vxworks.adb \g-stsifd.adb<g-stsifd-sockets.adbendififeq ($(strip $(filter-out yes,$(TRACE))),)LIBGNAT_TARGET_PAIRS += \s-traces.adb<s-traces-default.adb \s-trafor.adb<s-trafor-default.adb \s-trafor.ads<s-trafor-default.ads \s-tratas.adb<s-tratas-default.adb \s-tfsetr.adb<s-tfsetr-vxworks.adbendifendififeq ($(strip $(filter-out sparc% wrs vx%,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-vxworks.ads \a-numaux.ads<a-numaux-vxworks.ads \s-inmaop.adb<s-inmaop-vxworks.adb \s-interr.adb<s-interr-hwint.adb \s-intman.ads<s-intman-vxworks.ads \s-intman.adb<s-intman-vxworks.adb \s-osinte.adb<s-osinte-vxworks.adb \s-osinte.ads<s-osinte-vxworks.ads \s-osprim.adb<s-osprim-vxworks.adb \s-parame.ads<s-parame-vxworks.ads \s-parame.adb<s-parame-vxworks.adb \s-stchop.ads<s-stchop-limit.ads \s-stchop.adb<s-stchop-vxworks.adb \s-taprop.adb<s-taprop-vxworks.adb \s-tasinf.ads<s-tasinf-vxworks.ads \s-taspri.ads<s-taspri-vxworks.ads \s-tpopsp.adb<s-tpopsp-vxworks.adb \s-vxwork.ads<s-vxwork-sparcv9.ads \g-socthi.ads<g-socthi-vxworks.ads \g-socthi.adb<g-socthi-vxworks.adb \g-stsifd.adb<g-stsifd-sockets.adb \system.ads<system-vxworks-sparcv9.ads \TOOLS_TARGET_PAIRS=\mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.oEXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.oEXTRA_LIBGNAT_SRCS+=vx_stack_info.cEXTRA_LIBGNAT_OBJS+=vx_stack_info.oendififeq ($(strip $(filter-out %86 wrs vxworks,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-vxworks.ads \i-vxwork.ads<i-vxwork-x86.ads \s-osinte.adb<s-osinte-vxworks.adb \s-osinte.ads<s-osinte-vxworks.ads \s-inmaop.adb<s-inmaop-vxworks.adb \s-intman.ads<s-intman-vxworks.ads \s-intman.adb<s-intman-vxworks.adb \s-osprim.adb<s-osprim-vxworks.adb \s-parame.ads<s-parame-vxworks.ads \s-parame.adb<s-parame-vxworks.adb \s-stchop.ads<s-stchop-limit.ads \s-stchop.adb<s-stchop-vxworks.adb \s-taprop.adb<s-taprop-vxworks.adb \s-tasinf.ads<s-tasinf-vxworks.ads \s-taspri.ads<s-taspri-vxworks.ads \s-vxwork.ads<s-vxwork-x86.ads \g-socthi.ads<g-socthi-vxworks.ads \g-socthi.adb<g-socthi-vxworks.adb \g-stsifd.adb<g-stsifd-sockets.adb \$(ATOMICS_TARGET_PAIRS) \$(X86_TARGET_PAIRS)TOOLS_TARGET_PAIRS=\mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \indepsw.adb<indepsw-gnu.adbifeq ($(strip $(filter-out yes,$(TRACE))),)LIBGNAT_TARGET_PAIRS += \s-traces.adb<s-traces-default.adb \s-trafor.adb<s-trafor-default.adb \s-trafor.ads<s-trafor-default.ads \s-tratas.adb<s-tratas-default.adb \s-tfsetr.adb<s-tfsetr-vxworks.adbendififeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += \s-vxwext.ads<s-vxwext-rtp.ads \s-vxwext.adb<s-vxwext-rtp.adb \s-tpopsp.adb<s-tpopsp-vxworks-rtp.adb \system.ads<system-vxworks-x86-rtp.adsEXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.oelseifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += \s-mudido.adb<s-mudido-affinity.adb \s-vxwext.ads<s-vxwext-rtp.ads \s-vxwext.adb<s-vxwext-rtp-smp.adb \s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \system.ads<system-vxworks-x86-rtp.adsEXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.oEXTRA_LIBGNAT_OBJS+=affinity.oEXTRA_LIBGNAT_SRCS+=affinity.celseifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += \s-interr.adb<s-interr-hwint.adb \s-mudido.adb<s-mudido-affinity.adb \s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \s-vxwext.ads<s-vxwext-kernel.ads \s-vxwext.adb<s-vxwext-kernel-smp.adb \system.ads<system-vxworks-x86-kernel.adsEXTRA_LIBGNAT_OBJS+=affinity.oEXTRA_LIBGNAT_SRCS+=affinity.celseLIBGNAT_TARGET_PAIRS += \s-interr.adb<s-interr-hwint.adb \s-tpopsp.adb<s-tpopsp-vxworks.adbifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += \s-vxwext.ads<s-vxwext-kernel.ads \s-vxwext.adb<s-vxwext-kernel.adb \system.ads<system-vxworks-x86-kernel.adselseLIBGNAT_TARGET_PAIRS += \system.ads<system-vxworks-x86.adsendifendifEXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.oendifendifEXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.oEXTRA_LIBGNAT_SRCS+=vx_stack_info.cEXTRA_LIBGNAT_OBJS+=vx_stack_info.oendififeq ($(strip $(filter-out arm% coff wrs vx%,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-vxworks.ads \a-numaux.ads<a-numaux-vxworks.ads \s-inmaop.adb<s-inmaop-vxworks.adb \s-interr.adb<s-interr-hwint.adb \s-intman.ads<s-intman-vxworks.ads \s-intman.adb<s-intman-vxworks.adb \s-osinte.adb<s-osinte-vxworks.adb \s-osinte.ads<s-osinte-vxworks.ads \s-osprim.adb<s-osprim-vxworks.adb \s-parame.ads<s-parame-vxworks.ads \s-parame.adb<s-parame-vxworks.adb \s-stchop.ads<s-stchop-limit.ads \s-stchop.adb<s-stchop-vxworks.adb \s-taprop.adb<s-taprop-vxworks.adb \s-tasinf.ads<s-tasinf-vxworks.ads \s-taspri.ads<s-taspri-vxworks.ads \s-tpopsp.adb<s-tpopsp-vxworks.adb \s-vxwork.ads<s-vxwork-arm.ads \g-socthi.ads<g-socthi-vxworks.ads \g-socthi.adb<g-socthi-vxworks.adb \g-stsifd.adb<g-stsifd-sockets.adb \system.ads<system-vxworks-arm.adsTOOLS_TARGET_PAIRS=\mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.oEXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.oEXTRA_LIBGNAT_SRCS+=vx_stack_info.cEXTRA_LIBGNAT_OBJS+=vx_stack_info.oendififeq ($(strip $(filter-out mips% wrs vx%,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-vxworks.ads \a-numaux.ads<a-numaux-vxworks.ads \s-inmaop.adb<s-inmaop-vxworks.adb \s-interr.adb<s-interr-hwint.adb \s-intman.ads<s-intman-vxworks.ads \s-intman.adb<s-intman-vxworks.adb \s-osinte.adb<s-osinte-vxworks.adb \s-osinte.ads<s-osinte-vxworks.ads \s-osprim.adb<s-osprim-vxworks.adb \s-parame.ads<s-parame-vxworks.ads \s-parame.adb<s-parame-vxworks.adb \s-stchop.ads<s-stchop-limit.ads \s-stchop.adb<s-stchop-vxworks.adb \s-taprop.adb<s-taprop-vxworks.adb \s-tasinf.ads<s-tasinf-vxworks.ads \s-taspri.ads<s-taspri-vxworks.ads \s-tpopsp.adb<s-tpopsp-vxworks.adb \s-vxwork.ads<s-vxwork-mips.ads \g-socthi.ads<g-socthi-vxworks.ads \g-socthi.adb<g-socthi-vxworks.adb \g-stsifd.adb<g-stsifd-sockets.adb \system.ads<system-vxworks-mips.adsTOOLS_TARGET_PAIRS=\mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.oEXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.oEXTRA_LIBGNAT_SRCS+=vx_stack_info.cEXTRA_LIBGNAT_OBJS+=vx_stack_info.oendififeq ($(strip $(filter-out sparc% sun solaris%,$(targ))),)LIBGNAT_TARGET_PAIRS_COMMON = \a-intnam.ads<a-intnam-solaris.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-solaris.adb \s-mudido.adb<s-mudido-affinity.adb \s-osinte.adb<s-osinte-solaris.adb \s-osinte.ads<s-osinte-solaris.ads \s-osprim.adb<s-osprim-solaris.adb \s-taprop.adb<s-taprop-solaris.adb \s-tasinf.adb<s-tasinf-solaris.adb \s-tasinf.ads<s-tasinf-solaris.ads \s-taspri.ads<s-taspri-solaris.ads \s-tpopsp.adb<s-tpopsp-solaris.adb \g-soliop.ads<g-soliop-solaris.adsLIBGNAT_TARGET_PAIRS_32 = \system.ads<system-solaris-sparc.adsLIBGNAT_TARGET_PAIRS_64 = \system.ads<system-solaris-sparcv9.ads \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS)ifeq ($(strip $(filter-out sparc sun solaris%,$(targ))),)ifeq ($(strip $(MULTISUBDIR)),/sparcv9)LIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)elseLIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)endifelseifeq ($(strip $(MULTISUBDIR)),/sparcv8plus)LIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)elseLIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)endifendifTOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adbEH_MECHANISM=-gccTHREADSLIB = -lposix4 -lthreadMISCLIB = -lposix4 -lnsl -lsocketSO_OPTS = -Wl,-h,GNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)ifeq ($(strip $(filter-out pthread PTHREAD,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-solaris.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-solaris-posix.ads \s-osprim.adb<s-osprim-solaris.adb \s-taprop.adb<s-taprop-posix.adb \s-taspri.ads<s-taspri-posix.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \g-soliop.ads<g-soliop-solaris.ads \system.ads<system-solaris-sparc.adsTHREADSLIB = -lposix4 -lpthreadendififeq ($(strip $(filter-out m64,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS = $(LIBGNAT_TARGET_PAIRS_64)endifendififeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS_COMMON = \a-intnam.ads<a-intnam-solaris.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-solaris.adb \s-mudido.adb<s-mudido-affinity.adb \s-osinte.adb<s-osinte-solaris.adb \s-osinte.ads<s-osinte-solaris.ads \s-osprim.adb<s-osprim-solaris.adb \s-taprop.adb<s-taprop-solaris.adb \s-tasinf.adb<s-tasinf-solaris.adb \s-tasinf.ads<s-tasinf-solaris.ads \s-taspri.ads<s-taspri-solaris.ads \s-tpopsp.adb<s-tpopsp-solaris.adb \g-soliop.ads<g-soliop-solaris.ads \$(ATOMICS_TARGET_PAIRS)LIBGNAT_TARGET_PAIRS_32 = \$(X86_TARGET_PAIRS) \system.ads<system-solaris-x86.adsLIBGNAT_TARGET_PAIRS_64 = \$(X86_64_TARGET_PAIRS) \system.ads<system-solaris-x86_64.adsifeq ($(strip $(filter-out %86 solaris2%,$(arch) $(osys))),)ifeq ($(strip $(MULTISUBDIR)),/amd64)LIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)elseLIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)endifelseifeq ($(strip $(MULTISUBDIR)),/32)LIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)elseLIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)endifendifTOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adbEH_MECHANISM=-gccTHREADSLIB = -lposix4 -lthreadMISCLIB = -lposix4 -lnsl -lsocketSO_OPTS = -Wl,-h,GNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out %86 linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-linux.ads \a-synbar.adb<a-synbar-posix.adb \a-synbar.ads<a-synbar-posix.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-tpopsp.adb<s-tpopsp-tls.adb \g-sercom.adb<g-sercom-linux.adb \a-exetim.adb<a-exetim-posix.adb \a-exetim.ads<a-exetim-default.ads \s-linux.ads<s-linux.ads \s-osinte.adb<s-osinte-posix.adb \$(ATOMICS_TARGET_PAIRS)LIBGNAT_TARGET_PAIRS_32 = \$(X86_TARGET_PAIRS) \system.ads<system-linux-x86.adsLIBGNAT_TARGET_PAIRS_64 = \$(X86_64_TARGET_PAIRS) \system.ads<system-linux-x86_64.adsifeq ($(strip $(MULTISUBDIR)),/64)LIBGNAT_TARGET_PAIRS += $(LIBGNAT_TARGET_PAIRS_64)elseLIBGNAT_TARGET_PAIRS += $(LIBGNAT_TARGET_PAIRS_32)endififeq ($(strip $(filter-out xenomai,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += \s-osinte.ads<s-osinte-linux-xenomai.ads \s-osprim.adb<s-osprim-linux-xenomai.adb \s-taprop.adb<s-taprop-linux-xenomai.adb \s-taspri.ads<s-taspri-linux-xenomai.adselseLIBGNAT_TARGET_PAIRS += \s-mudido.adb<s-mudido-affinity.adb \s-osinte.ads<s-osinte-linux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix.adsendifEH_MECHANISM=-gccTHREADSLIB = -lpthread -lrtEXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.oEXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.oTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbGNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out %86 kfreebsd%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-freebsd.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-kfreebsd-gnu.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \$(ATOMICS_TARGET_PAIRS) \$(X86_TARGET_PAIRS) \system.ads<system-freebsd-x86.adsTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEH_MECHANISM=-gccTHREADSLIB = -lpthreadGNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)MISCLIB = -lutilendififeq ($(strip $(filter-out x86_64 kfreebsd%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-freebsd.ads \a-numaux.adb<a-numaux-x86.adb \a-numaux.ads<a-numaux-x86.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-kfreebsd-gnu.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \system.ads<system-freebsd-x86_64.adsTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEH_MECHANISM=-gccTHREADSLIB = -lpthreadGNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out %86 freebsd%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-freebsd.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-osinte.adb<s-osinte-freebsd.adb \s-osinte.ads<s-osinte-freebsd.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-posix.adb \s-taspri.ads<s-taspri-posix.ads \s-tpopsp.adb<s-tpopsp-posix.adb \$(ATOMICS_TARGET_PAIRS) \$(X86_TARGET_PAIRS) \system.ads<system-freebsd-x86.adsTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adbGNATLIB_SHARED = gnatlib-shared-dualEH_MECHANISM=-gccTHREADSLIB= -lpthreadGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)MISCLIB = -lutilendififeq ($(strip $(filter-out %86_64 freebsd%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-freebsd.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-osinte.adb<s-osinte-freebsd.adb \s-osinte.ads<s-osinte-freebsd.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-posix.adb \s-taspri.ads<s-taspri-posix.ads \s-tpopsp.adb<s-tpopsp-posix.adb \g-trasym.adb<g-trasym-dwarf.adb \$(ATOMICS_TARGET_PAIRS) \$(X86_64_TARGET_PAIRS) \system.ads<system-freebsd-x86_64.adsTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adbGNATLIB_SHARED = gnatlib-shared-dualEH_MECHANISM=-gccTHREADSLIB= -lpthreadGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)MISCLIB = -lutilendififeq ($(strip $(filter-out s390% linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS_COMMON = \a-intnam.ads<a-intnam-linux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux.ads \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-linux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix-noaltstack.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adbLIBGNAT_TARGET_PAIRS_32 = \system.ads<system-linux-s390.adsLIBGNAT_TARGET_PAIRS_64 = \system.ads<system-linux-s390x.adsifeq ($(strip $(filter-out s390x,$(arch))),)ifeq ($(strip $(MULTISUBDIR)),/32)LIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)elseLIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)endifelseLIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)endifTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_TASKING_OBJS=s-linux.oEH_MECHANISM=-gccTHREADSLIB = -lpthreadGNATLIB_SHARED = gnatlib-shared-dualLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out mips sgi irix6%,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-irix.ads \a-synbar.adb<a-synbar-posix.adb \a-synbar.ads<a-synbar-posix.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-irix.adb \s-mastop.adb<s-mastop-irix.adb \s-osinte.adb<s-osinte-irix.adb \s-osinte.ads<s-osinte-irix.ads \s-osprim.adb<s-osprim-posix.adb \s-proinf.adb<s-proinf-irix-athread.adb \s-proinf.ads<s-proinf-irix-athread.ads \s-taprop.adb<s-taprop-irix.adb \s-tasinf.ads<s-tasinf-irix.ads \s-taspri.ads<s-taspri-posix.ads \s-tpopsp.adb<s-tpopsp-posix.adb \s-traceb.adb<s-traceb-mastop.adbifeq ($(strip $(MULTISUBDIR)),/64)LIBGNAT_TARGET_PAIRS += \system.ads<system-irix-n64.adselseifeq ($(strip $(MULTISUBDIR)),/32)LIBGNAT_TARGET_PAIRS += \system.ads<system-irix-o32.adselseLIBGNAT_TARGET_PAIRS += \system.ads<system-irix-n32.adsendifendifTHREADSLIB = -lpthreadGNATLIB_SHARED = gnatlib-shared-defaultEH_MECHANISM=-gccTOOLS_TARGET_PAIRS = mlib-tgt-specific.adb<mlib-tgt-specific-irix.adbTGT_LIB = -lexcMISCLIB = -lexcLIBRARY_VERSION := $(LIB_VERSION)GMEM_LIB = gmemlibendififeq ($(strip $(filter-out hppa% hp hpux10%,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-excpol.adb<a-excpol-abort.adb \a-intnam.ads<a-intnam-hpux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-interr.adb<s-interr-sigaction.adb \s-intman.adb<s-intman-posix.adb \s-osinte.adb<s-osinte-hpux-dce.adb \s-osinte.ads<s-osinte-hpux-dce.ads \s-parame.ads<s-parame-hpux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-hpux-dce.adb \s-taspri.ads<s-taspri-hpux-dce.ads \s-tpopsp.adb<s-tpopsp-posix.adb \system.ads<system-hpux.adsEH_MECHANISM=-gccendififeq ($(strip $(filter-out hppa% hp hpux11%,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-hpux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-hpux.ads \s-parame.ads<s-parame-hpux.ads \s-osprim.adb<s-osprim-posix.adb \s-traceb.adb<s-traceb-hpux.adb \s-taprop.adb<s-taprop-posix.adb \s-taspri.ads<s-taspri-posix.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \system.ads<system-hpux.adsTOOLS_TARGET_PAIRS = mlib-tgt-specific.adb<mlib-tgt-specific-hpux.adbEH_MECHANISM=-gccTGT_LIB = /usr/lib/libcl.aTHREADSLIB = -lpthreadGMEM_LIB = gmemlibsoext = .slSO_OPTS = -Wl,+h,GNATLIB_SHARED = gnatlib-shared-dualLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out ibm aix%,$(manu) $(osys))),)LIBGNAT_TARGET_PAIRS_COMMON = \a-intnam.ads<a-intnam-aix.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-osinte.adb<s-osinte-aix.adb \s-osinte.ads<s-osinte-aix.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-posix.adb \s-taspri.ads<s-taspri-posix.ads \s-tpopsp.adb<s-tpopsp-posix.adb \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS)LIBGNAT_TARGET_PAIRS_32 = \system.ads<system-aix.adsLIBGNAT_TARGET_PAIRS_64 = \system.ads<system-aix64.adsifeq ($(findstring ppc64, \$(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \-print-multi-os-directory)), \ppc64)LIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)TOOLS_TARGET_PAIRS = \indepsw.adb<indepsw-aix.adbelseLIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)TOOLS_TARGET_PAIRS = \indepsw.adb<indepsw-gnu.adbendifTHREADSLIB = -lpthreadsEH_MECHANISM=-gccTOOLS_TARGET_PAIRS += \mlib-tgt-specific.adb<mlib-tgt-specific-aix.adbGMEM_LIB = gmemlibendififeq ($(strip $(filter-out rtems%,$(osys))),)LIBGNAT_TARGET_PAIRS = \system.ads<system-rtems.ads \a-intnam.ads<a-intnam-rtems.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-osinte.adb<s-osinte-rtems.adb \s-osinte.ads<s-osinte-rtems.ads \s-osprim.adb<s-osprim-posix.adb \s-parame.adb<s-parame-rtems.adb \s-taprop.adb<s-taprop-posix.adb \s-taspri.ads<s-taspri-posix.ads \s-tpopsp.adb<s-tpopsp-rtems.adb \s-stchop.adb<s-stchop-rtems.adb \s-interr.adb<s-interr-hwint.adbendififeq ($(strip $(filter-out alpha% dec osf%,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-tru64.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-mastop.adb<s-mastop-tru64.adb \s-osinte.adb<s-osinte-tru64.adb \s-osinte.ads<s-osinte-tru64.ads \s-osprim.adb<s-osprim-unix.adb \s-taprop.adb<s-taprop-tru64.adb \s-tasinf.ads<s-tasinf-tru64.ads \s-taspri.ads<s-taspri-tru64.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \s-traceb.adb<s-traceb-mastop.adb \system.ads<system-tru64.ads \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS)TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-tru64.adbEH_MECHANISM=-gccGMEM_LIB=gmemlibMISCLIB = -lexcTHREADSLIB = -lpthread -lmach -lexc -lrtGNATLIB_SHARED = gnatlib-shared-defaultLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(host))),)soext = .exehyphen = _LN = cp -pLN_S = cp -pendififeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-caldel.adb<a-caldel-vms.adb \a-calend.adb<a-calend-vms.adb \a-calend.ads<a-calend-vms.ads \a-dirval.adb<a-dirval-vms.adb \a-excpol.adb<a-excpol-abort.adb \a-intnam.ads<a-intnam-vms.ads \a-numaux.ads<a-numaux-vms.ads \g-expect.adb<g-expect-vms.adb \g-socthi.ads<g-socthi-vms.ads \g-socthi.adb<g-socthi-vms.adb \g-stsifd.adb<g-stsifd-sockets.adb \i-cstrea.adb<i-cstrea-vms.adb \memtrack.adb<memtrack-vms_64.adb \s-auxdec.ads<s-auxdec-vms_64.ads \s-inmaop.adb<s-inmaop-vms.adb \s-interr.adb<s-interr-vms.adb \s-intman.adb<s-intman-vms.adb \s-intman.ads<s-intman-vms.ads \s-memory.adb<s-memory-vms_64.adb \s-memory.ads<s-memory-vms_64.ads \s-osprim.adb<s-osprim-vms.adb \s-osprim.ads<s-osprim-vms.ads \s-taprop.adb<s-taprop-vms.adb \s-tasdeb.adb<s-tasdeb-vms.adb \s-taspri.ads<s-taspri-vms.ads \s-tpopsp.adb<s-tpopsp-vms.adb \s-tpopde.adb<s-tpopde-vms.adb \s-tpopde.ads<s-tpopde-vms.adsifeq ($(strip $(filter-out ia64 hp vms% openvms%,$(targ))),)LIBGNAT_TARGET_PAIRS += \g-enblsp.adb<g-enblsp-vms-ia64.adb \g-trasym.adb<g-trasym-vms-ia64.adb \s-asthan.adb<s-asthan-vms-ia64.adb \s-auxdec.adb<s-auxdec-vms-ia64.adb \s-osinte.adb<s-osinte-vms-ia64.adb \s-osinte.ads<s-osinte-vms-ia64.ads \s-vaflop.adb<s-vaflop-vms-ia64.adb \system.ads<system-vms-ia64.ads \s-parame.ads<s-parame-vms-ia64.ads \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS)TOOLS_TARGET_PAIRS= \mlib-tgt-specific.adb<mlib-tgt-specific-vms-ia64.adb \symbols.adb<symbols-vms.adb \symbols-processing.adb<symbols-processing-vms-ia64.adbelseifeq ($(strip $(filter-out alpha64 dec vms% openvms% alphavms%,$(targ))),)LIBGNAT_TARGET_PAIRS += \g-enblsp.adb<g-enblsp-vms-alpha.adb \g-trasym.adb<g-trasym-vms-alpha.adb \s-asthan.adb<s-asthan-vms-alpha.adb \s-auxdec.adb<s-auxdec-vms-alpha.adb \s-osinte.adb<s-osinte-vms.adb \s-osinte.ads<s-osinte-vms.ads \s-traent.adb<s-traent-vms.adb \s-traent.ads<s-traent-vms.ads \s-vaflop.adb<s-vaflop-vms-alpha.adb \system.ads<system-vms_64.ads \s-parame.ads<s-parame-vms-alpha.ads \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS)TOOLS_TARGET_PAIRS= \mlib-tgt-specific.adb<mlib-tgt-specific-vms-alpha.adb \symbols.adb<symbols-vms.adb \symbols-processing.adb<symbols-processing-vms-alpha.adbendifendifEXTRA_GNATMAKE_OBJS = mlib-tgt-vms_common.oGMEM_LIB = gmemlibEH_MECHANISM=-gccGNATLIB_SHARED=gnatlib-shared-vmsEXTRA_GNATRTL_NONTASKING_OBJS+=s-po32gl.oEXTRA_GNATRTL_TASKING_OBJS=s-tpopde.oEXTRA_GNATTOOLS = \../../gnatsym$(exeext)# This command transforms (YYYYMMDD) into YY,MMDDGSMATCH_VERSION := $(shell grep "^ *Gnat_Static_Version_String" $(fsrcpfx)ada/gnatvsn.ads | sed -e 's/.*(\(.*\)).*/\1/' -e 's/\(..\)\(..\)\(....\).*/\2,\3/')TOOLS_LIBS_LO := --for-linker=sys\\$$\$$library:trace.exeLIBRARY_VERSION := $(subst .,_,$(LIB_VERSION))endififeq ($(strip $(filter-out avr none powerpc% eabispe leon% erc32% unknown elf,$(targ))),)TOOLS_TARGET_PAIRS=\mlib-tgt-specific.adb<mlib-tgt-specific-xi.adb \indepsw.adb<indepsw-gnu.adbendififeq ($(strip $(filter-out cygwin% mingw32% pe,$(osys))),)# Cygwin provides a full Posix environment, and so we use the default# versions of s-memory and g-socthi rather than the Windows-specific# MinGW versions. Ideally we would use all the default versions for# Cygwin and none of the MinGW versions, but for historical reasons# the Cygwin port has always been a CygMing frankenhybrid and it is# a long-term project to disentangle them.ifeq ($(strip $(filter-out cygwin%,$(osys))),)WIN_SO_PREFIX=cygLIBGNAT_TARGET_PAIRS = \s-memory.adb<s-memory.adb \g-socthi.ads<g-socthi.ads \g-socthi.adb<g-socthi.adbelseWIN_SO_PREFIX=libLIBGNAT_TARGET_PAIRS = \s-memory.adb<s-memory-mingw.adb \g-socthi.ads<g-socthi-mingw.ads \g-socthi.adb<g-socthi-mingw.adbendifWIN_SO_INSTALL_DIR = $(bindir)LIBGNAT_TARGET_PAIRS += \a-dirval.adb<a-dirval-mingw.adb \a-excpol.adb<a-excpol-abort.adb \s-gloloc.adb<s-gloloc-mingw.adb \s-inmaop.adb<s-inmaop-dummy.adb \s-taspri.ads<s-taspri-mingw.ads \s-tasinf.adb<s-tasinf-mingw.adb \s-tasinf.ads<s-tasinf-mingw.ads \g-stsifd.adb<g-stsifd-sockets.adb \g-soliop.ads<g-soliop-mingw.ads \$(ATOMICS_TARGET_PAIRS)ifeq ($(strip $(filter-out rtx_w32 rtx_rtss,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += \s-intman.adb<s-intman-dummy.adb \s-osinte.ads<s-osinte-rtx.ads \s-osprim.adb<s-osprim-rtx.adb \s-taprop.adb<s-taprop-rtx.adb \$(X86_TARGET_PAIRS)EXTRA_GNATRTL_NONTASKING_OBJS = s-win32.oifeq ($(strip $(filter-out rtx_w32,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS += system.ads<system-rtx.adsEH_MECHANISM=-gccelseLIBGNAT_TARGET_PAIRS += \system.ads<system-rtx-rtss.ads \s-parame.adb<s-parame-vxworks.adbEH_MECHANISM=endifelseLIBGNAT_TARGET_PAIRS += \a-exetim.adb<a-exetim-mingw.adb \a-exetim.ads<a-exetim-mingw.ads \a-intnam.ads<a-intnam-mingw.ads \g-sercom.adb<g-sercom-mingw.adb \s-interr.adb<s-interr-sigaction.adb \s-intman.adb<s-intman-mingw.adb \s-mudido.adb<s-mudido-affinity.adb \s-osinte.ads<s-osinte-mingw.ads \s-osprim.adb<s-osprim-mingw.adb \s-taprop.adb<s-taprop-mingw.adbifeq ($(strip $(filter-out x86_64%,$(arch))),)ifeq ($(strip $(MULTISUBDIR)),/32)LIBGNAT_TARGET_PAIRS += \$(X86_TARGET_PAIRS) \system.ads<system-mingw.adsSO_OPTS= -m32 -Wl,-soname,elseLIBGNAT_TARGET_PAIRS += \$(X86_64_TARGET_PAIRS) \system.ads<system-mingw-x86_64.adsSO_OPTS = -m64 -Wl,-soname,endifelseifeq ($(strip $(MULTISUBDIR)),/64)LIBGNAT_TARGET_PAIRS += \$(X86_64_TARGET_PAIRS) \system.ads<system-mingw-x86_64.adsSO_OPTS = -m64 -Wl,-soname,elseLIBGNAT_TARGET_PAIRS += \$(X86_TARGET_PAIRS) \system.ads<system-mingw.adsSO_OPTS = -m32 -Wl,-soname,endifendifEXTRA_GNATRTL_NONTASKING_OBJS = \s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.oEXTRA_GNATRTL_TASKING_OBJS = a-exetim.oMISCLIB = -lws2_32# ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT# auto-import support for array/record will be done.GNATLIB_SHARED = gnatlib-shared-win32EH_MECHANISM=-gccendifTOOLS_TARGET_PAIRS= \mlib-tgt-specific.adb<mlib-tgt-specific-mingw.adb \indepsw.adb<indepsw-mingw.adbGMEM_LIB = gmemlibEXTRA_GNATTOOLS = ../../gnatdll$(exeext)EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.osoext = .dllLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out mips linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-linux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux.ads \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-linux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \system.ads<system-linux-mips.adsEH_MECHANISM=-gccTHREADSLIB = -lpthreadGNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out mipsel linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS_COMMON = \a-intnam.ads<a-intnam-linux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux-mipsel.ads \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-linux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix-noaltstack.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \g-sercom.adb<g-sercom-linux.adbLIBGNAT_TARGET_PAIRS_32 = \system.ads<system-linux-mipsel.adsLIBGNAT_TARGET_PAIRS_64 = \system.ads<system-linux-mips64el.adsifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64)LIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)elseLIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)endifTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_TASKING_OBJS=s-linux.oEH_MECHANISM=-gccTHREADSLIB = -lpthreadGNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out mips64el linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS_COMMON = \a-intnam.ads<a-intnam-linux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux-mipsel.ads \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-linux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix-noaltstack.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \g-sercom.adb<g-sercom-linux.adbLIBGNAT_TARGET_PAIRS_32 = \system.ads<system-linux-mipsel.adsLIBGNAT_TARGET_PAIRS_64 = \system.ads<system-linux-mips64el.adsifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64)LIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)elseLIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)endifTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_TASKING_OBJS=s-linux.oEH_MECHANISM=-gccTHREADSLIB = -lpthreadGNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out powerpc% linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS_COMMON = \a-exetim.adb<a-exetim-posix.adb \a-exetim.ads<a-exetim-default.ads \a-intnam.ads<a-intnam-linux.ads \a-synbar.adb<a-synbar-posix.adb \a-synbar.ads<a-synbar-posix.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux.ads \s-osinte.adb<s-osinte-posix.adb \s-tpopsp.adb<s-tpopsp-tls.adb \g-sercom.adb<g-sercom-linux.adb \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS)ifeq ($(strip $(filter-out xenomai,$(THREAD_KIND))),)LIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON)LIBGNAT_TARGET_PAIRS += \s-osinte.ads<s-osinte-linux-xenomai.ads \s-osprim.adb<s-osprim-linux-xenomai.adb \s-taprop.adb<s-taprop-linux-xenomai.adb \s-taspri.ads<s-taspri-linux-xenomai.ads \system.ads<system-linux-ppc.adselseLIBGNAT_TARGET_PAIRS_32 = \system.ads<system-linux-ppc.adsLIBGNAT_TARGET_PAIRS_64 = \system.ads<system-linux-ppc64.adsifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64)LIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)elseLIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)endifLIBGNAT_TARGET_PAIRS += \s-mudido.adb<s-mudido-affinity.adb \s-osinte.ads<s-osinte-linux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix-noaltstack.adsendifTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.oEH_MECHANISM=-gccTHREADSLIB = -lpthread -lrtGNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out arm% linux-gnueabi,$(arch) $(osys)-$(word 4,$(targ)))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-linux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux.ads \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-linux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix-noaltstack.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adbifeq ($(strip $(filter-out arm%b,$(arch))),)LIBGNAT_TARGET_PAIRS += \system.ads<system-linux-armeb.adselseLIBGNAT_TARGET_PAIRS += \system.ads<system-linux-armel.adsendifTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_TASKING_OBJS=s-linux.oEH_MECHANISM=THREADSLIB = -lpthreadGNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out sparc% linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS_COMMON = \a-intnam.ads<a-intnam-linux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux-sparc.ads \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-linux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix-noaltstack.ads \s-tpopsp.adb<s-tpopsp-tls.adbLIBGNAT_TARGET_PAIRS_32 = \system.ads<system-linux-sparc.adsLIBGNAT_TARGET_PAIRS_64 = \system.ads<system-linux-sparcv9.adsifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64)LIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)elseLIBGNAT_TARGET_PAIRS = \$(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)endifTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_TASKING_OBJS=s-linux.oEH_MECHANISM=-gccTHREADSLIB = -lpthreadGNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out hppa% linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-linux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux-hppa.ads \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-linux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix-noaltstack.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \system.ads<system-linux-hppa.adsTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_TASKING_OBJS=s-linux.oEH_MECHANISM=-gccTHREADSLIB = -lpthreadGNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out sh4% linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-linux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux.ads \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-linux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-taspri.ads<s-taspri-posix-noaltstack.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \system.ads<system-linux-sh4.adsTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-linux.adbEXTRA_GNATRTL_TASKING_OBJS=s-linux.oEH_MECHANISM=-gccMISCLIB=THREADSLIB = -lpthreadGNATLIB_SHARED = gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out %ia64 linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS = \a-exetim.adb<a-exetim-posix.adb \a-exetim.ads<a-exetim-default.ads \a-intnam.ads<a-intnam-linux.ads \a-numaux.ads<a-numaux-libc-x86.ads \a-synbar.adb<a-synbar-posix.adb \a-synbar.ads<a-synbar-posix.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux.ads \s-mudido.adb<s-mudido-affinity.adb \s-osinte.ads<s-osinte-linux.ads \s-osinte.adb<s-osinte-posix.adb \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-tpopsp.adb<s-tpopsp-tls.adb \s-taspri.ads<s-taspri-posix-noaltstack.ads \g-sercom.adb<g-sercom-linux.adb \system.ads<system-linux-ia64.ads \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS)TOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.oEH_MECHANISM=-gccMISCLIB=THREADSLIB=-lpthread -lrtGNATLIB_SHARED=gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out ia64% hp hpux%,$(targ))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-hpux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-osinte.adb<s-osinte-posix.adb \s-osinte.ads<s-osinte-hpux.ads \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-posix.adb \s-taspri.ads<s-taspri-posix-noaltstack.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \system.ads<system-hpux-ia64.ads \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS)TOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-ia64-hpux.adbMISCLIB=THREADSLIB=-lpthreadGNATLIB_SHARED=gnatlib-shared-dualGMEM_LIB = gmemlibsoext = .slSO_OPTS = -Wl,+h,LIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out alpha% linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-linux.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux-alpha.ads \s-osinte.ads<s-osinte-linux.ads \s-osinte.adb<s-osinte-posix.adb \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-tpopsp.adb<s-tpopsp-posix-foreign.adb \s-taspri.ads<s-taspri-posix-noaltstack.ads \system.ads<system-linux-alpha.ads \$(ATOMICS_TARGET_PAIRS) \$(ATOMICS_BUILTINS_TARGET_PAIRS)TOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_TASKING_OBJS=s-linux.oEH_MECHANISM=-gccMISCLIB=THREADSLIB=-lpthreadGNATLIB_SHARED=gnatlib-shared-dualLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out %x86_64 linux%,$(arch) $(osys))),)LIBGNAT_TARGET_PAIRS = \a-exetim.adb<a-exetim-posix.adb \a-exetim.ads<a-exetim-default.ads \a-intnam.ads<a-intnam-linux.ads \a-synbar.adb<a-synbar-posix.adb \a-synbar.ads<a-synbar-posix.ads \s-inmaop.adb<s-inmaop-posix.adb \s-intman.adb<s-intman-posix.adb \s-linux.ads<s-linux.ads \s-mudido.adb<s-mudido-affinity.adb \s-osinte.ads<s-osinte-linux.ads \s-osinte.adb<s-osinte-posix.adb \s-osprim.adb<s-osprim-posix.adb \s-taprop.adb<s-taprop-linux.adb \s-tasinf.ads<s-tasinf-linux.ads \s-tasinf.adb<s-tasinf-linux.adb \s-tpopsp.adb<s-tpopsp-tls.adb \s-taspri.ads<s-taspri-posix.ads \g-sercom.adb<g-sercom-linux.adb \$(ATOMICS_TARGET_PAIRS) \$(X86_64_TARGET_PAIRS) \system.ads<system-linux-x86_64.adsTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \indepsw.adb<indepsw-gnu.adbEXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.oEXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.oEH_MECHANISM=-gccTHREADSLIB=-lpthread -lrtGNATLIB_SHARED=gnatlib-shared-dualGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)endififeq ($(strip $(filter-out darwin%,$(osys))),)SO_OPTS = -shared-libgccLIBGNAT_TARGET_PAIRS = \a-intnam.ads<a-intnam-darwin.ads \s-inmaop.adb<s-inmaop-posix.adb \s-osinte.adb<s-osinte-darwin.adb \s-osinte.ads<s-osinte-darwin.ads \s-taprop.adb<s-taprop-posix.adb \s-taspri.ads<s-taspri-posix.ads \s-tpopsp.adb<s-tpopsp-posix-foreign.adbifeq ($(strip $(filter-out %86,$(arch))),)LIBGNAT_TARGET_PAIRS += \s-intman.adb<s-intman-susv3.adb \s-osprim.adb<s-osprim-darwin.adb \$(ATOMICS_TARGET_PAIRS)ifeq ($(strip $(MULTISUBDIR)),/x86_64)LIBGNAT_TARGET_PAIRS += \$(X86_64_TARGET_PAIRS) \system.ads<system-darwin-x86_64.adsSO_OPTS += -m64elseLIBGNAT_TARGET_PAIRS += \$(X86_TARGET_PAIRS) \system.ads<system-darwin-x86.adsendifendififeq ($(strip $(filter-out %x86_64,$(arch))),)LIBGNAT_TARGET_PAIRS += \s-intman.adb<s-intman-susv3.adb \s-osprim.adb<s-osprim-darwin.adb \$(ATOMICS_TARGET_PAIRS)ifeq ($(strip $(MULTISUBDIR)),/i386)LIBGNAT_TARGET_PAIRS += \$(X86_TARGET_PAIRS) \system.ads<system-darwin-x86.adsSO_OPTS += -m32elseLIBGNAT_TARGET_PAIRS += \$(X86_64_TARGET_PAIRS) \system.ads<system-darwin-x86_64.adsendifendififeq ($(strip $(filter-out powerpc%,$(arch))),)LIBGNAT_TARGET_PAIRS += \s-intman.adb<s-intman-posix.adb \s-osprim.adb<s-osprim-posix.adb \a-numaux.ads<a-numaux-darwin.ads \a-numaux.adb<a-numaux-darwin.adbifeq ($(strip $(MULTISUBDIR)),/ppc64)LIBGNAT_TARGET_PAIRS += \system.ads<system-darwin-ppc64.adsSO_OPTS += -m64elseLIBGNAT_TARGET_PAIRS += \system.ads<system-darwin-ppc.adsendifendifTOOLS_TARGET_PAIRS = \mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb \indepsw.adb<indepsw-darwin.adbEH_MECHANISM=-gccGNATLIB_SHARED = gnatlib-shared-darwinGMEM_LIB = gmemlibLIBRARY_VERSION := $(LIB_VERSION)soext = .dylibGCC_LINK_FLAGS=endififneq ($(EH_MECHANISM),)LIBGNAT_TARGET_PAIRS += a-exexpr.adb<a-exexpr$(EH_MECHANISM).adbEXTRA_LIBGNAT_SRCS+=raise$(EH_MECHANISM).cEXTRA_LIBGNAT_OBJS+=raise$(EH_MECHANISM).oendif# Use the Ada 2005 version of Ada.Exceptions by default, unless specified# explicitly already. The base files (a-except.ad?) are used only for building# the compiler and other basic tools.# These base versions lack Ada 2005 additions which would cause bootstrap# problems if included in the compiler and other basic tools.ifeq ($(filter a-except%,$(LIBGNAT_TARGET_PAIRS)),)LIBGNAT_TARGET_PAIRS += \a-except.ads<a-except-2005.ads \a-except.adb<a-except-2005.adbendif# The runtime library for gnat comprises two directories. One contains the# Ada source files that the compiler (gnat1) needs -- these files are listed# by ADA_INCLUDE_SRCS -- and the other contains the object files and their# corresponding .ali files for the parts written in Ada, libgnat.a for# the parts of the runtime written in C, and libgthreads.a for the pthreads# emulation library. LIBGNAT_OBJS lists the objects that go into libgnat.a,# while GNATRTL_OBJS lists the object files compiled from Ada sources that# go into the directory. The pthreads emulation is built in the threads# subdirectory and copied.LIBGNAT_SRCS = adadecode.c adadecode.h adaint.c adaint.h \argv.c cio.c cstreams.c errno.c exit.c cal.c ctrl_c.c env.c env.h \arit64.c raise.h raise.c sysdep.c aux-io.c init.c initialize.c \locales.c seh_init.c final.c tracebak.c tb-alvms.c tb-alvxw.c \tb-gcc.c expect.c mkdir.c socket.c gsocket.h targext.c terminals.c \thread.c $(EXTRA_LIBGNAT_SRCS)LIBGNAT_OBJS = adadecode.o adaint.o argv.o cio.o cstreams.o ctrl_c.o \errno.o exit.o env.o raise.o sysdep.o aux-io.o init.o initialize.o \locales.o seh_init.o cal.o arit64.o final.o tracebak.o expect.o \mkdir.o socket.o targext.o terminals.o $(EXTRA_LIBGNAT_OBJS)# NOTE ??? - when the -I option for compiling Ada code is made to work,# the library installation will change and there will be a# GNAT_RTL_SRCS. Right now we count on being able to build GNATRTL_OBJS# from ADA_INCLUDE_SRCS.# GNATRTL_NONTASKING_OBJS and GNATRTL_TASKING_OBJS can be found in# the following include file:include $(fsrcdir)/ada/Makefile.rtlGNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \memtrack.o# Default run time filesADA_INCLUDE_SRCS =\ada.ads calendar.ads directio.ads gnat.ads interfac.ads ioexcept.ads \machcode.ads text_io.ads unchconv.ads unchdeal.ads \sequenio.ads system.ads memtrack.adb \a-[a-o]*.adb a-[p-z]*.adb a-[a-o]*.ads a-[p-z]*.ads g-*.ad? i-*.ad? \s-[a-o]*.adb s-[p-z]*.adb s-[a-o]*.ads s-[p-z]*.adsLIBGNAT=../$(RTSDIR)/libgnat.aTOOLS_FLAGS_TO_PASS= \"CC=$(CC)" \"CFLAGS=$(CFLAGS)" \"LDFLAGS=$(LDFLAGS)" \"ADAFLAGS=$(ADAFLAGS)" \"INCLUDES=$(INCLUDES_FOR_SUBDIR)"\"ADA_INCLUDES=$(ADA_INCLUDES) $(ADA_INCLUDES_FOR_SUBDIR)"\"libsubdir=$(libsubdir)" \"exeext=$(exeext)" \"fsrcdir=$(fsrcdir)" \"srcdir=$(fsrcdir)" \"TOOLS_LIBS=$(TOOLS_LIBS) $(TGT_LIB)" \"GNATMAKE=$(GNATMAKE)" \"GNATLINK=$(GNATLINK)" \"GNATBIND=$(GNATBIND)"GCC_LINK=$(CC) $(GCC_LINK_FLAGS) $(ADA_INCLUDES)# Build directory for the tools. Let's copy the target-dependent# sources using the same mechanism as for gnatlib. The other sources are# accessed using the vpath directive below# Note: dummy target, stamp-tools is mainly handled by gnattools.../stamp-tools:touch ../stamp-tools# when compiling the tools, the runtime has to be first on the path so that# it hides the runtime files lying with the rest of the sourcesifeq ($(TOOLSCASE),native)vpath %.ads ../$(RTSDIR) ../vpath %.adb ../$(RTSDIR) ../vpath %.c ../$(RTSDIR) ../vpath %.h ../$(RTSDIR) ../endif# in the cross tools case, everything is compiled with the native# gnatmake/link. Therefore only -I needs to be modified in ADA_INCLUDESifeq ($(TOOLSCASE),cross)vpath %.ads ../vpath %.adb ../vpath %.c ../vpath %.h ../endif# gnatmake/link tools cannot always be built with gnatmake/link for bootstrap# reasons: gnatmake should be built with a recent compiler, a recent compiler# may not generate ALI files compatible with an old gnatmake so it is important# to be able to build gnatmake without a version of gnatmake around. Once# everything has been compiled once, gnatmake can be recompiled with itself# (see target gnattools1-re)gnattools1: ../stamp-tools ../stamp-gnatlib-$(RTSDIR)$(MAKE) -C tools -f ../Makefile $(TOOLS_FLAGS_TO_PASS) \TOOLSCASE=native \../../gnatmake$(exeext) ../../gnatlink$(exeext)# gnatmake/link can be built with recent gnatmake/link if they are available.# This is especially convenient for building cross tools or for rebuilding# the tools when the original bootstrap has already be done.gnattools1-re: ../stamp-tools$(MAKE) -C tools -f ../Makefile $(TOOLS_FLAGS_TO_PASS) \TOOLSCASE=cross INCLUDES="" gnatmake-re gnatlink-re# these tools are built with gnatmake & are common to native and crossgnattools2: ../stamp-tools$(MAKE) -C tools -f ../Makefile $(TOOLS_FLAGS_TO_PASS) \TOOLSCASE=native common-tools $(EXTRA_GNATTOOLS)# those tools are only built for the cross versiongnattools4: ../stamp-toolsifeq ($(ENABLE_VXADDR2LINE),true)$(MAKE) -C tools -f ../Makefile $(TOOLS_FLAGS_TO_PASS) \TOOLSCASE=cross top_buildir=../../.. \../../vxaddr2line$(exeext)endifcommon-tools: ../stamp-tools$(GNATMAKE) -j0 -c -b $(ADA_INCLUDES) \--GNATBIND="$(GNATBIND)" --GCC="$(CC) $(ALL_ADAFLAGS)" \gnatchop gnatcmd gnatkr gnatls gnatprep gnatxref gnatfind gnatname \gnatclean -bargs $(ADA_INCLUDES) $(GNATBIND_FLAGS)$(GNATLINK) -v gnatcmd -o ../../gnat$(exeext) \--GCC="$(GCC_LINK)" $(TOOLS_LIBS)$(GNATLINK) -v gnatchop -o ../../gnatchop$(exeext) \--GCC="$(GCC_LINK)" $(TOOLS_LIBS)$(GNATLINK) -v gnatkr -o ../../gnatkr$(exeext) \--GCC="$(GCC_LINK)" $(TOOLS_LIBS)$(GNATLINK) -v gnatls -o ../../gnatls$(exeext) \--GCC="$(GCC_LINK)" $(TOOLS_LIBS)$(GNATLINK) -v gnatprep -o ../../gnatprep$(exeext) \--GCC="$(GCC_LINK)" $(TOOLS_LIBS)$(GNATLINK) -v gnatxref -o ../../gnatxref$(exeext) \--GCC="$(GCC_LINK)" $(TOOLS_LIBS)$(GNATLINK) -v gnatfind -o ../../gnatfind$(exeext) \--GCC="$(GCC_LINK)" $(TOOLS_LIBS)$(GNATLINK) -v gnatname -o ../../gnatname$(exeext) \--GCC="$(GCC_LINK)" $(TOOLS_LIBS)$(GNATLINK) -v gnatclean -o ../../gnatclean$(exeext) \--GCC="$(GCC_LINK)" $(TOOLS_LIBS)../../gnatsym$(exeext): ../stamp-tools$(GNATMAKE) -c $(ADA_INCLUDES) gnatsym --GCC="$(CC) $(ALL_ADAFLAGS)"$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatsym$(GNATLINK) -v gnatsym -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)../../gnatdll$(exeext): ../stamp-tools$(GNATMAKE) -c $(ADA_INCLUDES) gnatdll --GCC="$(CC) $(ALL_ADAFLAGS)"$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatdll$(GNATLINK) -v gnatdll -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)../../vxaddr2line$(exeext): ../stamp-tools targext.o$(GNATMAKE) -c $(ADA_INCLUDES) vxaddr2line --GCC="$(CC) $(ALL_ADAFLAGS)"$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) vxaddr2line$(GNATLINK) -v vxaddr2line -o $@ --GCC="$(GCC_LINK)" targext.o $(CLIB)gnatmake-re: ../stamp-tools link.o targext.o$(GNATMAKE) -j0 $(ADA_INCLUDES) -u sdefault --GCC="$(CC) $(MOST_ADA_FLAGS)"$(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatmake --GCC="$(CC) $(ALL_ADAFLAGS)"$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatmake$(GNATLINK) -v gnatmake -o ../../gnatmake$(exeext) \--GCC="$(GCC_LINK)" $(TOOLS_LIBS)# Note the use of the "mv" command in order to allow gnatlink to be linked with# with the former version of gnatlink itself which cannot override itself.# gnatlink-re cannot be run at the same time as gnatmake-re, hence the# dependencygnatlink-re: ../stamp-tools link.o targext.o gnatmake-re$(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatlink --GCC="$(CC) $(ALL_ADAFLAGS)"$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatlink$(GNATLINK) -v gnatlink -o ../../gnatlinknew$(exeext) \--GCC="$(GCC_LINK)" $(TOOLS_LIBS)$(MV) ../../gnatlinknew$(exeext) ../../gnatlink$(exeext)# Needs to be built with CC=gcc# Since the RTL should be built with the latest compiler, remove the# stamp target in the parent directory whenever gnat1 is rebuilt# Likewise for the tools../../gnatmake$(exeext): $(P) b_gnatm.o link.o targext.o $(GNATMAKE_OBJS)$(GCC_LINK) $(ALL_CFLAGS) $(LDFLAGS) -o $@ b_gnatm.o $(GNATMAKE_OBJS) \$(TOOLS_LIBS)../../gnatlink$(exeext): $(P) b_gnatl.o link.o targext.o $(GNATLINK_OBJS)$(GCC_LINK) $(ALL_CFLAGS) $(LDFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) \$(TOOLS_LIBS)../stamp-gnatlib-$(RTSDIR):@if [ ! -f stamp-gnatlib-$(RTSDIR) ] ; \then \$(ECHO) You must first build the GNAT library: make gnatlib; \false; \else \true; \fiinstall-gnatlib: ../stamp-gnatlib-$(RTSDIR)# Create the directory before deleting it, in case the directory is# a list of directories (as it may be on VMS). This ensures we are# deleting the right one.-$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)-$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)$(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)$(RMDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)-$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)-$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)for file in $(RTSDIR)/*.ali; do \$(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \done-cd $(RTSDIR); for file in *$(arext);do \$(INSTALL_DATA) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \$(RANLIB_FOR_TARGET) $(DESTDIR)$(ADA_RTL_OBJ_DIR)/$$file; \done-$(foreach file, $(EXTRA_ADALIB_FILES), \$(INSTALL_DATA_DATE) $(RTSDIR)/$(file) $(DESTDIR)$(ADA_RTL_OBJ_DIR) && \) true# Install the shared libraries, if any, using $(INSTALL) instead# of $(INSTALL_DATA). The latter may force a mode inappropriate# for shared libraries on some targets, e.g. on HP-UX where the x# permission is required.# Also install the .dSYM directories if they exist (these directories# contain the debug information for the shared libraries on darwin),# and the windows import libraries if they exist.libpfx=$(if $(WIN_SO_PREFIX),$(WIN_SO_PREFIX),lib); \librtlobjdir=$(if $(WIN_SO_INSTALL_DIR),$(WIN_SO_INSTALL_DIR),$(ADA_RTL_OBJ_DIR)); \for file in gnat gnarl; do \if [ -f $(RTSDIR)/$${libpfx}$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \$(INSTALL) $(RTSDIR)/$${libpfx}$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \$(DESTDIR)$${librtlobjdir}; \fi; \if [ -f $(RTSDIR)/lib$${file}$(soext) ]; then \$(LN_S) lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \$(DESTDIR)$(ADA_RTL_OBJ_DIR)/lib$${file}$(soext); \fi; \if [ -d $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM ]; then \$(CP) -r $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM \$(DESTDIR)$(ADA_RTL_OBJ_DIR); \fi; \if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) ]; then \$(INSTALL_DATA) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \$(DESTDIR)$(ADA_RTL_OBJ_DIR); \fi; \done# This copy must be done preserving the date on the original file.for file in $(RTSDIR)/*.ad?; do \$(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_INCLUDE_DIR); \donecd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adbcd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads../stamp-gnatlib2-$(RTSDIR):$(RM) $(RTSDIR)/s-*.ali$(RM) $(RTSDIR)/s-*$(objext)$(RM) $(RTSDIR)/a-*.ali$(RM) $(RTSDIR)/a-*$(objext)$(RM) $(RTSDIR)/*.ali$(RM) $(RTSDIR)/*$(objext)$(RM) $(RTSDIR)/*$(arext)$(RM) $(RTSDIR)/*$(soext)touch ../stamp-gnatlib2-$(RTSDIR)$(RM) ../stamp-gnatlib-$(RTSDIR)# NOTE: The $(foreach ...) commands assume ";" is the valid separator between# successive target commands. Although the Gnu make documentation# implies this is true on all systems, I suspect it may not be, So care# has been taken to allow a sed script to look for ";)" and substitue# for ";" the appropriate character in the range of lines below# beginning with "GNULLI Begin" and ending with "GNULLI End"# GNULLI Begin ###########################################################../stamp-gnatlib1-$(RTSDIR): Makefile ../stamp-gnatlib2-$(RTSDIR)$(RMDIR) $(RTSDIR)$(MKDIR) $(RTSDIR)$(CHMOD) u+w $(RTSDIR)# Copy target independent sources$(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS), \$(LN_S) $(fsrcpfx)ada/$(f) $(RTSDIR) ;) true# Remove files to be replaced by target dependent sources$(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \$(RTSDIR)/$(word 1,$(subst <, ,$(PAIR))))for f in $(RTSDIR)/*-*-*.ads $(RTSDIR)/*-*-*.adb; do \case "$$f" in \$(RTSDIR)/s-stratt-*) ;; \*) $(RM) $$f ;; \esac; \done# Copy new target dependent sources$(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \$(LN_S) $(fsrcpfx)ada/$(word 2,$(subst <, ,$(PAIR))) \$(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));)# Copy tsystem.h$(CP) $(srcdir)/tsystem.h $(RTSDIR)$(RM) ../stamp-gnatlib-$(RTSDIR)touch ../stamp-gnatlib1-$(RTSDIR)# GNULLI End #############################################################ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(subst -, ,$(host)))),)OSCONS_CPP=../../$(DECC) -E /comment=as_is -DNATIVE \-DTARGET='""$(target)""' $(fsrcpfx)ada/s-oscons-tmplt.cOSCONS_EXTRACT=../../$(DECC) -DNATIVE \-DTARGET='""$(target)""' $(fsrcpfx)ada/s-oscons-tmplt.c ; \ld -o s-oscons-tmplt.exe s-oscons-tmplt.obj; \./s-oscons-tmplt.exe > s-oscons-tmplt.selse# GCC_FOR_TARGET has paths relative to the gcc directory, so we need to adjust# for running it from $(RTSDIR)OSCONS_CC=`echo "$(GCC_FOR_TARGET)" \| sed -e 's^\./xgcc^../../xgcc^' -e 's^-B./^-B../../^'`OSCONS_CPP=$(OSCONS_CC) $(GNATLIBCFLAGS) -E -C \-DTARGET=\"$(target)\" $(fsrcpfx)ada/s-oscons-tmplt.c > s-oscons-tmplt.iOSCONS_EXTRACT=$(OSCONS_CC) $(GNATLIBCFLAGS) -S s-oscons-tmplt.iendif./bldtools/oscons/xoscons: xoscons.adb xutil.ads xutil.adb-$(MKDIR) ./bldtools/oscons$(RM) $(addprefix ./bldtools/oscons/,$(notdir $^))$(CP) $^ ./bldtools/oscons(cd ./bldtools/oscons ; gnatmake -q xoscons)$(RTSDIR)/s-oscons.ads: ../stamp-gnatlib1-$(RTSDIR) s-oscons-tmplt.c gsocket.h ./bldtools/oscons/xoscons$(RM) $(RTSDIR)/s-oscons-tmplt.i $(RTSDIR)/s-oscons-tmplt.s(cd $(RTSDIR) ; \$(OSCONS_CPP) ; \$(OSCONS_EXTRACT) ; \../bldtools/oscons/xoscons)# Don't use semicolon separated shell commands that involve list expansions.# The semicolon triggers a call to DCL on VMS and DCL can't handle command# line lengths in excess of 256 characters.# Example: cd $(RTSDIR); ar rc libfoo.a $(LONG_LIST_OF_OBJS)# is guaranteed to overflow the buffer.gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR) $(RTSDIR)/s-oscons.ads$(MAKE) -C $(RTSDIR) \CC="`echo \"$(GCC_FOR_TARGET)\" \| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \INCLUDES="$(INCLUDES_FOR_SUBDIR) -I./../.." \CFLAGS="$(GNATLIBCFLAGS_FOR_C)" \FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \srcdir=$(fsrcdir) \-f ../Makefile $(LIBGNAT_OBJS)$(MAKE) -C $(RTSDIR) \CC="`echo \"$(GCC_FOR_TARGET)\" \| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \ADA_INCLUDES="" \CFLAGS="$(GNATLIBCFLAGS)" \ADAFLAGS="$(GNATLIBFLAGS)" \FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \srcdir=$(fsrcdir) \-f ../Makefile \$(GNATRTL_OBJS)$(RM) $(RTSDIR)/libgnat$(arext) $(RTSDIR)/libgnarl$(arext)$(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgnat$(arext) \$(addprefix $(RTSDIR)/,$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS))$(RANLIB_FOR_TARGET) $(RTSDIR)/libgnat$(arext)$(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgnarl$(arext) \$(addprefix $(RTSDIR)/,$(GNATRTL_TASKING_OBJS))$(RANLIB_FOR_TARGET) $(RTSDIR)/libgnarl$(arext)ifeq ($(GMEM_LIB),gmemlib)$(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgmem$(arext) \$(RTSDIR)/memtrack.o$(RANLIB_FOR_TARGET) $(RTSDIR)/libgmem$(arext)endif$(CHMOD) a-wx $(RTSDIR)/*.alitouch ../stamp-gnatlib-$(RTSDIR)# Warning: this target assumes that LIBRARY_VERSION has been set correctly.gnatlib-shared-default:$(MAKE) $(FLAGS_TO_PASS) \GNATLIBFLAGS="$(GNATLIBFLAGS)" \GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \MULTISUBDIR="$(MULTISUBDIR)" \THREAD_KIND="$(THREAD_KIND)" \gnatlib$(RM) $(RTSDIR)/libgna*$(soext)cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \$(PICFLAG_FOR_TARGET) \-o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \$(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \$(MISCLIB) -lmcd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \$(PICFLAG_FOR_TARGET) \-o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \$(GNATRTL_TASKING_OBJS) \$(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \$(THREADSLIB)cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \libgnat$(soext)cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \libgnarl$(soext)gnatlib-shared-dual:$(MAKE) $(FLAGS_TO_PASS) \GNATLIBFLAGS="$(GNATLIBFLAGS)" \GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \MULTISUBDIR="$(MULTISUBDIR)" \THREAD_KIND="$(THREAD_KIND)" \gnatlib-shared-default$(MV) $(RTSDIR)/libgna*$(soext) .$(RM) ../stamp-gnatlib2-$(RTSDIR)$(MAKE) $(FLAGS_TO_PASS) \GNATLIBFLAGS="$(GNATLIBFLAGS)" \GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \MULTISUBDIR="$(MULTISUBDIR)" \THREAD_KIND="$(THREAD_KIND)" \gnatlib$(MV) libgna*$(soext) $(RTSDIR)gnatlib-shared-dual-win32:$(MAKE) $(FLAGS_TO_PASS) \GNATLIBFLAGS="$(GNATLIBFLAGS)" \GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \MULTISUBDIR="$(MULTISUBDIR)" \THREAD_KIND="$(THREAD_KIND)" \gnatlib-shared-win32$(MV) $(RTSDIR)/libgna*$(soext) .$(RM) ../stamp-gnatlib2-$(RTSDIR)$(MAKE) $(FLAGS_TO_PASS) \GNATLIBFLAGS="$(GNATLIBFLAGS)" \GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \MULTISUBDIR="$(MULTISUBDIR)" \THREAD_KIND="$(THREAD_KIND)" \gnatlib$(MV) libgna*$(soext) $(RTSDIR)# ??? we need to add the option to support auto-import of arrays/records to# the GNATLIBFLAGS when this will be supported by GNAT. At this point we will# use the gnatlib-shared-dual-win32 target to build the GNAT runtimes on# Windows.gnatlib-shared-win32:$(MAKE) $(FLAGS_TO_PASS) \GNATLIBFLAGS="$(GNATLIBFLAGS)" \GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \MULTISUBDIR="$(MULTISUBDIR)" \THREAD_KIND="$(THREAD_KIND)" \gnatlib$(RM) $(RTSDIR)/libgna*$(soext)cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \$(PICFLAG_FOR_TARGET) \-o $(WIN_SO_PREFIX)gnat$(hyphen)$(LIBRARY_VERSION)$(soext) \-Wl,-out-implib,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \$(SO_OPTS)$(WIN_SO_PREFIX)gnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \$(PICFLAG_FOR_TARGET) \-o $(WIN_SO_PREFIX)gnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \-Wl,-out-implib,libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \$(GNATRTL_TASKING_OBJS) \$(SO_OPTS)$(WIN_SO_PREFIX)gnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \$(THREADSLIB) -L. -lgnat$(hyphen)$(LIBRARY_VERSION)gnatlib-shared-darwin:$(MAKE) $(FLAGS_TO_PASS) \GNATLIBFLAGS="$(GNATLIBFLAGS)" \GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) -fno-common" \MULTISUBDIR="$(MULTISUBDIR)" \THREAD_KIND="$(THREAD_KIND)" \gnatlib$(RM) $(RTSDIR)/libgnat$(soext) $(RTSDIR)/libgnarl$(soext)cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -dynamiclib $(PICFLAG_FOR_TARGET) \-o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \$(SO_OPTS) \-Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \$(MISCLIB)cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -dynamiclib $(PICFLAG_FOR_TARGET) \-o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \$(GNATRTL_TASKING_OBJS) \$(SO_OPTS) \-Wl,-install_name,@rpath/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \$(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \libgnat$(soext)cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \libgnarl$(soext)cd $(RTSDIR); dsymutil libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)cd $(RTSDIR); dsymutil libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)gnatlib-shared-vms:$(MAKE) $(FLAGS_TO_PASS) \GNATLIBFLAGS="$(GNATLIBFLAGS)" \GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \MULTISUBDIR="$(MULTISUBDIR)" \THREAD_KIND="$(THREAD_KIND)" \gnatlib$(RM) $(RTSDIR)/libgna*$(soext)cd $(RTSDIR) && \../../gnatsym -s SYMVEC_$$$$.opt \$(LIBGNAT_OBJS) $(GNATRTL_NONTASKING_OBJS) && \../../xgcc -g -B../../ -shared -shared-libgcc \-o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) libgnat.a \sys\$$library:trace.exe \--for-linker=/noinform \--for-linker=SYMVEC_$$$$.opt \--for-linker=gsmatch=equal,$(GSMATCH_VERSION)cd $(RTSDIR) && \../../gnatsym -s SYMVEC_$$$$.opt \$(GNATRTL_TASKING_OBJS) && \../../xgcc -g -B../../ -shared -shared-libgcc \-o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \libgnarl.a libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \sys\$$library:trace.exe \--for-linker=/noinform \--for-linker=SYMVEC_$$$$.opt \--for-linker=gsmatch=equal,$(GSMATCH_VERSION)gnatlib-shared:$(MAKE) $(FLAGS_TO_PASS) \GNATLIBFLAGS="$(GNATLIBFLAGS)" \GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \MULTISUBDIR="$(MULTISUBDIR)" \THREAD_KIND="$(THREAD_KIND)" \PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \$(GNATLIB_SHARED)# When building a SJLJ runtime for VxWorks, in addition to forcing# ZCX_By_default to True, we need to ensure that -crtbe linker options# is not passed. Otherwise we will end with weak symbols on# __register_frame_info and __deregister_frame_info. The VxWorks 5.x# will issue an error on weak symbols.gnatlib-sjlj:$(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="" \THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR)sed -e 's/ZCX_By_Default.*/ZCX_By_Default : constant Boolean := False;/' $(RTSDIR)/system.ads > $(RTSDIR)/s.adscat $(RTSDIR)/s.ads | grep -v "Linker_Options.*-crtbe" > $(RTSDIR)/s2.ads$(RM) $(RTSDIR)/s.ads$(MV) $(RTSDIR)/s2.ads $(RTSDIR)/system.ads$(MAKE) $(FLAGS_TO_PASS) \EH_MECHANISM="" \GNATLIBFLAGS="$(GNATLIBFLAGS)" \GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \MULTISUBDIR="$(MULTISUBDIR)" \THREAD_KIND="$(THREAD_KIND)" \PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlibgnatlib-zcx:$(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="-gcc" \THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR)sed -e 's/ZCX_By_Default.*/ZCX_By_Default : constant Boolean := True;/' $(RTSDIR)/system.ads > $(RTSDIR)/s.ads$(MV) $(RTSDIR)/s.ads $(RTSDIR)/system.ads$(MAKE) $(FLAGS_TO_PASS) \EH_MECHANISM="-gcc" \GNATLIBFLAGS="$(GNATLIBFLAGS)" \GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \MULTISUBDIR="$(MULTISUBDIR)" \THREAD_KIND="$(THREAD_KIND)" \PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib# Compiling object files from source files.# Note that dependencies on obstack.h are not written# because that file is not part of GCC.# Dependencies on gvarargs.h are not written# because all that file does, when not compiling with GCC,# is include the system varargs.h.b_gnatl.adb : $(GNATLINK_OBJS)$(GNATBIND) $(ADA_INCLUDES) -o b_gnatl.adb gnatlink.alib_gnatl.o : b_gnatl.adb$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN \$< $(OUTPUT_OPTION)b_gnatm.adb : $(GNATMAKE_OBJS)$(GNATBIND) $(ADA_INCLUDES) -o b_gnatm.adb gnatmake.alib_gnatm.o : b_gnatm.adb$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN \$< $(OUTPUT_OPTION)ADA_INCLUDE_DIR = $(libsubdir)/adaincludeADA_RTL_OBJ_DIR = $(libsubdir)/adalib# Special flags# force no sibling call optimization on s-traceb.o so the number of stack# frames to be skipped when computing a call chain is not modified by# optimization.s-traceb.o : s-traceb.adb s-traceb.ads$(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \$(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)# force debugging information on s-tasdeb.o so that it is always# possible to set conditional breakpoints on tasks.s-tasdeb.o : s-tasdeb.adb s-tasdeb.ads$(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \$< $(OUTPUT_OPTION)# force debugging information on s-vaflop.o so that it is always# possible to call the VAX float debug print routines.# force at least -O so that the inline assembly works.s-vaflop.o : s-vaflop.adb s-vaflop.ads$(CC) -c -O $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \$< $(OUTPUT_OPTION)# force no function reordering on a-except.o because of the exclusion bounds# mechanism (see the source file for more detailed information).# force debugging information on a-except.o so that it is always# possible to set conditional breakpoints on exceptions.# use -O1 otherwise gdb isn't able to get a full backtrace on mips targets.a-except.o : a-except.adb a-except.ads$(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O1 -fno-inline \$(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)# compile s-excdeb.o without optimization and with debug info to let the# debugger set breakpoints and inspect subprogram parameters on exception# related events.s-excdeb.o : s-excdeb.adb s-excdeb.ads s-except.ads$(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \$< $(OUTPUT_OPTION)# force debugging information on s-assert.o so that it is always# possible to set breakpoint on assert failures.s-assert.o : s-assert.adb s-assert.ads$(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \$< $(OUTPUT_OPTION)# force debugging information on a-tags.o so that the debugger can find# the description of Ada.Tags.Type_Specific_Data.a-tags.o : a-tags.adb a-tags.ads$(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \$< $(OUTPUT_OPTION)# need to keep the frame pointer in this file to pop the stack properly on# some targets.tracebak.o : tracebak.c tb-alvms.c tb-alvxw.c tb-gcc.c$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) \$(INCLUDES) -fno-omit-frame-pointer $< $(OUTPUT_OPTION)adadecode.o : adadecode.c adadecode.haux-io.o : aux-io.cargv.o : argv.ccal.o : cal.cdeftarg.o : deftarg.cerrno.o : errno.cexit.o : adaint.h exit.cexpect.o : expect.cfinal.o : final.clocales.o : locales.cmkdir.o : mkdir.csocket.o : socket.c gsocket.hsysdep.o : sysdep.craise.o : raise.c raise.hsigtramp-ppcvxw.o : sigtramp-ppcvxw.c sigtramp.hterminals.o : terminals.cvx_stack_info.o : vx_stack_info.craise-gcc.o : raise-gcc.c raise.h$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \-iquote $(srcdir) -iquote $(srcdir)/../libgcc \$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)cio.o : cio.c$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)init.o : init.c adaint.h raise.h$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)initialize.o : initialize.c raise.h$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)link.o : link.c$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \$(ALL_CPPFLAGS) $(INCLUDES_FOR_SUBDIR) \$< $(OUTPUT_OPTION)targext.o : targext.c$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \-iquote $(srcdir) \$(ALL_CPPFLAGS) $(INCLUDES_FOR_SUBDIR) \$< $(OUTPUT_OPTION)# In GNU Make, ignore whether `stage*' exists..PHONY: stage1 stage2 stage3 stage4 clean realclean TAGS bootstrap.PHONY: risky-stage1 risky-stage2 risky-stage3 risky-stage4force:
