gcc/libada/Makefile.in
Maciej W. Rozycki 13681906ff libada: Respect `--enable-version-specific-runtime-libs'
Respect the `--enable-version-specific-runtime-libs' configuration
option in libada/, so that shared gnatlib libraries will be installed
in non-version-specific $(toolexeclibdir) if requested.  In a
cross-compilation environment this helps setting up a consistent
sysroot, which can then be shared between the host and the target
system.

This lets one have `libgnarl-10.so' and `libgnat-10.so' installed in say
/usr/lib and /usr/$(target_alias)/lib for a native and a cross-build
respectively, rather than in /usr/lib/gcc/$(target_alias)/10.0.0/adalib.

Update the settings of $(toolexecdir) and $(toolexeclibdir), unused till
now, to keep the current arrangement in the version-specific case and
make the new option to be enabled by default, unlike with the other
target libraries, so as to keep existing people's build infrastructure
unaffected.

Of course if someone does use `--disable-version-specific-runtime-libs'
already, then the installation location of shared gnatlib libraries will
change, but presumably this is what they do want anyway as the current
situation where the option is ignored in libada/ only is an anomaly
really rather than one that is expected or desired.

	gcc/ada/
	* gcc-interface/Makefile.in (ADA_RTL_DSO_DIR): New variable.
	(install-gnatlib): Use it in place of ADA_RTL_OBJ_DIR for shared
	library installation.

	libada/
	* Makefile.in (toolexecdir, toolexeclibdir): New variables.
	(LIBADA_FLAGS_TO_PASS): Add `toolexeclibdir'.
	* configure.ac: Add `--enable-version-specific-runtime-libs'.
	Update version-specific `toolexecdir' and `toolexeclibdir' from
	ADA_RTL_OBJ_DIR from gcc/ada/gcc-interface/Makefile.in.
	* configure: Regenerate.

From-SVN: r276424
2019-10-01 19:14:11 +00:00

197 lines
5.1 KiB
Makefile

# Makefile for libada.
# Copyright (C) 2003-2019 Free Software Foundation, Inc.
#
# This file 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 of the License, or
# (at your option) any later version.
#
# This program 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 this program; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
# Default target; must be first.
all: libada
$(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
.PHONY: all
## Multilib support variables.
MULTISRCTOP =
MULTIBUILDTOP =
MULTIDIRS =
MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
# Standard autoconf-set variables.
SHELL = @SHELL@
srcdir = @srcdir@
libdir = @libdir@
build = @build@
target = @target@
prefix = @prefix@
# Nonstandard autoconf-set variables.
toolexecdir = @toolexecdir@
toolexeclibdir = @toolexeclibdir@
enable_shared = @enable_shared@
LN_S=@LN_S@
AWK=@AWK@
ifeq (cp -p,$(LN_S))
LN_S_RECURSIVE = cp -pR
else
LN_S_RECURSIVE = $(LN_S)
endif
# Variables for the user (or the top level) to override.
objext=.o
THREAD_KIND=native
TRACE=no
LDFLAGS=
# The tedious process of getting CFLAGS right.
CFLAGS=-g
PICFLAG = @PICFLAG@
GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc
GNATLIBCFLAGS= -g -O2
GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) $(CFLAGS_FOR_TARGET) \
-fexceptions -DIN_RTS @have_getipinfo@ @have_capability@
host_subdir = @host_subdir@
GCC_DIR=$(MULTIBUILDTOP)../../$(host_subdir)/gcc
target_noncanonical:=@target_noncanonical@
version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER)
libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
# exeext should not be used because it's the *host* exeext. We're building
# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
# definitions just in case something slips through the safety net provided
# by recursive make invocations in gcc/ada/Makefile.in
LIBADA_FLAGS_TO_PASS = \
"MAKEOVERRIDES=" \
"LDFLAGS=$(LDFLAGS)" \
"LN_S=$(LN_S)" \
"SHELL=$(SHELL)" \
"GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
"GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
"GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
"PICFLAG_FOR_TARGET=$(PICFLAG)" \
"THREAD_KIND=$(THREAD_KIND)" \
"TRACE=$(TRACE)" \
"MULTISUBDIR=$(MULTISUBDIR)" \
"libsubdir=$(libsubdir)" \
"toolexeclibdir=$(toolexeclibdir)" \
"objext=$(objext)" \
"prefix=$(prefix)" \
"exeext=.exeext.should.not.be.used " \
'CC=the.host.compiler.should.not.be.needed' \
"GCC_FOR_TARGET=$(CC)" \
"CFLAGS=$(CFLAGS)"
.PHONY: libada gnatlib gnatlib-shared gnatlib-sjlj gnatlib-zcx osconstool
# Rules to build and install libada.
libada: @default_gnatlib_target@
gnatlib gnatlib-shared gnatlib-sjlj gnatlib-zcx: osconstool $(GCC_DIR)/ada/Makefile
test -f stamp-libada || \
$(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) $@ \
&& touch stamp-libada
-rm -rf adainclude
-rm -rf adalib
$(LN_S_RECURSIVE) $(ADA_RTS_DIR) adainclude
$(LN_S_RECURSIVE) $(ADA_RTS_DIR) adalib
osconstool:
$(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) ./bldtools/oscons/xoscons
install-libada: $(GCC_DIR)/ada/Makefile
$(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) install-gnatlib
# Check uninstalled version.
check:
# Check installed version.
installcheck:
# Build info (none here).
info:
# Build DVI (none here).
dvi:
# Build PDF (none here).
pdf:
# Build html (none here).
html:
# Build TAGS (none here).
TAGS:
.PHONY: check installcheck info dvi pdf html
# Installation rules.
install: install-libada
$(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
install-strip: install
install-info:
install-pdf:
install-html:
.PHONY: install install-strip install-info install-pdf install-html
# Cleaning rules.
mostlyclean:
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE)
clean:
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE)
distclean:
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
$(RM) Makefile config.status config.log
maintainer-clean:
.PHONY: mostlyclean clean distclean maintainer-clean
# Rules for rebuilding this Makefile.
Makefile: $(srcdir)/Makefile.in config.status
CONFIG_FILES=$@ ; \
CONFIG_HEADERS= ; \
$(SHELL) ./config.status
config.status: $(srcdir)/configure
$(SHELL) ./config.status --recheck
AUTOCONF = autoconf
configure_deps = \
$(srcdir)/configure.ac \
$(srcdir)/../config/acx.m4 \
$(srcdir)/../config/multi.m4 \
$(srcdir)/../config/override.m4 \
$(srcdir)/../config/picflag.m4 \
$(srcdir)/../config/unwind_ipinfo.m4
$(srcdir)/configure: @MAINT@ $(configure_deps)
cd $(srcdir) && $(AUTOCONF)
# Don't export variables to the environment, in order to not confuse
# configure.
.NOEXPORT: