OSDN Git Service

2004-05-05 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / libada / Makefile.in
index e1565e7..e77f9cd 100644 (file)
@@ -23,32 +23,210 @@ SHELL = @SHELL@
 srcdir = @srcdir@
 build = @build@
 target = @target@
-enable_shared = @enable_shared@
+prefix = @prefix@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 
 # Nonstandard autoconf-set variables.
+enable_shared = @enable_shared@
+LN_S=@LN_S@
+target_noncanonical=@target_noncanonical@
 
-FLAGS_TO_PASS =
+# Variables for the user (or the top level) to override.
+objext=.o
+GNATLIBFLAGS= -W -Wall -gnatpg
+THREAD_KIND=native
+TRACE=no
+GNATLIBLDFLAGS=
+ADA_FOR_BUILD=
+ADA_FOR_TARGET=
+LDFLAGS=
+STAGE_PREFIX=
 
-GNATLIB = gnatlib
+# The tedious process of getting CFLAGS right.
+CFLAGS=-g
+LOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
+GCC_WARN_CFLAGS = $(LOOSE_WARN) $(NOCOMMON_FLAG)
 
-ifeq ($(build),$(target))
-  GNATTOOLS = gnattools
+ADA_CFLAGS=
+T_ADA_CFLAGS=
+# HPPA is literally the only target which sets X_ADA_CFLAGS
+X_ADA_CFLAGS=@x_ada_cflags@
+ALL_ADA_CFLAGS=$(X_ADA_CFLAGS) $(T_ADA_CFLAGS) $(ADA_CFLAGS)
 
-  ifeq ($(enable_shared),yes)
-    GNATLIB = gnatlib-shared
-  endif
+# Variables for gnattools.
+ADAFLAGS= -gnatpg -gnata
+ADA_INCLUDE_DIR = $(libsubdir)/adainclude
+ADA_RTL_OBJ_DIR = $(libsubdir)/adalib
 
-else
-  GNATTOOLS = cross-gnattools ada.all.cross
+# For finding the GCC build dir, which is used far too much
+GCC_DIR=../../gcc
+# Include fragment generated by GCC configure.
+include $(GCC_DIR)/libada-mk
+# Variables based on those gleaned from the GCC makefile.  :-P
+libsubdir=$(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
+
+TARGET_LIBGCC2_CFLAGS=
+GNATLIBCFLAGS= -g -O2
+# Get target-specific overrides for TARGET_LIBGCC2_CFLAGS
+# and possibly GNATLIBCFLAGS.  Currently this uses files
+# in gcc/config.  The 'subst' call is used to rerelativize them
+# from their gcc locations.  This is hackery, but there isn't
+# yet a better way to do this.
+tmake_file=$(subst /config,/../gcc/config,$(gcc_tmake_file))
+ifneq ($(tmake_file),)
+include $(tmake_file)
 endif
 
+# Get possible host-specific override for libsubdir (ick).
+xmake_file=$(subst /config,/../gcc/config,$(gcc_xmake_file))
+ifneq ($(xmake_file),)
+include $(xmake_file)
+endif
+
+FLAGS_TO_PASS = \
+        "MAKEOVERRIDES=" \
+        "LDFLAGS=$(LDFLAGS)" \
+        "LN_S=$(LN_S)" \
+        "SHELL=$(SHELL)" \
+        "exeext=$(exeext)" \
+        "objext=$(objext)" \
+        "prefix=$(prefix)" \
+        "STAGE_PREFIX=$(STAGE_PREFIX)" \
+       "CC=$(cc_set_by_configure)" \
+        "CFLAGS=$(CFLAGS) $(WARN_CFLAGS)"
+
+ADA_FLAGS_TO_PASS = \
+        "ADA_FOR_BUILD=$(ADA_FOR_BUILD)"        \
+        "ADA_INCLUDE_DIR=$(ADA_INCLUDE_DIR)"    \
+        "ADA_RTL_OBJ_DIR=$(ADA_RTL_OBJ_DIR)"    \
+        "ADAFLAGS=$(ADAFLAGS)"                  \
+        "ADA_FOR_TARGET=$(ADA_FOR_TARGET)"      \
+        "INSTALL=$(INSTALL)"                    \
+        "INSTALL_DATA=$(INSTALL_DATA)"          \
+        "INSTALL_PROGRAM=$(INSTALL_PROGRAM)"
+
+ADA_TOOLS_FLAGS_TO_PASS=\
+        "CC=../../xgcc -B../../"        \
+        "CFLAGS=$(CFLAGS)"              \
+        "exeext=$(exeext)"              \
+        "ADAFLAGS=$(ADAFLAGS)"          \
+        "ADA_INCLUDES=-I../rts"         \
+        "GNATMAKE=../../gnatmake"       \
+        "GNATLINK=../../gnatlink"       \
+        "GNATBIND=../../gnatbind"
+
 # Rules to build gnatlib.
-gnatlib:
-       $(MAKE) -C ../../gcc $(FLAGS_TO_PASS) $(GNATLIB)
+.PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared
+gnatlib: @default_gnatlib_target@
+
+gnatlib-plain:
+       $(MAKE) -C $(GCC_DIR)/ada $(FLAGS_TO_PASS) \
+         GNATLIBFLAGS="$(GNATLIBFLAGS)" \
+         GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
+         TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" \
+         THREAD_KIND="$(THREAD_KIND)" \
+         TRACE="$(TRACE)" \
+         gnatlib
+
+gnatlib-sjlj gnatlib-zcx gnatlib-shared:
+       $(MAKE) -C $(GCC_DIR)/ada $(FLAGS_TO_PASS) \
+         GNATLIBFLAGS="$(GNATLIBFLAGS)" \
+         GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
+         TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" \
+         THREAD_KIND="$(THREAD_KIND)" \
+         TRACE="$(TRACE)" \
+         $@
+
+.PHONY: rts-zfp rts-ravenscar
+rts-zfp rts-ravenscar:
+       $(MAKE) -C $(GCC_DIR)/ada $(FLAGS_TO_PASS) \
+         GNATMAKE=../gnatmake-cross \
+         $@
 
 # Rules to build gnattools.
-gnattools: gnatlib
-       $(MAKE) -C ../../gcc $(FLAGS_TO_PASS) $(GNATTOOLS)
+.PHONY: gnattools gnattools-native gnattools-cross regnattools
+gnattools: @default_gnattools_target@
+
+gnattools-native: gnatlib
+       $(MAKE) -C $(GCC_DIR)/ada $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
+         ADA_INCLUDES="-I- -I../rts" \
+         CC="../../xgcc -B../../" STAGE_PREFIX=../../  gnattools1
+       $(MAKE) -C $(GCC_DIR)/ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2
+       $(MAKE) -C $(GCC_DIR)/ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools3
+
+# 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: gnatlib
+       $(MAKE)  -C $(GCC_DIR)/ada $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
+         ADA_INCLUDES="-I$(RTS_DIR)../adainclude -I$(RTS_DIR)" \
+         GNATMAKE="gnatmake" \
+         GNATBIND="gnatbind" \
+         GNATLINK="gnatlink" \
+         LIBGNAT="" \
+         gnattools1-re gnattools2 gnattools4
+       # 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)/gnatbl$(exeext) ] ; then \
+         mv $(GCC_DIR)/gnatbl$(exeext) $(GCC_DIR)/gnatbl-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
+       if [ -f $(GCC_DIR)/gpr2make$(exeext) ] ; then \
+         mv $(GCC_DIR)/gpr2make$(exeext) $(GCC_DIR)/gpr2make-cross$(exeext); \
+       fi
+       if [ -f $(GCC_DIR)/gprcmd$(exeext) ] ; then \
+         mv $(GCC_DIR)/gprcmd$(exeext) $(GCC_DIR)/gprcmd-cross$(exeext); \
+       fi
+
+regnattools:
+       $(MAKE) -C $(GCC_DIR)/ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1-re
+       $(MAKE) -C $(GCC_DIR)/ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2
+       $(MAKE) -C $(GCC_DIR)/ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools3
 
 # Check uninstalled version.
 check:
@@ -89,5 +267,5 @@ Makefile: $(srcdir)/Makefile.in config.status
 config.status: $(srcdir)/configure
        $(SHELL) ./config.status --recheck
 
-$(srcdir)/configure: @MAINT@ $(srcdir)/configure.in
+$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac
        cd $(srcdir) && autoconf