# Makefile for gnattools
-# Copyright 2003, 2004, 2009 Free Software Foundation, Inc.
+# Copyright 2003, 2004, 2009, 2010 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
libdir = @libdir@
build = @build@
target = @target@
+host = @host@
prefix = @prefix@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
# Nonstandard autoconf-set variables.
LN_S=@LN_S@
target_noncanonical=@target_noncanonical@
+host_noncanonical=@host_noncanonical@
# Variables for the user (or the top level) to override.
exeext = @EXEEXT@
# The tedious process of getting CFLAGS right.
CFLAGS=-g
-LOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-GCC_WARN_CFLAGS = $(LOOSE_WARN)
+GCC_WARN_CFLAGS = -W -Wall
WARN_CFLAGS = @warn_cflags@
ADA_CFLAGS=@ADA_CFLAGS@
# For finding the GCC build dir, which is used far too much
GCC_DIR=../gcc
+# Full path to top source directory
+ftop_srcdir := $(shell cd $(srcdir)/..;${PWD_COMMAND})
+
# Absolute srcdir for gcc (why do we want absolute? I dunno)
fsrcdir := $(shell cd $(srcdir)/../gcc/; ${PWD_COMMAND})
# Useful "subroutines" for the excess includes
-INCLUDES_FOR_SUBDIR = -I. -I.. -I../.. -I$(fsrcdir)/ada -I$(fsrcdir)/config \
- -I$(fsrcdir)/../include -I$(fsrcdir)
+INCLUDES_FOR_SUBDIR = -iquote . -iquote .. -iquote ../.. \
+ -iquote $(fsrcdir)/ada -iquote $(fsrcdir)/config \
+ -iquote $(fsrcdir) -I$(ftop_srcdir)/include
ADA_INCLUDES_FOR_SUBDIR = -I. -I$(fsrcdir)/ada
-# Variables for gnattools1, native
-TOOLS_FLAGS_TO_PASS_1= \
+CXX_LFLAGS = \
+ -B../../../$(target_noncanonical)/libstdc++-v3/src/.libs \
+ -B../../../$(target_noncanonical)/libstdc++-v3/libsupc++/.libs \
+ -L../../../$(target_noncanonical)/libstdc++-v3/src/.libs \
+ -L../../../$(target_noncanonical)/libstdc++-v3/libsupc++/.libs
+
+# Variables for gnattools, native
+TOOLS_FLAGS_TO_PASS_NATIVE= \
"CC=../../xgcc -B../../" \
+ "CXX=../../xg++ -B../../ $(CXX_LFLAGS)" \
"CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \
"LDFLAGS=$(LDFLAGS)" \
"ADAFLAGS=$(ADAFLAGS)" \
"exeext=$(exeext)" \
"fsrcdir=$(fsrcdir)" \
"srcdir=$(fsrcdir)" \
+ "GNATMAKE=../../gnatmake" \
+ "GNATLINK=../../gnatlink" \
"GNATBIND=../../gnatbind" \
"TOOLSCASE=native"
# Variables for regnattools
-TOOLS_FLAGS_TO_PASS_1re= \
+TOOLS_FLAGS_TO_PASS_RE= \
"CC=../../xgcc -B../../" \
+ "CXX=../../xg++ -B../../ $(CXX_LFLAGS)" \
"CFLAGS=$(CFLAGS)" \
+ "LDFLAGS=$(LDFLAGS)" \
"ADAFLAGS=$(ADAFLAGS)" \
"ADA_CFLAGS=$(ADA_CFLAGS)" \
"INCLUDES=$(INCLUDES_FOR_SUBDIR)" \
"GNATMAKE=../../gnatmake" \
"GNATLINK=../../gnatlink" \
"GNATBIND=../../gnatbind" \
- "TOOLSCASE=cross" \
- "INCLUDES="
-
-# Variables for gnattools2, native
-TOOLS_FLAGS_TO_PASS_NATIVE= \
- "CC=../../xgcc -B../../" \
- "CFLAGS=$(CFLAGS)" \
- "ADAFLAGS=$(ADAFLAGS)" \
- "ADA_CFLAGS=$(ADA_CFLAGS)" \
- "INCLUDES=$(INCLUDES_FOR_SUBDIR)" \
- "ADA_INCLUDES=-I../rts $(ADA_INCLUDES_FOR_SUBDIR)" \
- "exeext=$(exeext)" \
- "fsrcdir=$(fsrcdir)" \
- "srcdir=$(fsrcdir)" \
- "GNATMAKE=../../gnatmake" \
- "GNATLINK=../../gnatlink" \
- "GNATBIND=../../gnatbind" \
- "TOOLSCASE=native"
+ "TOOLSCASE=cross"
# Variables for gnattools, cross
+ifeq ($(build), $(host))
+ GNATMAKE_FOR_HOST=gnatmake
+ GNATLINK_FOR_HOST=gnatlink
+ GNATBIND_FOR_HOST=gnatbind
+ GNATLS_FOR_HOST=gnatls
+else
+ GNATMAKE_FOR_HOST=$(host_noncanonical)-gnatmake
+ GNATLINK_FOR_HOST=$(host_noncanonical)-gnatlink
+ GNATBIND_FOR_HOST=$(host_noncanonical)-gnatbind
+ GNATLS_FOR_HOST=$(host_noncanonical)-gnatls
+endif
+
+# Put the host RTS dir first in the PATH to hide the default runtime
+# files that are among the sources
+RTS_DIR:=$(strip $(subst \,/,$(shell $(GNATLS_FOR_HOST) -v | grep adalib )))
+
TOOLS_FLAGS_TO_PASS_CROSS= \
"CC=$(CC)" \
+ "CXX=$(CXX)" \
"CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \
"LDFLAGS=$(LDFLAGS)" \
"ADAFLAGS=$(ADAFLAGS)" \
"ADA_CFLAGS=$(ADA_CFLAGS)" \
"INCLUDES=$(INCLUDES_FOR_SUBDIR)" \
- "ADA_INCLUDES=-I$(RTS_DIR)../adainclude -I$(RTS_DIR) $(ADA_INCLUDES_FOR_SUBDIR)" \
+ "ADA_INCLUDES=-I$(RTS_DIR)/../adainclude -I$(RTS_DIR) $(ADA_INCLUDES_FOR_SUBDIR)" \
"exeext=$(exeext)" \
"fsrcdir=$(fsrcdir)" \
"srcdir=$(fsrcdir)" \
- "GNATMAKE=gnatmake" \
- "GNATLINK=gnatlink" \
- "GNATBIND=gnatbind" \
+ "GNATMAKE=$(GNATMAKE_FOR_HOST)" \
+ "GNATLINK=$(GNATLINK_FOR_HOST)" \
+ "GNATBIND=$(GNATBIND_FOR_HOST)" \
"TOOLSCASE=cross" \
"LIBGNAT="
gnattools-native: $(GCC_DIR)/stamp-tools $(GCC_DIR)/stamp-gnatlib-rts
# gnattools1
$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
- $(TOOLS_FLAGS_TO_PASS_1) \
+ $(TOOLS_FLAGS_TO_PASS_NATIVE) \
../../gnatmake$(exeext) ../../gnatlink$(exeext)
# gnattools2
$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
regnattools: $(GCC_DIR)/stamp-gnatlib-rts
# gnattools1-re
$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
- $(TOOLS_FLAGS_TO_PASS_1re) \
+ $(TOOLS_FLAGS_TO_PASS_RE) INCLUDES="" \
gnatmake-re gnatlink-re
# gnattools2
$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
$(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools
-# For cross builds of gnattools,
-# put the host RTS dir first in the PATH to hide the default runtime
-# files that are among the sources
-# FIXME: This should be done in configure.
-RTS_DIR:=$(strip $(subst \,/,$(shell gnatls -v | grep adalib )))
gnattools-cross: $(GCC_DIR)/stamp-tools
# gnattools1-re
$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
# gnattools2
$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
$(TOOLS_FLAGS_TO_PASS_CROSS) common-tools
- # Rename cross tools to where the GCC makefile wants them when
- # installing. FIXME: installation should be done elsewhere.
- if [ -f $(GCC_DIR)/gnatbind$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatbind$(exeext) $(GCC_DIR)/gnatbind-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatchop$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatchop$(exeext) $(GCC_DIR)/gnatchop-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnat$(exeext) ] ; then \
- mv $(GCC_DIR)/gnat$(exeext) $(GCC_DIR)/gnat-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatkr$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatkr$(exeext) $(GCC_DIR)/gnatkr-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatlink$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatlink$(exeext) $(GCC_DIR)/gnatlink-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatls$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatls$(exeext) $(GCC_DIR)/gnatls-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatmake$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatmake$(exeext) $(GCC_DIR)/gnatmake-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatmem$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatmem$(exeext) $(GCC_DIR)/gnatmem-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatname$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatname$(exeext) $(GCC_DIR)/gnatname-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatprep$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatprep$(exeext) $(GCC_DIR)/gnatprep-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatxref$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatxref$(exeext) $(GCC_DIR)/gnatxref-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatfind$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatfind$(exeext) $(GCC_DIR)/gnatfind-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatclean$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatclean$(exeext) $(GCC_DIR)/gnatclean-cross$(exeext); \
- fi
- if [ -f $(GCC_DIR)/gnatsym$(exeext) ] ; then \
- mv $(GCC_DIR)/gnatsym$(exeext) $(GCC_DIR)/gnatsym-cross$(exeext); \
- fi
# Other
# -----
# Build HTML (none here).
html:
+.PHONY: check installcheck info dvi pdf html
+
# Build TAGS (none here).
TAGS:
# Installation rules.
install:
+install-strip: install
+
install-info:
install-pdf:
install-html:
+.PHONY: install install-strip install-info install-pdf install-html
+
# Cleaning rules.
mostlyclean:
clean:
distclean:
- $(RM) Makefile config.status config.log
+ $(RM) Makefile config.status config.log config.cache
maintainer-clean:
+.PHONY: mostlyclean clean distclean maintainer-clean
+
# Rules for rebuilding this Makefile.
Makefile: $(srcdir)/Makefile.in config.status
CONFIG_FILES=$@ ; \