diff options
Diffstat (limited to 'gcc/ada/Makefile.adalib')
-rw-r--r-- | gcc/ada/Makefile.adalib | 45 |
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 |