summaryrefslogtreecommitdiff
path: root/gcc/ada/Makefile.adalib
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/Makefile.adalib')
-rw-r--r--gcc/ada/Makefile.adalib45
1 files changed, 26 insertions, 19 deletions
diff --git a/gcc/ada/Makefile.adalib b/gcc/ada/Makefile.adalib
index 873d2ff8c5f..ba084dcfbbd 100644
--- a/gcc/ada/Makefile.adalib
+++ b/gcc/ada/Makefile.adalib
@@ -10,7 +10,7 @@
# $ cd adalib
#
# 2. Copy this Makefile from the standard Adalib directory, e.g.
-# $ cp /usr/local/gnat/lib/gcc-lib/<target>/2.8.1/adalib/Makefile.adalib .
+# $ cp /usr/local/gnat/lib/gcc-lib/<target>/<version>/adalib/Makefile.adalib .
#
# 3. If needed (e.g for pragma Normalize_Scalars), create a gnat.adc
# containing the configuration pragmas you want to use to build the library
@@ -19,14 +19,14 @@
# relevant to the GNAT run time.
#
# 4. Determine the values of the following MACROS
-# ROOT (location of GNAT installation, e.g /usr/local)
+# ROOT (location of GNAT installation, e.g /usr/local/gnat)
# and optionnally
# CFLAGS (back end compilation flags such as -g -O2)
# ADAFLAGS (front end compilation flags such as -gnatpgn)
# *beware* the minimum value for this MACRO is -gnatpg
# for proper compilation of the GNAT library
# 5a. If you are using a native compile, call make
-# e.g. $ make -f Makefile.adalib ROOT=/usr/local CFLAGS="-g -O0"
+# e.g. $ make -f Makefile.adalib ROOT=/usr/local/gnat CFLAGS="-g -O0"
#
# 5b. If you are using a cross compiler, you need to define two additional
# MACROS:
@@ -41,15 +41,20 @@
# in place of the original one. This can be achieved for instance by
# updating the value of the environment variable ADA_OBJECTS_PATH
-SHELL=sh
PWD_COMMAND=$${PWDCMD-pwd}
-
CC = gcc
AR = ar
-GNAT_ROOT = $(shell cd $(ROOT);${PWD_COMMAND})/
+
+ifeq ($(strip $(filter-out %sh,$(SHELL))),)
+ GNAT_ROOT = $(shell cd $(ROOT);${PWD_COMMAND})/
+else
+ GNAT_ROOT = $(ROOT)/
+endif
+
target = $(shell $(CC) -dumpmachine)
version = $(shell $(CC) -dumpversion)
ADA_INCLUDE_PATH = $(GNAT_ROOT)lib/gcc-lib/$(target)/$(version)/adainclude/
+GCC_INCLUDE_PATH = $(GNAT_ROOT)lib/gcc-lib/$(target)/$(version)/gcc-include/
ADA_OBJECTS_PATH = $(GNAT_ROOT)lib/gcc-lib/$(target)/$(version)/adalib/
vpath %.adb $(ADA_INCLUDE_PATH)
@@ -58,27 +63,32 @@ vpath %.c $(ADA_INCLUDE_PATH)
vpath %.h $(ADA_INCLUDE_PATH)
CFLAGS = -O2
+GNATLIBCFLAGS = -DIN_RTS=1 -DIN_GCC=1 -fexceptions
ADAFLAGS = -gnatpgn
-ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) -I.
+ALL_ADAFLAGS = $(CFLAGS) $(ADAFLAGS) -I.
FORCE_DEBUG_ADAFLAGS = -g
-INCLUDES = -I$(ADA_INCLUDE_PATH)
+INCLUDES = -I$(ADA_INCLUDE_PATH) -I$(GCC_INCLUDE_PATH)/include \
+-I$(GCC_INCLUDE_PATH)/gcc/config -I$(GCC_INCLUDE_PATH)/gcc \
+-I$(GCC_INCLUDE_PATH)/gcc/ada -I$(GCC_INCLUDE_PATH)
# Say how to compile Ada programs.
.SUFFIXES: .ada .adb .ads
.c.o:
- $(CC) -c $(CFLAGS) $(ADA_CFLAGS) $(INCLUDES) $<
+ $(CC) -c $(CFLAGS) $(GNATLIBCFLAGS) $(INCLUDES) $<
.adb.o:
$(CC) -c $(ALL_ADAFLAGS) $<
.ads.o:
$(CC) -c $(ALL_ADAFLAGS) $<
-GNAT_OBJS :=$(filter-out prefix.o __%,$(shell $(AR) t $(ADA_OBJECTS_PATH)libgnat.a))
+GNAT_OBJS :=$(filter-out __%,$(shell $(AR) t $(ADA_OBJECTS_PATH)libgnat.a))
GNARL_OBJS:=$(filter-out __%,$(shell $(AR) t $(ADA_OBJECTS_PATH)libgnarl.a))
OBJS := $(GNAT_OBJS) $(GNARL_OBJS)
-all: libgnat.a libgnarl.a
+all: libgnat.a libgnarl.a delete_objects g-trasym.o
chmod 0444 *.ali *.a
+
+delete_objects:
rm *.o
libgnat.a: $(GNAT_OBJS)
@@ -102,14 +112,11 @@ s-vaflop.o: s-vaflop.adb
s-memory.o: s-memory.adb s-memory.ads
$(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) $<
-a-init.o: a-init.c a-ada.h a-types.h a-raise.h
- $(CC) -c $(CFLAGS) $(ADA_CFLAGS) \
- $(ALL_CPPFLAGS) $(INCLUDES) -fexceptions $<
+s-traceb.o: s-traceb.adb
+ $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -fno-optimize-sibling-calls $(ADA_INCLUDES) $<
-a-traceb.o: a-traceb.c
- $(CC) -c $(CFLAGS) $(ADA_CFLAGS) \
+tracebak.o: tracebak.c
+ $(CC) -c $(CFLAGS) $(GNATLIBCFLAGS) \
$(ALL_CPPFLAGS) $(INCLUDES) -fno-omit-frame-pointer $<
-prefix.o: prefix.c gansidecl.h
- $(CC) -c $(CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
- -DPREFIX=\"$(GNAT_ROOT)\" $<
+.PHONY: delete_objects