diff options
Diffstat (limited to 'gcc/ada/gcc-interface/Makefile.in')
| -rw-r--r-- | gcc/ada/gcc-interface/Makefile.in | 163 |
1 files changed, 112 insertions, 51 deletions
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in index 25d4d91..9991405 100644 --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in @@ -443,10 +443,17 @@ X86_64_TARGET_PAIRS = \ LIB_VERSION = $(strip $(shell grep ' Library_Version :' $(fsrcpfx)ada/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/')) +# Additionnal object files from C source to be added to libgnat. +EXTRA_LIBGNAT_OBJS= +# Additionnal C source file to be added to libgnat without corresponding object +# file (included files). +EXTRA_LIBGNAT_SRCS= + # $(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. +# m68k VxWorks ifeq ($(strip $(filter-out m68k% wrs vx%,$(targ))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-vxworks.ads \ @@ -477,7 +484,6 @@ ifeq ($(strip $(filter-out m68k% wrs vx%,$(targ))),) 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))),) @@ -490,6 +496,7 @@ ifeq ($(strip $(filter-out m68k% wrs vx%,$(targ))),) endif endif +# PowerPC and e500v2 VxWorks ifeq ($(strip $(filter-out e500% powerpc% wrs vxworks,$(targ))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-vxworks.ads \ @@ -546,7 +553,6 @@ ifeq ($(strip $(filter-out e500% powerpc% wrs vxworks,$(targ))),) EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o EXTRA_LIBGNAT_OBJS+=affinity.o - EXTRA_LIBGNAT_SRCS+=affinity.c else ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),) LIBGNAT_TARGET_PAIRS += \ @@ -559,7 +565,6 @@ ifeq ($(strip $(filter-out e500% powerpc% wrs vxworks,$(targ))),) EH_MECHANISM=-gcc EXTRA_LIBGNAT_OBJS+=affinity.o - EXTRA_LIBGNAT_SRCS+=affinity.c else LIBGNAT_TARGET_PAIRS += \ s-interr.adb<s-interr-hwint.adb \ @@ -578,17 +583,15 @@ ifeq ($(strip $(filter-out e500% powerpc% wrs vxworks,$(targ))),) endif EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o EXTRA_LIBGNAT_OBJS+=sigtramp-ppcvxw.o - EXTRA_LIBGNAT_SRCS+=sigtramp-ppcvxw.c 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 -# vxworks 653 +# PowerPC and e500v2 VxWorks 653 ifeq ($(strip $(filter-out powerpc% e500v2 wrs vxworksae,$(targ))),) # target pairs for vthreads runtime LIBGNAT_TARGET_PAIRS = \ @@ -623,7 +626,6 @@ ifeq ($(strip $(filter-out powerpc% e500v2 wrs vxworksae,$(targ))),) EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o - EXTRA_LIBGNAT_SRCS+=sigtramp-ppcvxw.c EXTRA_LIBGNAT_OBJS+=sigtramp-ppcvxw.o # Extra pairs for the vthreads runtime @@ -651,7 +653,7 @@ ifeq ($(strip $(filter-out powerpc% e500v2 wrs vxworksae,$(targ))),) endif endif -# vxworks MILS +# PowerPC and e500v2 VxWorks MILS ifeq ($(strip $(filter-out e500% powerpc% wrs vxworksmils,$(targ))),) # target pairs for vthreads runtime LIBGNAT_TARGET_PAIRS = \ @@ -688,7 +690,6 @@ ifeq ($(strip $(filter-out e500% powerpc% wrs vxworksmils,$(targ))),) EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-thread.o s-vxwexc.o EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o - EXTRA_LIBGNAT_SRCS+=vx_stack_info.c sigtramp-ppcvxw.c EXTRA_LIBGNAT_OBJS+=vx_stack_info.o sigtramp-ppcvxw.o GNATRTL_SOCKETS_OBJS = @@ -702,7 +703,7 @@ ifeq ($(strip $(filter-out e500% powerpc% wrs vxworksmils,$(targ))),) endif endif -# vxworksae / vxworks 653 for x86 (vxsim) - ?? vxworksmils not implemented +# VxWorksae / VxWorks 653 for x86 (vxsim) - ?? VxWorks mils not implemented ifeq ($(strip $(filter-out %86 wrs vxworksae vxworksmils,$(targ))),) # target pairs for kernel + vthreads runtime LIBGNAT_TARGET_PAIRS = \ @@ -762,6 +763,7 @@ ifeq ($(strip $(filter-out %86 wrs vxworksae vxworksmils,$(targ))),) endif endif +# Sparc VxWorks ifeq ($(strip $(filter-out sparc% wrs vx%,$(targ))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-vxworks.ads \ @@ -794,10 +796,10 @@ ifeq ($(strip $(filter-out sparc% wrs vx%,$(targ))),) 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 +# x86 VxWorks ifeq ($(strip $(filter-out %86 wrs vxworks,$(targ))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-vxworks.ads \ @@ -854,7 +856,6 @@ ifeq ($(strip $(filter-out %86 wrs vxworks,$(targ))),) EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o EXTRA_LIBGNAT_OBJS+=affinity.o - EXTRA_LIBGNAT_SRCS+=affinity.c else ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),) LIBGNAT_TARGET_PAIRS += \ @@ -865,7 +866,6 @@ ifeq ($(strip $(filter-out %86 wrs vxworks,$(targ))),) s-vxwext.adb<s-vxwext-kernel-smp.adb \ system.ads<system-vxworks-x86-kernel.ads EXTRA_LIBGNAT_OBJS+=affinity.o - EXTRA_LIBGNAT_SRCS+=affinity.c else LIBGNAT_TARGET_PAIRS += \ s-interr.adb<s-interr-hwint.adb \ @@ -887,10 +887,10 @@ ifeq ($(strip $(filter-out %86 wrs vxworks,$(targ))),) 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 +# ARM VxWorks ifeq ($(strip $(filter-out arm% coff wrs vx%,$(targ))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-vxworks.ads \ @@ -923,10 +923,10 @@ ifeq ($(strip $(filter-out arm% coff wrs vx%,$(targ))),) 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 +# MIPS VxWorks ifeq ($(strip $(filter-out mips% wrs vx%,$(targ))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-vxworks.ads \ @@ -959,10 +959,10 @@ ifeq ($(strip $(filter-out mips% wrs vx%,$(targ))),) 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 +# Sparc Solaris ifeq ($(strip $(filter-out sparc% sun solaris%,$(targ))),) LIBGNAT_TARGET_PAIRS_COMMON = \ a-intnam.ads<a-intnam-solaris.ads \ @@ -1037,6 +1037,7 @@ ifeq ($(strip $(filter-out sparc% sun solaris%,$(targ))),) endif endif +# x86 and x86-64 solaris ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS_COMMON = \ a-intnam.ads<a-intnam-solaris.ads \ @@ -1091,6 +1092,7 @@ ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# x86 Linux ifeq ($(strip $(filter-out %86 linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-linux.ads \ @@ -1151,6 +1153,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# x86 kfreebsd ifeq ($(strip $(filter-out %86 kfreebsd%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-freebsd.ads \ @@ -1208,6 +1211,7 @@ ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# x86 FreeBSD ifeq ($(strip $(filter-out %86 freebsd%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-freebsd.ads \ @@ -1234,6 +1238,7 @@ ifeq ($(strip $(filter-out %86 freebsd%,$(arch) $(osys))),) MISCLIB = -lutil endif +# x86-64 FreeBSD ifeq ($(strip $(filter-out %86_64 freebsd%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-freebsd.ads \ @@ -1261,6 +1266,7 @@ ifeq ($(strip $(filter-out %86_64 freebsd%,$(arch) $(osys))),) MISCLIB = -lutil endif +# S390 Linux ifeq ($(strip $(filter-out s390% linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS_COMMON = \ a-intnam.ads<a-intnam-linux.ads \ @@ -1306,6 +1312,7 @@ ifeq ($(strip $(filter-out s390% linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# HP/PA HP-UX 10 ifeq ($(strip $(filter-out hppa% hp hpux10%,$(targ))),) LIBGNAT_TARGET_PAIRS = \ a-excpol.adb<a-excpol-abort.adb \ @@ -1325,6 +1332,7 @@ ifeq ($(strip $(filter-out hppa% hp hpux10%,$(targ))),) EH_MECHANISM=-gcc endif +# HP/PA HP-UX 11 ifeq ($(strip $(filter-out hppa% hp hpux11%,$(targ))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-hpux.ads \ @@ -1351,6 +1359,7 @@ ifeq ($(strip $(filter-out hppa% hp hpux11%,$(targ))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# IBM AIX ifeq ($(strip $(filter-out ibm aix%,$(manu) $(osys))),) LIBGNAT_TARGET_PAIRS_COMMON = \ a-intnam.ads<a-intnam-aix.ads \ @@ -1394,6 +1403,7 @@ ifeq ($(strip $(filter-out ibm aix%,$(manu) $(osys))),) GMEM_LIB = gmemlib endif +# RTEMS ifeq ($(strip $(filter-out rtems%,$(osys))),) LIBGNAT_TARGET_PAIRS = \ system.ads<system-rtems.ads \ @@ -1411,6 +1421,7 @@ ifeq ($(strip $(filter-out rtems%,$(osys))),) s-interr.adb<s-interr-hwint.adb endif +# OpenVMS (host) ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(host))),) soext = .exe @@ -1420,6 +1431,7 @@ LN_S = cp -p endif +# OpenVMS (target) ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(targ))),) LIBGNAT_TARGET_PAIRS = \ a-caldel.adb<a-caldel-vms.adb \ @@ -1466,6 +1478,8 @@ ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(targ))) $(ATOMICS_TARGET_PAIRS) \ $(ATOMICS_BUILTINS_TARGET_PAIRS) + EXTRA_LIBGNAT_SRCS+=tb-ivms.c + TOOLS_TARGET_PAIRS= \ mlib-tgt-specific.adb<mlib-tgt-specific-vms-ia64.adb \ symbols.adb<symbols-vms.adb \ @@ -1485,6 +1499,8 @@ ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(targ))) $(ATOMICS_TARGET_PAIRS) \ $(ATOMICS_BUILTINS_TARGET_PAIRS) + EXTRA_LIBGNAT_SRCS+=tb-alvms.c + TOOLS_TARGET_PAIRS= \ mlib-tgt-specific.adb<mlib-tgt-specific-vms-alpha.adb \ symbols.adb<symbols-vms.adb \ @@ -1507,12 +1523,14 @@ ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(targ))) LIBRARY_VERSION := $(subst .,_,$(LIB_VERSION)) endif +# *-elf 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 +# Cygwin/Mingw32 ifeq ($(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 @@ -1631,6 +1649,7 @@ ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# Mips Linux ifeq ($(strip $(filter-out mips linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-linux.ads \ @@ -1654,6 +1673,7 @@ ifeq ($(strip $(filter-out mips linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# Mips/el Linux ifeq ($(strip $(filter-out mipsel linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS_COMMON = \ a-intnam.ads<a-intnam-linux.ads \ @@ -1696,6 +1716,7 @@ ifeq ($(strip $(filter-out mipsel linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# Mips64/el Linux ifeq ($(strip $(filter-out mips64el linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS_COMMON = \ a-intnam.ads<a-intnam-linux.ads \ @@ -1738,7 +1759,8 @@ ifeq ($(strip $(filter-out mips64el linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif -ifeq ($(strip $(filter-out powerpc% linux%,$(arch) $(osys))),) +# PowerPC and e500v2 Linux +ifeq ($(strip $(filter-out powerpc% e500% linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS_COMMON = \ a-exetim.adb<a-exetim-posix.adb \ a-exetim.ads<a-exetim-default.ads \ @@ -1836,6 +1858,7 @@ ifeq ($(strip $(filter-out arm% linux-gnueabi,$(arch) $(osys)-$(word 4,$(targ))) LIBRARY_VERSION := $(LIB_VERSION) endif +# Sparc Linux ifeq ($(strip $(filter-out sparc% linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS_COMMON = \ a-intnam.ads<a-intnam-linux.ads \ @@ -1877,6 +1900,7 @@ ifeq ($(strip $(filter-out sparc% linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# HP/PA Linux ifeq ($(strip $(filter-out hppa% linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-linux.ads \ @@ -1905,6 +1929,7 @@ ifeq ($(strip $(filter-out hppa% linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# SH4 Linux ifeq ($(strip $(filter-out sh4% linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-linux.ads \ @@ -1934,6 +1959,7 @@ ifeq ($(strip $(filter-out sh4% linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# IA64 Linux ifeq ($(strip $(filter-out %ia64 linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-exetim.adb<a-exetim-posix.adb \ @@ -1972,6 +1998,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# IA64 HP-UX ifeq ($(strip $(filter-out ia64% hp hpux%,$(targ))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-hpux.ads \ @@ -1999,6 +2026,7 @@ ifeq ($(strip $(filter-out ia64% hp hpux%,$(targ))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# Alpha Linux ifeq ($(strip $(filter-out alpha% linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<a-intnam-linux.ads \ @@ -2029,6 +2057,7 @@ ifeq ($(strip $(filter-out alpha% linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# x86-64 Linux ifeq ($(strip $(filter-out %x86_64 linux%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS = \ a-exetim.adb<a-exetim-posix.adb \ @@ -2103,6 +2132,7 @@ ifeq ($(strip $(filter-out %x32 linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif +# Darwin (Mac OS X) ifeq ($(strip $(filter-out darwin%,$(osys))),) SO_OPTS = -shared-libgcc LIBGNAT_TARGET_PAIRS = \ @@ -2179,9 +2209,29 @@ ifeq ($(strip $(filter-out darwin%,$(osys))),) GCC_LINK_FLAGS= endif +# ARM Nucleus +ifeq ($(strip $(filter-out arm nucleus%,$(arch) $(osys))),) + LIBGNAT_TARGET_PAIRS = \ + system.ads<system-nucleus-arm.ads \ + a-numaux.ads<a-numaux-vxworks.ads \ + a-intnam.ads<a-intnam-nucleus.ads \ + s-inmaop.adb<s-inmaop-posix.adb \ + s-intman.adb<s-intman-posix.adb \ + s-osinte.ads<s-osinte-nucleus.ads \ + s-osinte.adb<s-osinte-nucleus.adb \ + s-osprim.adb<s-osprim-nucleus.adb \ + s-parame.adb<s-parame-vxworks.adb \ + s-taprop.adb<s-taprop-posix.adb \ + s-taspri.ads<s-taspri-posix.ads \ + s-tpopsp.adb<s-tpopsp-posix.adb \ + $(DUMMY_SOCKETS_TARGET_PAIRS) + + LIBRARY_VERSION := $(LIB_VERSION) + GNATRTL_SOCKETS_OBJS = +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 @@ -2197,42 +2247,36 @@ ifeq ($(filter a-except%,$(LIBGNAT_TARGET_PAIRS)),) 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 = 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) +# LIBGNAT_SRCS is the list of all C files (including headers) of the runtime +# library. LIBGNAT_OBJS is the list of object files for libgnat. +# thread.c is special as put into GNATRTL_TASKING_OBJS by Makefile.rtl +LIBGNAT_OBJS = adadecode.o adaint.o argv.o arit64.o aux-io.o \ + cal.o cio.o cstreams.o ctrl_c.o \ + env.o errno.o exit.o expect.o final.o \ + init.o initialize.o locales.o mkdir.o \ + raise.o seh_init.o socket.o sysdep.o \ + targext.o terminals.o tracebak.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. +LIBGNAT_SRCS = $(patsubst %.o,%.c,$(LIBGNAT_OBJS)) \ + adadecode.h adaint.h env.h gsocket.h raise.h \ + tb-gcc.c thread.c $(EXTRA_LIBGNAT_SRCS) + # GNATRTL_NONTASKING_OBJS and GNATRTL_TASKING_OBJS can be found in # the following include file: include $(fsrcdir)/ada/Makefile.rtl +# memtrack.o is special as not put into libgnat. GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \ memtrack.o -# Default run time files - +# Run time source 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 \ @@ -2240,6 +2284,29 @@ ADA_INCLUDE_SRCS =\ 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 +# Files that are in ADA_INCLUDE_SRCS but not in all configurations. +# They will be removed from the run time if not used. +ADA_EXCLUDE_SRCS =\ + s-bb.ads \ + s-bbbosu.ads s-bbcaco.ads s-bbcppr.ads s-bbexti.adb s-bbexti.ads \ + s-bbinte.adb s-bbinte.ads s-bbprot.adb s-bbprot.ads s-bbsle3.ads \ + s-bbsuer.ads s-bbsule.ads s-bbthqu.adb s-bbthqu.ads s-bbthre.adb \ + s-bbthre.ads s-bbtiev.adb s-bbtiev.ads s-bbtime.adb s-bbtime.ads \ + s-bcprmu.adb s-bcprmu.ads s-btstch.adb s-btstch.ads \ + s-po32gl.adb s-po32gl.ads \ + s-stache.adb s-stache.ads \ + s-thread.ads \ + s-vxwexc.adb s-vxwexc.ads s-vxwext.adb s-vxwext.ads \ + s-win32.ads s-winext.ads \ + g-regist.adb g-regist.ads g-sse.ads g-ssvety.ads \ + i-vxwoio.adb i-vxwoio.ads i-vxwork.ads + +# ADA_EXCLUDE_SRCS without the sources used by the target +ADA_EXCLUDE_FILES=$(filter-out \ + $(patsubst %$(objext),%.ads,$(GNATRTL_OBJS)) \ + $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \ + $(ADA_EXCLUDE_SRCS)) + LIBGNAT=../$(RTSDIR)/libgnat.a TOOLS_FLAGS_TO_PASS= \ @@ -2462,15 +2529,6 @@ install-gnatlib: ../stamp-gnatlib-$(RTSDIR) 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) @@ -2478,6 +2536,8 @@ install-gnatlib: ../stamp-gnatlib-$(RTSDIR) # Copy target independent sources $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS), \ $(LN_S) $(fsrcpfx)ada/$(f) $(RTSDIR) ;) true +# Remove files not used + $(RM) $(patsubst %,$(RTSDIR)/%,$(ADA_EXCLUDE_FILES)) # Remove files to be replaced by target dependent sources $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \ $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)))) @@ -2537,6 +2597,7 @@ $(RTSDIR)/s-oscons.ads: ../stamp-gnatlib1-$(RTSDIR) s-oscons-tmplt.c gsocket.h . # is guaranteed to overflow the buffer. gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR) $(RTSDIR)/s-oscons.ads +# C files $(MAKE) -C $(RTSDIR) \ CC="`echo \"$(GCC_FOR_TARGET)\" \ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \ @@ -2545,6 +2606,7 @@ gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR) $(RTSDIR)/s-osc FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \ srcdir=$(fsrcdir) \ -f ../Makefile $(LIBGNAT_OBJS) +# Ada files $(MAKE) -C $(RTSDIR) \ CC="`echo \"$(GCC_FOR_TARGET)\" \ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \ @@ -2553,8 +2615,7 @@ gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR) $(RTSDIR)/s-osc ADAFLAGS="$(GNATLIBFLAGS)" \ FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \ srcdir=$(fsrcdir) \ - -f ../Makefile \ - $(GNATRTL_OBJS) + -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)) |
