1# Dependencies for compiler sources that are generated at build time 2 3# Note: can't use ?= here, not supported by older versions of GNU Make 4 5ifeq ($(origin ADA_GEN_SUBDIR), undefined) 6ADA_GEN_SUBDIR=ada 7endif 8 9ifeq ($(origin CP), undefined) 10CP=cp 11endif 12 13ifeq ($(origin MKDIR), undefined) 14MKDIR=mkdir -p 15endif 16 17ifeq ($(origin MOVE_IF_CHANGE), undefined) 18MOVE_IF_CHANGE=mv -f 19endif 20 21.PHONY: ada_extra_files 22ada_extra_files : $(ADA_GEN_SUBDIR)/treeprs.ads $(ADA_GEN_SUBDIR)/einfo.h $(ADA_GEN_SUBDIR)/sinfo.h $(ADA_GEN_SUBDIR)/nmake.adb \ 23 $(ADA_GEN_SUBDIR)/nmake.ads $(ADA_GEN_SUBDIR)/snames.ads $(ADA_GEN_SUBDIR)/snames.adb $(ADA_GEN_SUBDIR)/snames.h 24 25# We delete the files before copying, below, in case they are read-only. 26 27$(ADA_GEN_SUBDIR)/treeprs.ads : $(ADA_GEN_SUBDIR)/treeprs.adt $(ADA_GEN_SUBDIR)/sinfo.ads $(ADA_GEN_SUBDIR)/xtreeprs.adb 28 -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/treeprs 29 $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/treeprs/,$(notdir $^)) 30 $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/treeprs 31 (cd $(ADA_GEN_SUBDIR)/bldtools/treeprs; gnatmake -q xtreeprs ; ./xtreeprs treeprs.ads ) 32 $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/treeprs/treeprs.ads $(ADA_GEN_SUBDIR)/treeprs.ads 33 34$(ADA_GEN_SUBDIR)/einfo.h : $(ADA_GEN_SUBDIR)/einfo.ads $(ADA_GEN_SUBDIR)/einfo.adb $(ADA_GEN_SUBDIR)/xeinfo.adb $(ADA_GEN_SUBDIR)/ceinfo.adb 35 -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/einfo 36 $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/einfo/,$(notdir $^)) 37 $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/einfo 38 (cd $(ADA_GEN_SUBDIR)/bldtools/einfo; gnatmake -q xeinfo ; ./xeinfo einfo.h ) 39 $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/einfo/einfo.h $(ADA_GEN_SUBDIR)/einfo.h 40 41$(ADA_GEN_SUBDIR)/sinfo.h : $(ADA_GEN_SUBDIR)/sinfo.ads $(ADA_GEN_SUBDIR)/sinfo.adb $(ADA_GEN_SUBDIR)/xsinfo.adb $(ADA_GEN_SUBDIR)/csinfo.adb 42 -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/sinfo 43 $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/sinfo/,$(notdir $^)) 44 $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/sinfo 45 (cd $(ADA_GEN_SUBDIR)/bldtools/sinfo; gnatmake -q xsinfo ; ./xsinfo sinfo.h ) 46 $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/sinfo/sinfo.h $(ADA_GEN_SUBDIR)/sinfo.h 47 48$(ADA_GEN_SUBDIR)/snames.h $(ADA_GEN_SUBDIR)/snames.ads $(ADA_GEN_SUBDIR)/snames.adb : $(ADA_GEN_SUBDIR)/stamp-snames ; @true 49$(ADA_GEN_SUBDIR)/stamp-snames : $(ADA_GEN_SUBDIR)/snames.ads-tmpl $(ADA_GEN_SUBDIR)/snames.adb-tmpl $(ADA_GEN_SUBDIR)/snames.h-tmpl $(ADA_GEN_SUBDIR)/xsnamest.adb $(ADA_GEN_SUBDIR)/xutil.ads $(ADA_GEN_SUBDIR)/xutil.adb 50 -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/snamest 51 $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/snamest/,$(notdir $^)) 52 $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/snamest 53 (cd $(ADA_GEN_SUBDIR)/bldtools/snamest; gnatmake -q xsnamest ; ./xsnamest ) 54 $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/snamest/snames.ns $(ADA_GEN_SUBDIR)/snames.ads 55 $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/snamest/snames.nb $(ADA_GEN_SUBDIR)/snames.adb 56 $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/snamest/snames.nh $(ADA_GEN_SUBDIR)/snames.h 57 touch $(ADA_GEN_SUBDIR)/stamp-snames 58 59$(ADA_GEN_SUBDIR)/nmake.adb $(ADA_GEN_SUBDIR)/nmake.ads: $(ADA_GEN_SUBDIR)/stamp-nmake ; @true 60$(ADA_GEN_SUBDIR)/stamp-nmake: $(ADA_GEN_SUBDIR)/sinfo.ads $(ADA_GEN_SUBDIR)/nmake.adt $(ADA_GEN_SUBDIR)/xnmake.adb $(ADA_GEN_SUBDIR)/xutil.ads $(ADA_GEN_SUBDIR)/xutil.adb 61 -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/nmake 62 $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/nmake/,$(notdir $^)) 63 $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/nmake 64 (cd $(ADA_GEN_SUBDIR)/bldtools/nmake; gnatmake -q xnmake ; ./xnmake -b nmake.adb ; ./xnmake -s nmake.ads) 65 $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/nmake/nmake.ads $(ADA_GEN_SUBDIR)/nmake.ads 66 $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/nmake/nmake.adb $(ADA_GEN_SUBDIR)/nmake.adb 67 touch $(ADA_GEN_SUBDIR)/stamp-nmake 68 69# GCC_FOR_TARGET has paths relative to the gcc directory, so we need to adjust 70# for running it from $(ADA_GEN_SUBDIR)/bldtools/oscons. 71 72OSCONS_CC=$(subst ./xgcc,../../../xgcc,$(subst -B./, -B../../../,$(GCC_FOR_TARGET))) 73 74# The main ada source directory must be on the include path for #include "..." 75# because s-oscons-tmplt.c requires adaint.h, gsocket.h, and any file included 76# by these headers. However note that we must use -iquote, not -I, so that 77# ada/types.h does not conflict with a same-named system header (VxWorks 78# has a <types.h> header). 79 80OSCONS_SRCDIR=$${_oscons_srcdir} 81OSCONS_CPP=$(OSCONS_CC) $(GNATLIBCFLAGS) -E -C \ 82 -DTARGET=\"$(target)\" -iquote $(OSCONS_SRCDIR) s-oscons-tmplt.c > s-oscons-tmplt.i 83OSCONS_EXTRACT=$(OSCONS_CC) -iquote $(OSCONS_SRCDIR) -S s-oscons-tmplt.i 84 85# Note: if you need to build with a non-GNU compiler, you could adapt the 86# following definitions (written for VMS DEC-C) 87#OSCONS_CPP=../../../$(DECC) -E /comment=as_is -DNATIVE \ 88# -DTARGET='""$(target)""' -I$(OSCONS_SRCDIR) s-oscons-tmplt.c 89# 90#OSCONS_EXTRACT=../../../$(DECC) -DNATIVE \ 91# -DTARGET='""$(target)""' -I$(OSCONS_SRCDIR) s-oscons-tmplt.c ; \ 92# ld -o s-oscons-tmplt.exe s-oscons-tmplt.obj; \ 93# ./s-oscons-tmplt.exe > s-oscons-tmplt.s 94 95# Note: the first dependency of s-oscons.ads *must* remain s-oscons-tmplt.c, as 96# we use $(<D) to locate the main ada/ source directory and pass it to OSCONS_CPP 97# as a -I argument. 98$(ADA_GEN_SUBDIR)/s-oscons.ads : $(ADA_GEN_SUBDIR)/s-oscons-tmplt.c $(ADA_GEN_SUBDIR)/xoscons.adb $(ADA_GEN_SUBDIR)/xutil.ads $(ADA_GEN_SUBDIR)/xutil.adb 99 -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/oscons 100 $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/oscons/,$(notdir $^)) 101 $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/oscons 102 _oscons_srcdir=`cd $(<D) && pwd` ; \ 103 (cd $(ADA_GEN_SUBDIR)/bldtools/oscons ; gnatmake -q xoscons ; \ 104 $(RM) s-oscons-tmplt.i s-oscons-tmplt.s ; \ 105 $(OSCONS_CPP) ; \ 106 $(OSCONS_EXTRACT) ; \ 107 ./xoscons s-oscons ) ; \ 108 $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/oscons/s-oscons.ads $(ADA_GEN_SUBDIR)/s-oscons.ads ; \ 109 $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/oscons/s-oscons.h $(ADA_GEN_SUBDIR)/s-oscons.h 110 111$(ADA_GEN_SUBDIR)/sdefault.adb: $(ADA_GEN_SUBDIR)/stamp-sdefault ; @true 112$(ADA_GEN_SUBDIR)/stamp-sdefault : $(srcdir)/version.c Makefile 113 $(ECHO) "pragma Style_Checks (Off);" >tmp-sdefault.adb 114 $(ECHO) "with Osint; use Osint;" >>tmp-sdefault.adb 115 $(ECHO) "package body Sdefault is" >>tmp-sdefault.adb 116 $(ECHO) " S0 : constant String := \"$(prefix)/\";" >>tmp-sdefault.adb 117 $(ECHO) " S1 : constant String := \"$(ADA_INCLUDE_DIR)/\";" >>tmp-sdefault.adb 118 $(ECHO) " S2 : constant String := \"$(ADA_RTL_OBJ_DIR)/\";" >>tmp-sdefault.adb 119 $(ECHO) " S3 : constant String := \"$(target_noncanonical)/\";" >>tmp-sdefault.adb 120 $(ECHO) " S4 : constant String := \"$(libsubdir)/\";" >>tmp-sdefault.adb 121 $(ECHO) " function Include_Dir_Default_Name return String_Ptr is" >>tmp-sdefault.adb 122 $(ECHO) " begin" >>tmp-sdefault.adb 123 $(ECHO) " return Relocate_Path (S0, S1);" >>tmp-sdefault.adb 124 $(ECHO) " end Include_Dir_Default_Name;" >>tmp-sdefault.adb 125 $(ECHO) " function Object_Dir_Default_Name return String_Ptr is" >>tmp-sdefault.adb 126 $(ECHO) " begin" >>tmp-sdefault.adb 127 $(ECHO) " return Relocate_Path (S0, S2);" >>tmp-sdefault.adb 128 $(ECHO) " end Object_Dir_Default_Name;" >>tmp-sdefault.adb 129 $(ECHO) " function Target_Name return String_Ptr is" >>tmp-sdefault.adb 130 $(ECHO) " begin" >>tmp-sdefault.adb 131 $(ECHO) " return new String'(S3);" >>tmp-sdefault.adb 132 $(ECHO) " end Target_Name;" >>tmp-sdefault.adb 133 $(ECHO) " function Search_Dir_Prefix return String_Ptr is" >>tmp-sdefault.adb 134 $(ECHO) " begin" >>tmp-sdefault.adb 135 $(ECHO) " return Relocate_Path (S0, S4);" >>tmp-sdefault.adb 136 $(ECHO) " end Search_Dir_Prefix;" >>tmp-sdefault.adb 137 $(ECHO) "end Sdefault;" >> tmp-sdefault.adb 138 $(MOVE_IF_CHANGE) tmp-sdefault.adb $(ADA_GEN_SUBDIR)/sdefault.adb 139 touch $(ADA_GEN_SUBDIR)/stamp-sdefault 140 141$(ADA_GEN_SUBDIR)/gnat.hlp : $(ADA_GEN_SUBDIR)/vms_help.adb $(ADA_GEN_SUBDIR)/vms_cmds.ads $(ADA_GEN_SUBDIR)/gnat.help_in $(ADA_GEN_SUBDIR)/vms_data.ads 142 -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/gnat_hlp 143 $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/gnat_hlp/,$(notdir $^)) 144 $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/gnat_hlp 145 (cd $(ADA_GEN_SUBDIR)/bldtools/gnat_hlp; \ 146 gnatmake -q vms_help; \ 147 ./vms_help$(build_exeext) gnat.help_in vms_data.ads ../../gnat.hlp) 148