# Makefile for GNU Ada Compiler (GNAT). # Copyright (C) 1994-2009 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 compilations CFLAGS = -g BOOT_CFLAGS = -O $(CFLAGS) # These exists to be overridden by the t-* files, respectively. T_CFLAGS = CC = cc BISON = bison BISONFLAGS = ECHO = echo LEX = flex LEXFLAGS = CHMOD = chmod LN = ln LN_S = ln -s CP = cp -p MV = mv -f RM = rm -f RMDIR = rm -rf MKDIR = mkdir -p AR = ar AR_FLAGS = rc LS = ls RANLIB = @RANLIB@ RANLIB_FLAGS = @ranlib_flags@ AWK = @AWK@ COMPILER = $(CC) COMPILER_FLAGS = $(CFLAGS) SHELL = @SHELL@ PWD_COMMAND = $${PWDCMD-pwd} # How to copy preserving the date INSTALL_DATA_DATE = cp -p MAKEINFO = makeinfo TEXI2DVI = texi2dvi TEXI2PDF = texi2pdf GNATBIND_FLAGS = -static -x ADA_CFLAGS = ADAFLAGS = -W -Wall -gnatpg -gnata SOME_ADAFLAGS =-gnata FORCE_DEBUG_ADAFLAGS = -g GNATLIBFLAGS = -gnatpg -nostdinc GNATLIBCFLAGS = -g -O2 # 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 = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \ -DIN_RTS -DHAVE_GETIPINFO ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) MOST_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(SOME_ADAFLAGS) THREAD_KIND = native THREADSLIB = GMEM_LIB = MISCLIB = SYMDEPS = $(LIBINTL_DEP) OUTPUT_OPTION = @OUTPUT_OPTION@ objext = .o exeext = arext = .a soext = .so shext = 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)/ada fsrcdir := $(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@ # Any system libraries needed just for GNAT. SYSLIBS = @GNAT_LIBEXC@ # List of extra object files linked in with various programs. EXTRA_GNATTOOLS_OBJS = ../../prefix.o ../../version.o # List of target dependent sources, overridden below as necessary TARGET_ADA_SRCS = # Type of tools build we are doing; default is not compiling tools. TOOLSCASE = # Multilib handling MULTISUBDIR = RTSDIR = rts$(subst /,_,$(MULTISUBDIR)) # 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 overrides ifneq ($(tmake_file),) include $(tmake_file) endif # host overrides ifneq ($(xmake_file),) include $(xmake_file) endif # Now figure out from those variables how to compile and link. all.indirect: Makefile ../gnat1$(exeext) # IN_GCC distinguishes between code compiled into GCC itself and other # programs built during a bootstrap. # 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. LOOSE_CFLAGS = `echo $(CFLAGS) $(WARN2_CFLAGS)|sed -e 's/-pedantic//g' -e 's/-Wtraditional//g'` ALL_CFLAGS = $(INTERNAL_CFLAGS) $(T_CFLAGS) $(LOOSE_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) $(LIBIBERTY) $(SYSLIBS) LIBDEPS = $(LIBINTL_DEP) $(LIBIBERTY) # Default is no TGT_LIB; one might be passed down or something TGT_LIB = TOOLS_LIBS = $(EXTRA_GNATTOOLS_OBJS) targext.o link.o $(LIBGNAT) ../../../libiberty/libiberty.a $(SYSLIBS) $(TGT_LIB) # 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)/config \ -I$(srcdir)/../include ADA_INCLUDES = -I- -I. -I$(srcdir)/ada INCLUDES_FOR_SUBDIR = -I. -I.. -I../.. -I$(fsrcdir)/ada \ -I$(fsrcdir)/../include -I$(fsrcdir) ADA_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 file Makefile: ../config.status $(srcdir)/ada/gcc-interface/Makefile.in $(srcdir)/ada/Makefile.in $(srcdir)/version.c cd ..; \ 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.o GNATMAKE_OBJS = a-except.o ali.o ali-util.o s-casuti.o \ alloc.o atree.o binderr.o butil.o casing.o csets.o debug.o elists.o einfo.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 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 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) # 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)) else manu:=$(word 2,$(targ)) osys:=$(word 3,$(targ)) endif # 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:=i686 endif endif # ???: 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.xx SO_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 file MLIB_TGT = mlib-tgt # By default, do not distribute prefix.o (in libgccprefix), since it is only # needed by external GNAT tools such as gnatdist and Glide. # Override this variable on native platforms when needed. PREFIX_OBJS = # To avoid duplicate code, use this variable to set PREFIX_OBJS when needed: PREFIX_REAL_OBJS = ../prefix.o \ ../../libiberty/concat.o \ ../../libiberty/xmalloc.o \ ../../libiberty/xstrdup.o \ ../../libiberty/xexit.o # 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) g-sttsne$(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 \ g-sttsne.ads<g-sttsne-dummy.ads LIB_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-posix.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 \ g-sttsne.adb<g-sttsne-vxworks.adb \ g-sttsne.ads<g-sttsne-locking.ads \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-vxworks-m68k.ads TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o EXTRA_LIBGNAT_SRCS+=vx_stack_info.c EXTRA_LIBGNAT_OBJS+=vx_stack_info.o ifeq ($(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.adb endif endif ifeq ($(strip $(filter-out 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-posix.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 \ g-sttsne.adb<g-sttsne-vxworks.adb \ g-sttsne.ads<g-sttsne-locking.ads \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb TOOLS_TARGET_PAIRS=\ mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \ indepsw.adb<indepsw-gnu.adb 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.adb endif ifeq ($(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.ads EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o else ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),) LIBGNAT_TARGET_PAIRS += \ 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.ads EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o EXTRA_GNATRTL_TASKING_OBJS=affinity.o else ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),) LIBGNAT_TARGET_PAIRS += \ s-interr.adb<s-interr-hwint.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.ads EXTRA_GNATRTL_TASKING_OBJS=affinity.o else LIBGNAT_TARGET_PAIRS += \ s-interr.adb<s-interr-hwint.adb \ s-tpopsp.adb<s-tpopsp-vxworks.adb ifeq ($(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-ppc-kernel.ads else LIBGNAT_TARGET_PAIRS += \ system.ads<system-vxworks-ppc.ads endif endif EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o endif endif EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o EXTRA_LIBGNAT_SRCS+=vx_stack_info.c EXTRA_LIBGNAT_OBJS+=vx_stack_info.o endif # vxworksae / vxworks 653 ifeq ($(strip $(filter-out powerpc% wrs vxworksae,$(targ))),) # target pairs for vthreads runtime LIBGNAT_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 \ g-io.ads<g-io-vxworks-ppc-cert.ads \ s-inmaop.adb<s-inmaop-posix.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 \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-vxworks-ppc-vthread.ads TOOLS_TARGET_PAIRS=\ mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o # Extra pairs for the vthreads runtime ifeq ($(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.o else LIBGNAT_TARGET_PAIRS += \ g-socthi.ads<g-socthi-vxworks.ads \ g-socthi.adb<g-socthi-vxworks.adb \ g-stsifd.adb<g-stsifd-sockets.adb \ g-sttsne.adb<g-sttsne-vxworks.adb \ g-sttsne.ads<g-sttsne-locking.ads endif 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.adb endif endif # vxworksae / vxworks 653 for x86 (vxsim) ifeq ($(strip $(filter-out %86 wrs vxworksae,$(targ))),) # target pairs for kernel + vthreads runtime LIBGNAT_TARGET_PAIRS = \ a-elchha.adb<a-elchha-vxworks-ppc-full.adb \ a-intnam.ads<a-intnam-vxworks.ads \ a-numaux.ads<a-numaux-x86.ads \ a-numaux.adb<a-numaux-x86.adb \ a-sytaco.ads<1asytaco.ads \ a-sytaco.adb<1asytaco.adb \ g-bytswa.adb<g-bytswa-x86.adb \ g-io.adb<g-io-vxworks-ppc-cert.adb \ g-io.ads<g-io-vxworks-ppc-cert.ads \ s-inmaop.adb<s-inmaop-posix.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-thread.adb<s-thread-ae653.adb \ 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 \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-vxworks-x86.ads TOOLS_TARGET_PAIRS=\ mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o # Extra pairs for the vthreads runtime ifeq ($(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.o else LIBGNAT_TARGET_PAIRS += \ g-socthi.ads<g-socthi-vxworks.ads \ g-socthi.adb<g-socthi-vxworks.adb \ g-stsifd.adb<g-stsifd-sockets.adb \ g-sttsne.adb<g-sttsne-vxworks.adb \ g-sttsne.ads<g-sttsne-locking.ads endif 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.adb endif endif ifeq ($(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-posix.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 \ g-sttsne.adb<g-sttsne-vxworks.adb \ g-sttsne.ads<g-sttsne-locking.ads \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-vxworks-sparcv9.ads \ TOOLS_TARGET_PAIRS=\ mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o EXTRA_LIBGNAT_SRCS+=vx_stack_info.c EXTRA_LIBGNAT_OBJS+=vx_stack_info.o endif ifeq ($(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-posix.adb \ s-intman.ads<s-intman-vxworks.ads \ s-intman.adb<s-intman-vxworks.adb \ a-numaux.adb<a-numaux-x86.adb \ a-numaux.ads<a-numaux-x86.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-vxwork.ads<s-vxwork-x86.ads \ g-bytswa.adb<g-bytswa-x86.adb \ g-socthi.ads<g-socthi-vxworks.ads \ g-socthi.adb<g-socthi-vxworks.adb \ g-stsifd.adb<g-stsifd-sockets.adb \ g-sttsne.adb<g-sttsne-vxworks.adb \ g-sttsne.ads<g-sttsne-locking.ads \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb TOOLS_TARGET_PAIRS=\ mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \ indepsw.adb<indepsw-gnu.adb 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.adb endif ifeq ($(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.ads EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o else ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),) LIBGNAT_TARGET_PAIRS += \ 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.ads EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o EXTRA_GNATRTL_TASKING_OBJS=affinity.o else ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),) LIBGNAT_TARGET_PAIRS += \ s-interr.adb<s-interr-hwint.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.ads EXTRA_GNATRTL_TASKING_OBJS=affinity.o else LIBGNAT_TARGET_PAIRS += \ s-interr.adb<s-interr-hwint.adb \ s-tpopsp.adb<s-tpopsp-vxworks.adb ifeq ($(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.ads else LIBGNAT_TARGET_PAIRS += \ system.ads<system-vxworks-x86.ads endif endif EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o endif endif EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o EXTRA_LIBGNAT_SRCS+=vx_stack_info.c EXTRA_LIBGNAT_OBJS+=vx_stack_info.o endif ifeq ($(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-posix.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 \ g-sttsne.adb<g-sttsne-vxworks.adb \ g-sttsne.ads<g-sttsne-locking.ads \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-vxworks-arm.ads TOOLS_TARGET_PAIRS=\ mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o EXTRA_LIBGNAT_SRCS+=vx_stack_info.c EXTRA_LIBGNAT_OBJS+=vx_stack_info.o endif ifeq ($(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-posix.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 \ g-sttsne.adb<g-sttsne-vxworks.adb \ g-sttsne.ads<g-sttsne-locking.ads \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-vxworks-mips.ads TOOLS_TARGET_PAIRS=\ mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o EXTRA_LIBGNAT_SRCS+=vx_stack_info.c EXTRA_LIBGNAT_OBJS+=vx_stack_info.o endif ifeq ($(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-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 LIBGNAT_TARGET_PAIRS_32 = \ system.ads<system-solaris-sparc.ads LIBGNAT_TARGET_PAIRS_64 = \ system.ads<system-solaris-sparcv9.ads ifeq ($(strip $(filter-out sparc sun solaris%,$(targ))),) ifeq ($(strip $(MULTISUBDIR)),/sparcv9) LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64) else LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32) endif else ifeq ($(strip $(MULTISUBDIR)),/sparcv7) LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32) else LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64) endif endif TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb EH_MECHANISM=-gcc THREADSLIB = -lposix4 -lthread MISCLIB = -lposix4 -lnsl -lsocket SO_OPTS = -Wl,-h, GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_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.ads THREADSLIB = -lposix4 -lpthread endif ifeq ($(strip $(filter-out m64,$(THREAD_KIND))),) LIBGNAT_TARGET_PAIRS = $(LIBGNAT_TARGET_PAIRS_64) endif endif ifeq ($(strip $(filter-out %86 solaris2%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-numaux.adb<a-numaux-x86.adb \ a-numaux.ads<a-numaux-x86.ads \ a-intnam.ads<a-intnam-solaris.ads \ s-inmaop.adb<s-inmaop-posix.adb \ s-intman.adb<s-intman-solaris.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 ifeq ($(strip $(MULTISUBDIR)),/amd64) LIBGNAT_TARGET_PAIRS += \ system.ads<system-solaris-x86_64.ads else LIBGNAT_TARGET_PAIRS += \ g-bytswa.adb<g-bytswa-x86.adb \ system.ads<system-solaris-x86.ads endif TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb EH_MECHANISM=-gcc THREADSLIB = -lposix4 -lthread MISCLIB = -lposix4 -lnsl -lsocket SO_OPTS = -Wl,-h, GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(strip $(filter-out %86 linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-linux.ads \ a-numaux.adb<a-numaux-x86.adb \ a-numaux.ads<a-numaux-x86.ads \ g-bytswa.adb<g-bytswa-x86.adb \ s-inmaop.adb<s-inmaop-posix.adb \ s-intman.adb<s-intman-posix.adb \ s-tpopsp.adb<s-tpopsp-posix-foreign.adb \ g-sercom.adb<g-sercom-linux.adb ifeq ($(strip $(filter-out marte,$(THREAD_KIND))),) LIBGNAT_TARGET_PAIRS += \ a-exetim.adb<a-exetim-linux-marte.adb \ a-exetim.ads<a-exetim-linux-marte.ads \ a-extiti.adb<a-extiti-linux-marte.adb \ a-extiti.ads<a-extiti-linux-marte.ads \ a-rttiev.adb<a-rttiev-linux-marte.adb \ a-rttiev.ads<a-rttiev-linux-marte.ads \ s-osinte.adb<s-osinte-linux-marte.adb \ s-osinte.ads<s-osinte-linux-marte.ads \ s-osprim.adb<s-osprim-posix.adb \ s-taprop.adb<s-taprop-linux-marte.adb \ s-taspri.ads<s-taspri-posix.ads \ system.ads<system-linux-x86.ads EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o a-extiti.o EH_MECHANISM= THREADSLIB = -lmarte else LIBGNAT_TARGET_PAIRS += \ s-linux.ads<s-linux.ads \ s-osinte.adb<s-osinte-posix.adb ifeq ($(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.ads \ system.ads<system-linux-x86-xenomai.ads EH_MECHANISM=-gcc else LIBGNAT_TARGET_PAIRS += \ 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 \ system.ads<system-linux-x86.ads EH_MECHANISM=-gcc endif THREADSLIB = -lpthread EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o EXTRA_GNATRTL_TASKING_OBJS=s-linux.o endif TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(strip $(filter-out %86 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.ads TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb EH_MECHANISM=-gcc THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(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.ads TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb EH_MECHANISM=-gcc THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(strip $(filter-out %86 freebsd%,$(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 \ g-bytswa.adb<g-bytswa-x86.adb \ 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 \ system.ads<system-freebsd-x86.ads TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb GNATLIB_SHARED = gnatlib-shared-dual EH_MECHANISM=-gcc THREADSLIB= -lpthread GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(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.adb \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb LIBGNAT_TARGET_PAIRS_32 = \ system.ads<system-linux-s390.ads LIBGNAT_TARGET_PAIRS_64 = \ system.ads<system-linux-s390x.ads ifeq ($(strip $(filter-out s390x,$(arch))),) ifeq ($(strip $(MULTISUBDIR)),/32) LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32) else LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64) endif else LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32) endif TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_TASKING_OBJS=s-linux.o EH_MECHANISM=-gcc THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-dual PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(strip $(filter-out mips sgi irix%,$(targ))),) ifeq ($(strip $(filter-out mips sgi irix6%,$(targ))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-irix.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.adb ifeq ($(strip $(MULTISUBDIR)),/64) LIBGNAT_TARGET_PAIRS += \ system.ads<system-irix-n64.ads else ifeq ($(strip $(MULTISUBDIR)),/32) LIBGNAT_TARGET_PAIRS += \ system.ads<system-irix-o32.ads else LIBGNAT_TARGET_PAIRS += \ system.ads<system-irix-n32.ads endif endif THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-default else LIBGNAT_TARGET_PAIRS += \ s-mastop.adb<s-mastop-irix.adb \ s-osprim.adb<s-osprim-posix.adb \ s-traceb.adb<s-traceb-mastop.adb \ system.ads<system-irix-o32.ads endif EH_MECHANISM=-gcc TOOLS_TARGET_PAIRS = mlib-tgt-specific.adb<mlib-tgt-specific-irix.adb TGT_LIB = -lexc MISCLIB = -lexc PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) GMEM_LIB = gmemlib endif ifeq ($(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.ads EH_MECHANISM=-gcc PREFIX_OBJS = $(PREFIX_REAL_OBJS) endif ifeq ($(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.ads TOOLS_TARGET_PAIRS = mlib-tgt-specific.adb<mlib-tgt-specific-hpux.adb EH_MECHANISM=-gcc TGT_LIB = /usr/lib/libcl.a THREADSLIB = -lpthread GMEM_LIB = gmemlib soext = .sl SO_OPTS = -Wl,+h, PREFIX_OBJS = $(PREFIX_REAL_OBJS) GNATLIB_SHARED = gnatlib-shared-dual LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(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 LIBGNAT_TARGET_PAIRS_32 = \ system.ads<system-aix.ads LIBGNAT_TARGET_PAIRS_64 = \ system.ads<system-aix64.ads ifeq ($(findstring ppc64, \ $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \ -print-multi-os-directory)), \ ppc64) LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64) else LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32) endif THREADSLIB = -lpthreads PREFIX_OBJS=$(PREFIX_REAL_OBJS) TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-aix.adb \ indepsw.adb<indepsw-aix.adb GMEM_LIB = gmemlib endif ifeq ($(strip $(filter-out lynxos,$(osys))),) TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-lynxos.adb \ indepsw.adb<indepsw-gnu.adb ifeq ($(strip $(filter-out %86 lynxos,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-numaux.adb<a-numaux-x86.adb \ a-numaux.ads<a-numaux-x86.ads \ a-intnam.ads<a-intnam-lynxos.ads \ g-bytswa.adb<g-bytswa-x86.adb \ g-sttsne.adb<g-sttsne-locking.adb \ g-sttsne.ads<g-sttsne-locking.ads \ s-inmaop.adb<s-inmaop-posix.adb \ s-intman.adb<s-intman-posix.adb \ s-osinte.adb<s-osinte-lynxos.adb \ s-osinte.ads<s-osinte-lynxos.ads \ s-osprim.adb<s-osprim-posix.adb \ s-taprop.adb<s-taprop-lynxos.adb \ s-taspri.ads<s-taspri-lynxos.ads \ s-tpopsp.adb<s-tpopsp-lynxos.adb \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-lynxos-x86.ads PREFIX_OBJS=$(PREFIX_REAL_OBJS) else LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-lynxos.ads \ g-sttsne.adb<g-sttsne-locking.adb \ g-sttsne.ads<g-sttsne-locking.ads \ s-inmaop.adb<s-inmaop-posix.adb \ s-intman.adb<s-intman-posix.adb \ s-osinte.adb<s-osinte-lynxos.adb \ s-osinte.ads<s-osinte-lynxos.ads \ s-osprim.adb<s-osprim-posix.adb \ s-taprop.adb<s-taprop-lynxos.adb \ s-taspri.ads<s-taspri-lynxos.ads \ s-tpopsp.adb<s-tpopsp-lynxos.adb \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-lynxos-ppc.ads endif endif ifeq ($(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.adb \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb endif ifeq ($(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 TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-tru64.adb EH_MECHANISM=-gcc GMEM_LIB=gmemlib THREADSLIB = -lpthread -lmach -lexc -lrt PREFIX_OBJS = $(PREFIX_REAL_OBJS) GNATLIB_SHARED = gnatlib-shared-default LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(host))),) soext = .exe hyphen = _ LN = cp -p LN_S = cp -p .SUFFIXES: .sym .o.sym: @ gnu:[bin]vmssymvec $< endif ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(targ))),) ifeq ($(strip $(filter-out ia64 hp vms% openvms%,$(targ))),) LIBGNAT_TARGET_PAIRS_AUX1 = \ 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-osinte.adb<s-osinte-vms-ia64.adb \ s-osinte.ads<s-osinte-vms-ia64.ads \ s-vaflop.adb<s-vaflop-vms-ia64.adb \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-vms-ia64.ads LIBGNAT_TARGET_PAIRS_AUX2 = \ s-parame.ads<s-parame-vms-ia64.ads else ifeq ($(strip $(filter-out alpha64 dec vms% openvms% alphavms%,$(targ))),) LIBGNAT_TARGET_PAIRS_AUX1 = \ g-enblsp.adb<g-enblsp-vms-alpha.adb \ g-trasym.adb<g-trasym-vms-alpha.adb \ s-traent.adb<s-traent-vms.adb \ s-traent.ads<s-traent-vms.ads \ s-asthan.adb<s-asthan-vms-alpha.adb \ s-osinte.adb<s-osinte-vms.adb \ s-osinte.ads<s-osinte-vms.ads \ s-vaflop.adb<s-vaflop-vms-alpha.adb \ system.ads<system-vms_64.ads ifeq ($(strip $(filter-out express EXPRESS,$(THREAD_KIND))),) LIBGNAT_TARGET_PAIRS_AUX2 = \ s-parame.ads<s-parame-vms-restrict.ads else LIBGNAT_TARGET_PAIRS_AUX2 = \ s-parame.ads<s-parame-vms-alpha.ads endif endif endif 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 \ g-sttsne.adb<g-sttsne-locking.adb \ g-sttsne.ads<g-sttsne-locking.ads \ i-c.ads<i-c-vms_64.ads \ i-cstrin.ads<i-cstrin-vms_64.ads \ i-cstrin.adb<i-cstrin-vms_64.adb \ i-cpoint.ads<i-cpoint-vms_64.ads \ i-cpoint.adb<i-cpoint-vms_64.adb \ i-cstrea.adb<i-cstrea-vms.adb \ memtrack.adb<memtrack-vms_64.adb \ s-auxdec.ads<s-auxdec-vms_64.ads \ s-crtl.ads<s-crtl-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-posix-foreign.adb \ s-tpopde.adb<s-tpopde-vms.adb \ s-tpopde.ads<s-tpopde-vms.ads \ $(LIBGNAT_TARGET_PAIRS_AUX1) \ $(LIBGNAT_TARGET_PAIRS_AUX2) ifeq ($(strip $(filter-out ia64 hp vms% openvms%,$(targ))),) 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.adb else 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.adb endif adamsg.o: adamsg.msg -$(DECC) --cc=message adamsg.msg -o adamsg.o EXTRA_GNATMAKE_OBJS = mlib-tgt-vms_common.o GMEM_LIB = gmemlib EH_MECHANISM=-gcc GNATLIB_SHARED=gnatlib-shared-vms ifeq ($(strip $(filter-out alpha64 dec vms% openvms% alphavms%,$(targ))),) EXTRA_LIBGNAT_SRCS=vmshandler.asm EXTRA_LIBGNAT_OBJS=vmshandler.o endif EXTRA_LIBGNAT_SRCS+=adamsg.msg EXTRA_LIBGNAT_OBJS+=adamsg.o EXTRA_GNATRTL_TASKING_OBJS=s-tpopde.o EXTRA_GNATTOOLS = \ ../../gnatlbr$(exeext) \ ../../gnatsym$(exeext) \ ../../vms_help$(exeext) \ ../../gnat.hlp # This command transforms (YYYYMMDD) into YY,MMDD GSMATCH_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.exe LIBRARY_VERSION := $(subst .,_,$(LIB_VERSION)) endif ifeq ($(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.adb endif ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),) LIBGNAT_TARGET_PAIRS = \ a-dirval.adb<a-dirval-mingw.adb \ a-excpol.adb<a-excpol-abort.adb \ a-numaux.adb<a-numaux-x86.adb \ a-numaux.ads<a-numaux-x86.ads \ s-gloloc.adb<s-gloloc-mingw.adb \ s-inmaop.adb<s-inmaop-dummy.adb \ s-memory.adb<s-memory-mingw.adb \ s-taspri.ads<s-taspri-mingw.ads \ s-tasinf.adb<s-tasinf-mingw.adb \ s-tasinf.ads<s-tasinf-mingw.ads \ g-bytswa.adb<g-bytswa-x86.adb \ g-socthi.ads<g-socthi-mingw.ads \ g-socthi.adb<g-socthi-mingw.adb \ g-stsifd.adb<g-stsifd-sockets.adb \ g-soliop.ads<g-soliop-mingw.ads 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 EXTRA_GNATRTL_NONTASKING_OBJS = s-win32.o ifeq ($(strip $(filter-out rtx_w32,$(THREAD_KIND))),) LIBGNAT_TARGET_PAIRS += system.ads<system-rtx.ads EH_MECHANISM=-gcc else LIBGNAT_TARGET_PAIRS += \ system.ads<system-rtx-rtss.ads \ s-parame.adb<s-parame-vxworks.adb EH_MECHANISM= endif else LIBGNAT_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-osinte.ads<s-osinte-mingw.ads \ s-osprim.adb<s-osprim-mingw.adb \ s-taprop.adb<s-taprop-mingw.adb ifeq ($(strip $(filter-out x86_64%,$(arch))),) LIBGNAT_TARGET_PAIRS += \ system.ads<system-mingw-x86_64.ads else LIBGNAT_TARGET_PAIRS += \ system.ads<system-mingw.ads endif EXTRA_GNATRTL_NONTASKING_OBJS = \ s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o MISCLIB = -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-win32 endif TOOLS_TARGET_PAIRS= \ mlib-tgt-specific.adb<mlib-tgt-specific-mingw.adb \ indepsw.adb<indepsw-mingw.adb GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) EXTRA_GNATTOOLS = ../../gnatdll$(exeext) EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o soext = .dll LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(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.ads EH_MECHANISM=-gcc THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(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.adb LIBGNAT_TARGET_PAIRS_32 = \ system.ads<system-linux-mipsel.ads LIBGNAT_TARGET_PAIRS_64 = \ system.ads<system-linux-mips64el.ads ifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64) LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64) else LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32) endif TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_TASKING_OBJS=s-linux.o EH_MECHANISM=-gcc THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(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.adb LIBGNAT_TARGET_PAIRS_32 = \ system.ads<system-linux-mipsel.ads LIBGNAT_TARGET_PAIRS_64 = \ system.ads<system-linux-mips64el.ads ifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64) LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64) else LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32) endif TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_TASKING_OBJS=s-linux.o EH_MECHANISM=-gcc THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(strip $(filter-out powerpc% 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.adb \ g-sercom.adb<g-sercom-linux.adb LIBGNAT_TARGET_PAIRS_32 = \ system.ads<system-linux-ppc.ads LIBGNAT_TARGET_PAIRS_64 = \ system.ads<system-linux-ppc64.ads ifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64) LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64) else LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32) endif ifeq ($(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.ads \ system.ads<system-linux-ppc-xenomai.ads else LIBGNAT_TARGET_PAIRS += \ 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 \ system.ads<system-linux-ppc.ads endif TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_TASKING_OBJS=s-linux.o EH_MECHANISM=-gcc THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(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.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 LIBGNAT_TARGET_PAIRS_32 = \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-linux-sparc.ads LIBGNAT_TARGET_PAIRS_64 = \ system.ads<system-linux-sparcv9.ads ifeq ($(strip $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) -print-multi-os-directory)),../lib64) LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64) else LIBGNAT_TARGET_PAIRS = \ $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32) endif TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_TASKING_OBJS=s-linux.o EH_MECHANISM=-gcc THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(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 \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-linux-hppa.ads TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_TASKING_OBJS=s-linux.o EH_MECHANISM=-gcc THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(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.ads TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-linux.adb EXTRA_GNATRTL_TASKING_OBJS=s-linux.o EH_MECHANISM=-gcc MISCLIB= THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS = $(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(strip $(filter-out %ia64 linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-linux.ads \ a-numaux.ads<a-numaux-libc-x86.ads \ s-inmaop.adb<s-inmaop-posix.adb \ s-intman.adb<s-intman-posix.adb \ s-linux.ads<s-linux.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 \ g-sercom.adb<g-sercom-linux.adb \ system.ads<system-linux-ia64.ads TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_TASKING_OBJS=s-linux.o EH_MECHANISM=-gcc MISCLIB= THREADSLIB=-lpthread GNATLIB_SHARED=gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS=$(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(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 TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-ia64-hpux.adb MISCLIB= THREADSLIB=-lpthread GNATLIB_SHARED=gnatlib-shared-dual GMEM_LIB = gmemlib soext = .sl SO_OPTS = -Wl,+h, PREFIX_OBJS=$(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(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 \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-linux-alpha.ads TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_TASKING_OBJS=s-linux.o EH_MECHANISM=-gcc MISCLIB= THREADSLIB=-lpthread GNATLIB_SHARED=gnatlib-shared-dual PREFIX_OBJS=$(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(strip $(filter-out %x86_64 linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-linux.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-linux.ads<s-linux.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.ads \ g-sercom.adb<g-sercom-linux.adb \ system.ads<system-linux-x86_64.ads TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o EXTRA_GNATRTL_TASKING_OBJS=s-linux.o EH_MECHANISM=-gcc THREADSLIB=-lpthread GNATLIB_SHARED=gnatlib-shared-dual GMEM_LIB = gmemlib PREFIX_OBJS=$(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) endif ifeq ($(strip $(filter-out darwin%,$(osys))),) ifeq ($(strip $(filter-out %86,$(arch))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-darwin.ads \ s-inmaop.adb<s-inmaop-posix.adb \ s-intman.adb<s-intman-susv3.adb \ s-osinte.adb<s-osinte-darwin.adb \ s-osinte.ads<s-osinte-darwin.ads \ s-osprim.adb<s-osprim-darwin.adb \ s-taprop.adb<s-taprop-posix.adb \ s-taspri.ads<s-taspri-posix.ads \ s-tpopsp.adb<s-tpopsp-posix-foreign.adb \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ a-numaux.ads<a-numaux-x86.ads \ a-numaux.adb<a-numaux-x86.adb ifeq ($(strip $(MULTISUBDIR)),/x86_64) LIBGNAT_TARGET_PAIRS += \ system.ads<system-darwin-x86_64.ads else LIBGNAT_TARGET_PAIRS += \ system.ads<system-darwin-x86.ads endif endif ifeq ($(strip $(filter-out %x86_64,$(arch))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-darwin.ads \ s-inmaop.adb<s-inmaop-posix.adb \ s-intman.adb<s-intman-susv3.adb \ s-osinte.adb<s-osinte-darwin.adb \ s-osinte.ads<s-osinte-darwin.ads \ s-osprim.adb<s-osprim-darwin.adb \ s-taprop.adb<s-taprop-posix.adb \ s-taspri.ads<s-taspri-posix.ads \ s-tpopsp.adb<s-tpopsp-posix-foreign.adb \ a-numaux.ads<a-numaux-x86.ads \ a-numaux.adb<a-numaux-x86.adb \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-darwin-x86_64.ads endif ifeq ($(strip $(filter-out powerpc%,$(arch))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-darwin.ads \ s-inmaop.adb<s-inmaop-posix.adb \ s-intman.adb<s-intman-posix.adb \ s-osinte.adb<s-osinte-darwin.adb \ s-osinte.ads<s-osinte-darwin.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-foreign.adb \ a-numaux.ads<a-numaux-darwin.ads \ a-numaux.adb<a-numaux-darwin.adb \ g-trasym.ads<g-trasym-unimplemented.ads \ g-trasym.adb<g-trasym-unimplemented.adb \ system.ads<system-darwin-ppc.ads endif TOOLS_TARGET_PAIRS = \ mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb EH_MECHANISM=-gcc GNATLIB_SHARED = gnatlib-shared-darwin SO_OPTS = -Wl,-flat_namespace -shared-libgcc RANLIB = ranlib -c GMEM_LIB = gmemlib PREFIX_OBJS=$(PREFIX_REAL_OBJS) LIBRARY_VERSION := $(LIB_VERSION) soext = .dylib endif ifneq ($(EH_MECHANISM),) LIBGNAT_TARGET_PAIRS += a-exexpr.adb<a-exexpr$(EH_MECHANISM).adb EXTRA_LIBGNAT_SRCS+=raise$(EH_MECHANISM).c EXTRA_LIBGNAT_OBJS+=raise$(EH_MECHANISM).o endif # 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.adb endif # 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 = 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 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 $(EXTRA_LIBGNAT_SRCS) LIBGNAT_OBJS = 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 seh_init.o cal.o arit64.o \ final.o tracebak.o expect.o mkdir.o socket.o targext.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.rtl GNATRTL_LINEARALGEBRA_OBJS = a-nlcoar.o a-nllcar.o a-nllrar.o a-nlrear.o \ a-nucoar.o a-nurear.o i-forbla.o i-forlap.o s-gearop.o GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \ $(GNATRTL_LINEARALGEBRA_OBJS) g-trasym.o memtrack.o # Default run time files ADA_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]*.ads LIBGNAT=../$(RTSDIR)/libgnat.a GCC_LINK=$(CC) -static-libgcc $(ADA_INCLUDES) # 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 sources ifeq ($(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_INCLUDES ifeq ($(TOOLSCASE),cross) vpath %.ads ../ vpath %.adb ../ vpath %.c ../ vpath %.h ../ endif common-tools: $(GNATMAKE) -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): $(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): $(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): 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: link.o targext.o $(GNATMAKE) $(ADA_INCLUDES) -u sdefault --GCC="$(CC) $(MOST_ADA_FLAGS)" $(GNATMAKE) -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: link.o targext.o $(GNATMAKE) -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; \ fi install-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 -$(INSTALL_DATA) $(RTSDIR)/g-trasym$(objext) $(DESTDIR)$(ADA_RTL_OBJ_DIR) -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) for file in gnat gnarl; do \ if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \ $(INSTALL) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(DESTDIR)$(ADA_RTL_OBJ_DIR); \ 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; \ 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); \ done cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb cd $(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)))) $(RM) $(RTSDIR)/*-*-*.ads $(RTSDIR)/*-*-*.adb # Copy new target dependent sources $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \ $(LN_S) $(fsrcpfx)ada/$(word 2,$(subst <, ,$(PAIR))) \ $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));) # Copy generated target dependent sources $(RM) $(RTSDIR)/s-oscons.ads (cd $(RTSDIR); $(LN_S) ../s-oscons.ads s-oscons.ads) $(RM) ../stamp-gnatlib-$(RTSDIR) touch ../stamp-gnatlib1-$(RTSDIR) # GNULLI End ############################################################# # 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) $(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)) ifneq ($(PREFIX_OBJS),) $(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgccprefix$(arext) \ $(PREFIX_OBJS); $(RANLIB_FOR_TARGET) $(RTSDIR)/libgccprefix$(arext) endif $(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) $(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgnala$(arext) \ $(addprefix $(RTSDIR)/,$(GNATRTL_LINEARALGEBRA_OBJS)) $(RANLIB_FOR_TARGET) $(RTSDIR)/libgnala$(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)/*.ali touch ../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) $(TARGET_LIBGCC2_CFLAGS)" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ MULTISUBDIR="$(MULTISUBDIR)" \ THREAD_KIND="$(THREAD_KIND)" \ gnatlib $(RM) $(RTSDIR)/libgna*$(soext) cd $(RTSDIR); ../../xgcc -B../../ -shared $(GNATLIBCFLAGS) \ $(TARGET_LIBGCC2_CFLAGS) \ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(MISCLIB) -lm cd $(RTSDIR); ../../xgcc -B../../ -shared $(GNATLIBCFLAGS) \ $(TARGET_LIBGCC2_CFLAGS) \ -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) $(TARGET_LIBGCC2_CFLAGS)" \ 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) $(TARGET_LIBGCC2_CFLAGS)" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ MULTISUBDIR="$(MULTISUBDIR)" \ THREAD_KIND="$(THREAD_KIND)" \ gnatlib $(RM) $(RTSDIR)/libgna*$(soext) cd $(RTSDIR); ../../xgcc -B../../ -shared $(TARGET_LIBGCC2_CFLAGS) \ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB) cd $(RTSDIR); ../../xgcc -B../../ -shared $(TARGET_LIBGCC2_CFLAGS) \ -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(GNATRTL_TASKING_OBJS) \ $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) gnatlib-shared-darwin: $(MAKE) $(FLAGS_TO_PASS) \ GNATLIBFLAGS="$(GNATLIBFLAGS)" \ GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) -fno-common" \ MULTISUBDIR="$(MULTISUBDIR)" \ THREAD_KIND="$(THREAD_KIND)" \ gnatlib $(RM) $(RTSDIR)/libgnat$(soext) $(RTSDIR)/libgnarl$(soext) cd $(RTSDIR); ../../xgcc -B../../ -dynamiclib $(TARGET_LIBGCC2_CFLAGS) \ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ $(SO_OPTS) \ -Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(MISCLIB) -lm cd $(RTSDIR); ../../xgcc -B../../ -dynamiclib $(TARGET_LIBGCC2_CFLAGS) \ -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)" \ TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" \ $(GNATLIB_SHARED) gnatlib-sjlj: $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="" ../stamp-gnatlib1-$(RTSDIR) sed -e 's/ZCX_By_Default.*/ZCX_By_Default : constant Boolean := False;/' $(RTSDIR)/system.ads > $(RTSDIR)/s.ads $(MV) $(RTSDIR)/s.ads $(RTSDIR)/system.ads $(MAKE) $(FLAGS_TO_PASS) \ EH_MECHANISM="" \ GNATLIBFLAGS="$(GNATLIBFLAGS)" \ GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ MULTISUBDIR="$(MULTISUBDIR)" \ THREAD_KIND="$(THREAD_KIND)" \ TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" gnatlib gnatlib-zcx: $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="-gcc" ../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)" \ MULTISUBDIR="$(MULTISUBDIR)" \ THREAD_KIND="$(THREAD_KIND)" \ TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" gnatlib # .s files for cross-building gnat-cross: force make $(GNAT1_ADA_OBJS) CC="gcc -B../stage1/" CFLAGS="-S -gnatp" # 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.c : $(GNATLINK_OBJS) $(GNATBIND) -C $(ADA_INCLUDES) -o b_gnatl.c gnatlink.ali b_gnatl.o : b_gnatl.c b_gnatm.c : $(GNATMAKE_OBJS) $(GNATBIND) -C $(ADA_INCLUDES) -o b_gnatm.c gnatmake.ali b_gnatm.o : b_gnatm.c ADA_INCLUDE_DIR = $(libsubdir)/adainclude ADA_RTL_OBJ_DIR = $(libsubdir)/adalib # 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. However we can do that only when building the runtime # (not the compiler) because the -fno-optimize-sibling-calls option exists # only in GCC 3 and above. ifneq (,$(findstring xgcc,$(CC))) NO_SIBLING_ADAFLAGS=-fno-optimize-sibling-calls else NO_SIBLING_ADAFLAGS= endif s-traceb.o : s-traceb.adb $(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 no function reordering on a-except.o because of the exclusion bounds # mechanism (see the source file for more detailed information). However we # can do that only when building the runtime (not the compiler) because the # -fno-toplevel-reorder option exists only in GCC 4.2 and above. ifneq (,$(findstring xgcc,$(CC))) NO_REORDER_ADAFLAGS=-fno-toplevel-reorder else NO_REORDER_ADAFLAGS= endif # 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-except.o without optimization and with debug info to let the # debugger set breakpoints and inspect subprogram parameters on exception # related events. s-except.o : s-except.adb 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 a-except.ads $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O2 $(ADA_INCLUDES) \ $< $(OUTPUT_OPTION) adadecode.o : adadecode.c adadecode.h aux-io.o : aux-io.c argv.o : argv.c cal.o : cal.c deftarg.o : deftarg.c errno.o : errno.c exit.o : adaint.h exit.c expect.o : expect.c final.o : final.c gmem.o : gmem.c link.o : link.c mkdir.o : mkdir.c socket.o : socket.c gsocket.h sysdep.o : sysdep.c raise-gcc.o : raise-gcc.c raise.h raise.o : raise.c raise.h vx_stack_info.o : vx_stack_info.c 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) targext.o : targext.c $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \ $(ALL_CPPFLAGS) $(INCLUDES_FOR_SUBDIR) \ $< $(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) # In GNU Make, ignore whether `stage*' exists. .PHONY: stage1 stage2 stage3 stage4 clean realclean TAGS bootstrap .PHONY: risky-stage1 risky-stage2 risky-stage3 risky-stage4 force: # Gnatlbr, Vms_help, and Gnat.hlp are only used on VMS ../../gnatlbr$(exeext): ../../prefix.o $(GNATMAKE) -c $(ADA_INCLUDES) gnatlbr --GCC="$(CC) $(ALL_ADAFLAGS)" $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatlbr $(GNATLINK) -v gnatlbr -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS) ../../vms_help$(exeext): $(GNATMAKE) -c $(ADA_INCLUDES) vms_help --GCC="$(CC) $(ALL_ADAFLAGS)" $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) vms_help $(GNATLINK) -v vms_help -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS) ../../gnat.hlp: ../../vms_help$(exeext) ../../vms_help$(exeext) $(fsrcdir)/ada/gnat.help_in \ $(fsrcdir)/ada/vms_data.ads ../../gnat.hlp