1# Makefile for libada. 2# Copyright (C) 2003-2019 Free Software Foundation, Inc. 3# 4# This file is free software; you can redistribute it and/or modify 5# it under the terms of the GNU General Public License as published by 6# the Free Software Foundation; either version 3 of the License, or 7# (at your option) any later version. 8# 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13# 14# You should have received a copy of the GNU General Public License 15# along with this program; see the file COPYING3. If not see 16# <http://www.gnu.org/licenses/>. 17 18# Default target; must be first. 19all: libada 20 $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE) 21 22.PHONY: all 23 24## Multilib support variables. 25MULTISRCTOP = 26MULTIBUILDTOP = 27MULTIDIRS = 28MULTISUBDIR = 29MULTIDO = true 30MULTICLEAN = true 31 32# Standard autoconf-set variables. 33SHELL = @SHELL@ 34srcdir = @srcdir@ 35libdir = @libdir@ 36build = @build@ 37target = @target@ 38prefix = @prefix@ 39 40# Nonstandard autoconf-set variables. 41enable_shared = @enable_shared@ 42 43LN_S=@LN_S@ 44AWK=@AWK@ 45 46ifeq (cp -p,$(LN_S)) 47LN_S_RECURSIVE = cp -pR 48else 49LN_S_RECURSIVE = $(LN_S) 50endif 51 52# Variables for the user (or the top level) to override. 53objext=.o 54THREAD_KIND=native 55TRACE=no 56LDFLAGS= 57 58# The tedious process of getting CFLAGS right. 59CFLAGS=-g 60PICFLAG = @PICFLAG@ 61GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc 62GNATLIBCFLAGS= -g -O2 63GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) $(CFLAGS_FOR_TARGET) \ 64 -fexceptions -DIN_RTS @have_getipinfo@ @have_capability@ 65 66host_subdir = @host_subdir@ 67GCC_DIR=$(MULTIBUILDTOP)../../$(host_subdir)/gcc 68 69target_noncanonical:=@target_noncanonical@ 70version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER) 71libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR) 72ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR)) 73 74# exeext should not be used because it's the *host* exeext. We're building 75# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus 76# definitions just in case something slips through the safety net provided 77# by recursive make invocations in gcc/ada/Makefile.in 78LIBADA_FLAGS_TO_PASS = \ 79 "MAKEOVERRIDES=" \ 80 "LDFLAGS=$(LDFLAGS)" \ 81 "LN_S=$(LN_S)" \ 82 "SHELL=$(SHELL)" \ 83 "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \ 84 "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \ 85 "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \ 86 "PICFLAG_FOR_TARGET=$(PICFLAG)" \ 87 "THREAD_KIND=$(THREAD_KIND)" \ 88 "TRACE=$(TRACE)" \ 89 "MULTISUBDIR=$(MULTISUBDIR)" \ 90 "libsubdir=$(libsubdir)" \ 91 "objext=$(objext)" \ 92 "prefix=$(prefix)" \ 93 "exeext=.exeext.should.not.be.used " \ 94 'CC=the.host.compiler.should.not.be.needed' \ 95 "GCC_FOR_TARGET=$(CC)" \ 96 "CFLAGS=$(CFLAGS)" 97 98.PHONY: libada gnatlib gnatlib-shared gnatlib-sjlj gnatlib-zcx osconstool 99 100# Rules to build and install libada. 101libada: @default_gnatlib_target@ 102 103gnatlib gnatlib-shared gnatlib-sjlj gnatlib-zcx: osconstool $(GCC_DIR)/ada/Makefile 104 test -f stamp-libada || \ 105 $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) $@ \ 106 && touch stamp-libada 107 -rm -rf adainclude 108 -rm -rf adalib 109 $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adainclude 110 $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adalib 111 112osconstool: 113 $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) ./bldtools/oscons/xoscons 114 115install-libada: $(GCC_DIR)/ada/Makefile 116 $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) install-gnatlib 117 118# Check uninstalled version. 119check: 120 121# Check installed version. 122installcheck: 123 124# Build info (none here). 125info: 126 127# Build DVI (none here). 128dvi: 129 130# Build PDF (none here). 131pdf: 132 133# Build html (none here). 134html: 135 136# Build TAGS (none here). 137TAGS: 138 139.PHONY: check installcheck info dvi pdf html 140 141# Installation rules. 142install: install-libada 143 $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE) 144 145install-strip: install 146 147install-info: 148 149install-pdf: 150 151install-html: 152 153.PHONY: install install-strip install-info install-pdf install-html 154 155# Cleaning rules. 156mostlyclean: 157 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE) 158 159clean: 160 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE) 161 162distclean: 163 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE) 164 $(RM) Makefile config.status config.log 165 166maintainer-clean: 167 168.PHONY: mostlyclean clean distclean maintainer-clean 169 170# Rules for rebuilding this Makefile. 171Makefile: $(srcdir)/Makefile.in config.status 172 CONFIG_FILES=$@ ; \ 173 CONFIG_HEADERS= ; \ 174 $(SHELL) ./config.status 175 176config.status: $(srcdir)/configure 177 $(SHELL) ./config.status --recheck 178 179AUTOCONF = autoconf 180configure_deps = \ 181 $(srcdir)/configure.ac \ 182 $(srcdir)/../config/acx.m4 \ 183 $(srcdir)/../config/multi.m4 \ 184 $(srcdir)/../config/override.m4 \ 185 $(srcdir)/../config/picflag.m4 \ 186 $(srcdir)/../config/unwind_ipinfo.m4 187 188$(srcdir)/configure: @MAINT@ $(configure_deps) 189 cd $(srcdir) && $(AUTOCONF) 190 191# Don't export variables to the environment, in order to not confuse 192# configure. 193.NOEXPORT: 194