13681906ff
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
197 lines
5.1 KiB
Makefile
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:
|