]>
Commit | Line | Data |
---|---|---|
a1ab4c31 | 1 | # Top level -*- makefile -*- fragment for GNU Ada (GNAT). |
b2263428 | 2 | # Copyright (C) 2009-2023 Free Software Foundation, Inc. |
a1ab4c31 AC |
3 | |
4 | #This file is part of GCC. | |
5 | ||
6 | #GCC is free software; you can redistribute it and/or modify | |
7 | #it under the terms of the GNU General Public License as published by | |
8 | #the Free Software Foundation; either version 3, or (at your option) | |
9 | #any later version. | |
10 | ||
11 | #GCC is distributed in the hope that it will be useful, | |
12 | #but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | #GNU General Public License for more details. | |
15 | ||
16 | #You should have received a copy of the GNU General Public License | |
17 | #along with GCC; see the file COPYING3. If not see | |
18 | #<http://www.gnu.org/licenses/>. | |
19 | ||
20 | # This file provides the language dependent support in the main Makefile. | |
21 | # Each language makefile fragment must provide the following targets: | |
22 | # | |
23 | # foo.all.cross, foo.start.encap, foo.rest.encap, | |
24 | # foo.install-common, foo.install-man, foo.install-info, foo.install-pdf, | |
55bcd32b | 25 | # foo.install-html, foo.info, foo.dvi, foo.pdf, foo.html, foo.uninstall, |
a1ab4c31 AC |
26 | # foo.mostlyclean, foo.clean, foo.distclean, |
27 | # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 | |
28 | # | |
29 | # where `foo' is the name of the language. | |
30 | # | |
31 | # It should also provide rules for: | |
32 | # | |
33 | # - making any compiler driver (eg: g++) | |
34 | # - the compiler proper (eg: cc1plus) | |
35 | # - define the names for selecting the language in LANGUAGES. | |
36 | # tool definitions | |
37 | CP = cp -p | |
38 | ECHO = echo | |
39 | MV = mv | |
40 | MKDIR = mkdir -p | |
41 | RM = rm -f | |
42 | RMDIR = rm -rf | |
f8fb01fb | 43 | |
a1ab4c31 AC |
44 | |
45 | # Extra flags to pass to recursive makes. | |
7cb9fd07 EB |
46 | COMMON_ADAFLAGS= -gnatpg |
47 | ifeq ($(TREECHECKING),) | |
48 | CHECKING_ADAFLAGS= | |
49 | else | |
50 | CHECKING_ADAFLAGS= -gnata | |
51 | endif | |
0cfaf83f | 52 | WARN_ADAFLAGS= -W -Wall |
a1ab4c31 | 53 | |
0c6f926d AC |
54 | # For native builds, the base compiler might be old and we need to arrange for |
55 | # style warnings not to be flagged as errors during stage1. Cross compilers | |
56 | # need to be built by a recent/matching native so we might as well leave the | |
57 | # checks fully active. | |
58 | ||
abcf5174 AC |
59 | STAGE1=False |
60 | GNATBIND_FLAGS= | |
61 | GNATLIB= | |
62 | ||
a1ab4c31 | 63 | ifeq ($(CROSS),) |
abcf5174 AC |
64 | ADAFLAGS=$(COMMON_ADAFLAGS) -gnatwns |
65 | ||
66 | ifeq ($(if $(wildcard ../stage_current),$(shell cat ../stage_current),stage1),stage1) | |
67 | STAGE1=True | |
68 | GNATBIND_FLAGS=-t | |
69 | endif | |
a1ab4c31 | 70 | else |
abcf5174 | 71 | ADAFLAGS=$(COMMON_ADAFLAGS) |
a1ab4c31 AC |
72 | endif |
73 | ||
7cb9fd07 EB |
74 | ALL_ADAFLAGS = \ |
75 | $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) $(CHECKING_ADAFLAGS) $(WARN_ADAFLAGS) | |
a1ab4c31 AC |
76 | FORCE_DEBUG_ADAFLAGS = -g |
77 | ADA_CFLAGS = | |
abcf5174 AC |
78 | COMMON_ADA_INCLUDES = -I- -I. -Iada/generated -Iada -I$(srcdir)/ada |
79 | ||
80 | STAGE1_LIBS= | |
81 | ||
82 | ifeq ($(strip $(filter-out linux%,$(host_os))),) | |
83 | STAGE1_LIBS=-ldl | |
84 | endif | |
85 | ||
07b41006 JDA |
86 | ifeq ($(strip $(filter-out hpux%,$(host_os))),) |
87 | STAGE1_LIBS=/usr/lib/libcl.a | |
88 | endif | |
89 | ||
abcf5174 AC |
90 | ifeq ($(STAGE1),True) |
91 | ADA_INCLUDES=$(COMMON_ADA_INCLUDES) | |
60750741 AC |
92 | adalib=$(dir $(shell $(CC) -print-libgcc-file-name))adalib |
93 | GNATLIB=$(adalib)/$(if $(wildcard $(adalib)/libgnat.a),libgnat.a,libgnat.so) $(STAGE1_LIBS) | |
abcf5174 AC |
94 | else |
95 | ADA_INCLUDES=-nostdinc $(COMMON_ADA_INCLUDES) -Iada/libgnat -I$(srcdir)/ada/libgnat -Iada/gcc-interface -I$(srcdir)/ada/gcc-interface | |
96 | endif | |
97 | ||
e45c0886 EB |
98 | GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc |
99 | GNATLIBCFLAGS= -g -O2 $(TCFLAGS) | |
a1ab4c31 AC |
100 | ADA_INCLUDE_DIR = $(libsubdir)/adainclude |
101 | ADA_RTL_OBJ_DIR = $(libsubdir)/adalib | |
e45c0886 | 102 | THREAD_KIND=native |
0cfaf83f | 103 | # We do not want the WARN_CFLAGS of the compiler in Ada as it is for C/C++. |
1ce499ae | 104 | COMMON_FLAGS_TO_PASS = $(filter-out $(WARN_CFLAGS), $(FLAGS_TO_PASS)) |
a1ab4c31 AC |
105 | ADA_FLAGS_TO_PASS = \ |
106 | "ADA_FOR_BUILD=$(ADA_FOR_BUILD)" \ | |
107 | "ADA_INCLUDE_DIR=$(ADA_INCLUDE_DIR)" \ | |
108 | "ADA_RTL_OBJ_DIR=$(ADA_RTL_OBJ_DIR)" \ | |
0cfaf83f | 109 | "ADAFLAGS=$(ADAFLAGS) $(WARN_ADAFLAGS)" \ |
a1ab4c31 AC |
110 | "ADA_FOR_TARGET=$(ADA_FOR_TARGET)" \ |
111 | "INSTALL=$(INSTALL)" \ | |
112 | "INSTALL_DATA=$(INSTALL_DATA)" \ | |
113 | "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" | |
114 | ||
e5297224 JR |
115 | # List of Ada tools to build and install |
116 | ADA_TOOLS=gnatbind gnatchop gnat gnatkr gnatlink gnatls gnatmake \ | |
5b0e0158 | 117 | gnatname gnatprep gnatclean |
e5297224 | 118 | |
a1ab4c31 AC |
119 | # Say how to compile Ada programs. |
120 | .SUFFIXES: .ada .adb .ads | |
121 | ||
cd9912b5 | 122 | # FIXME: need to add $(ADA_CFLAGS) to .cc.o suffix rule |
c6bd4220 EB |
123 | # Use mildly strict warnings for this front end and add special flags. |
124 | ada-warn = $(ADA_CFLAGS) $(filter-out -pedantic, $(STRICT_WARN)) | |
125 | # Unresolved warnings in specific files. | |
126 | ada/adaint.o-warn = -Wno-error | |
a1ab4c31 | 127 | |
cd9912b5 | 128 | ada/%.o: ada/gcc-interface/%.cc |
8219336f NR |
129 | $(COMPILE) $< |
130 | $(POSTCOMPILE) | |
131 | ||
edcc77db NR |
132 | # Function that dumps the dependencies of an Ada object. Dependency only work |
133 | # fully if the compiler support -gnatd.n. Otherwise a fallback mechanism is | |
7dbe3736 NR |
134 | # used. The fallback mechanism parse the ali files to get the list of |
135 | # dependencies and try to guess their location. If the location cannot be found | |
136 | # then the dependency is ignored. | |
edcc77db NR |
137 | ifeq ($(findstring -gnatd.n,$(ALL_ADAFLAGS)),) |
138 | ADA_DEPS=\ | |
139 | mkdir -p $(dir $@)/$(DEPDIR); \ | |
140 | (o="$@: $<"; \ | |
7dbe3736 NR |
141 | a="`echo $@ | sed -e 's/.o$$/.ali/'`"; \ |
142 | for d in `cat $$a | sed -ne 's;^D \([a-z0-9_\.-]*\).*;\1;gp'`; do \ | |
143 | for l in ada $(srcdir)/ada ada/libgnat $(srcdir)/ada/libgnat; do \ | |
144 | if test -f $$l/$$d; then \ | |
145 | o="$$o $$l/$$d"; \ | |
146 | fi; \ | |
147 | done; \ | |
edcc77db NR |
148 | done; \ |
149 | echo "$$o"; echo) \ | |
150 | >$(dir $@)/$(DEPDIR)/$(patsubst %.o,%.Po,$(notdir $@)) | |
151 | ADA_OUTPUT_OPTION = $(OUTPUT_OPTION) | |
152 | else | |
153 | ADA_DEPS=\ | |
154 | mkdir -p $(dir $@)/$(DEPDIR); \ | |
7dbe3736 NR |
155 | (echo "$@: $< " | tr -d '\015' | tr -d '\n'; \ |
156 | cat $@.gnatd.n | tr -d '\015' | tr '\n' ' '; \ | |
157 | echo; echo) \ | |
edcc77db NR |
158 | >$(dir $@)/$(DEPDIR)/$(patsubst %.o,%.Po,$(notdir $@)) |
159 | ADA_OUTPUT_OPTION = $(OUTPUT_OPTION) > $@.gnatd.n | |
160 | endif | |
161 | ||
8219336f | 162 | |
a1ab4c31 | 163 | .adb.o: |
edcc77db NR |
164 | mkdir -p $(dir $@) |
165 | $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION) | |
8219336f NR |
166 | @$(ADA_DEPS) |
167 | ||
a1ab4c31 | 168 | .ads.o: |
edcc77db NR |
169 | mkdir -p $(dir $@) |
170 | $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION) | |
8219336f | 171 | @$(ADA_DEPS) |
a1ab4c31 AC |
172 | |
173 | # Define the names for selecting Ada in LANGUAGES. | |
174 | ada: gnat1$(exeext) gnatbind$(exeext) | |
a774a6a2 | 175 | ada.serial = gnat1$(exeext) |
a1ab4c31 AC |
176 | |
177 | # Tell GNU Make to ignore these, if they exist. | |
a774a6a2 | 178 | .PHONY: ada |
a1ab4c31 | 179 | |
9a30c7c4 AC |
180 | # Compute the FLAGS to pass for gnattools, now linked with a C++ driver as |
181 | # we're linking against at least libcommon which contains C++ compiled code. | |
182 | # We need to use the same driver to link as the one that was used to produce | |
183 | # the objects, which depends on whether we're bootstrapping or not. The CXX | |
184 | # variable conveys what we need for this, set to "g++" if not bootstrapping, | |
185 | # ".../xg++" otherwise. | |
d775b5ea | 186 | |
a1ab4c31 AC |
187 | # There are too many Ada sources to check against here. Let's |
188 | # always force the recursive make. | |
28d711bf NR |
189 | ifeq ($(build), $(host)) |
190 | ifeq ($(host), $(target)) | |
191 | # This is a regular native. So use the compiler from our current build | |
192 | # tree. | |
193 | ADA_TOOLS_FLAGS_TO_PASS=\ | |
0cfaf83f | 194 | CC="../../xgcc -B../../" \ |
9a30c7c4 | 195 | CXX="$(CXX)" \ |
0cfaf83f | 196 | $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \ |
dbb4cfef | 197 | ADA_INCLUDES="-I- -I../generated -I../rts" \ |
0cfaf83f EB |
198 | GNATMAKE="../../gnatmake" \ |
199 | GNATLINK="../../gnatlink" \ | |
200 | GNATBIND="../../gnatbind" | |
28d711bf NR |
201 | else |
202 | # This is a regular cross compiler. Use the native compiler to compile | |
203 | # the tools. | |
204 | ||
205 | # put the host RTS dir first in the PATH to hide the default runtime | |
206 | # files that are among the sources | |
33e4edab EB |
207 | ifneq ($(findstring ada,$(LANGUAGES)),) |
208 | RTS_DIR:=$(strip $(subst \,/,$(shell gnatls -v | grep adalib ))) | |
209 | endif | |
28d711bf NR |
210 | |
211 | ADA_TOOLS_FLAGS_TO_PASS=\ | |
212 | CC="$(CC)" \ | |
d775b5ea | 213 | CXX="$(CXX)" \ |
0cfaf83f | 214 | $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \ |
dbb4cfef | 215 | ADA_INCLUDES="-I../generated -I$(RTS_DIR)/../adainclude -I$(RTS_DIR)" \ |
28d711bf NR |
216 | GNATMAKE="gnatmake" \ |
217 | GNATBIND="gnatbind" \ | |
218 | GNATLINK="gnatlink" \ | |
219 | LIBGNAT="" | |
220 | endif | |
221 | else | |
222 | # Build is different from host so we are either building a canadian cross | |
223 | # or a cross-native compiler. We provide defaults for tools targeting the | |
224 | # host platform, but they can be overriden by just setting <tool>_FOR_HOST | |
b731a420 | 225 | # variables. |
47e62307 EB |
226 | GNATMAKE_FOR_HOST=$(host_noncanonical)-gnatmake |
227 | GNATBIND_FOR_HOST=$(host_noncanonical)-gnatbind | |
228 | GNATLINK_FOR_HOST=$(host_noncanonical)-gnatlink | |
229 | GNATLS_FOR_HOST=$(host_noncanonical)-gnatls | |
28d711bf NR |
230 | |
231 | ifeq ($(host), $(target)) | |
232 | # This is a cross native. All the sources are taken from the currently | |
233 | # built runtime. | |
234 | ADA_TOOLS_FLAGS_TO_PASS=\ | |
235 | CC="$(CC)" \ | |
d775b5ea | 236 | CXX="$(CXX)" \ |
0cfaf83f | 237 | $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \ |
dbb4cfef | 238 | ADA_INCLUDES="-I../generated -I../rts" \ |
28d711bf NR |
239 | GNATMAKE="$(GNATMAKE_FOR_HOST)" \ |
240 | GNATBIND="$(GNATBIND_FOR_HOST)" \ | |
241 | GNATLINK="$(GNATLINK_FOR_HOST)" \ | |
242 | LIBGNAT="" | |
243 | else | |
244 | # This is a canadian cross. We should use a toolchain running on the | |
245 | # build platform and targeting the host platform. | |
33e4edab EB |
246 | ifneq ($(findstring ada,$(LANGUAGES)),) |
247 | RTS_DIR:=$(strip $(subst \,/,$(shell $(GNATLS_FOR_HOST) -v | grep adalib ))) | |
248 | endif | |
28d711bf NR |
249 | ADA_TOOLS_FLAGS_TO_PASS=\ |
250 | CC="$(CC)" \ | |
d775b5ea | 251 | CXX="$(CXX)" \ |
0cfaf83f | 252 | $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \ |
dbb4cfef | 253 | ADA_INCLUDES="-I../generated -I$(RTS_DIR)/../adainclude -I$(RTS_DIR)" \ |
28d711bf NR |
254 | GNATMAKE="$(GNATMAKE_FOR_HOST)" \ |
255 | GNATBIND="$(GNATBIND_FOR_HOST)" \ | |
256 | GNATLINK="$(GNATLINK_FOR_HOST)" \ | |
257 | LIBGNAT="" | |
258 | endif | |
259 | endif | |
a1ab4c31 | 260 | |
83850880 IS |
261 | ifneq ($(filter darwin9% darwin8%,$(host_os)),) |
262 | # gnat1 uses exceptions which is incompatible with statically-linked libgcc | |
263 | #Â on Darwin8 and 9, since gnat1 also pulls in libraries linked with the system | |
264 | # unwinder. | |
265 | GCC_LINKERFLAGS = $(filter-out -Werror -static-libgcc, $(ALL_LINKERFLAGS)) | |
266 | GCC_LDFLAGS = $(filter-out -static-libgcc, $(LDFLAGS)) | |
267 | else | |
f95c6539 EB |
268 | # Strip -Werror during linking for the LTO bootstrap |
269 | GCC_LINKERFLAGS = $(filter-out -Werror, $(ALL_LINKERFLAGS)) | |
83850880 IS |
270 | GCC_LDFLAGS = $(LDFLAGS) |
271 | endif | |
f95c6539 | 272 | |
83850880 IS |
273 | GCC_LINK=$(LINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS) |
274 | GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS) | |
a1ab4c31 AC |
275 | |
276 | # Lists of files for various purposes. | |
277 | ||
278 | # Languages-specific object files for Ada. | |
9e9bd455 | 279 | |
abcf5174 | 280 | # Object files from C sources that are used by gnat1 |
a6eae6a9 | 281 | # adadecode.o should not be needed with sufficiently recent compilers |
abcf5174 AC |
282 | GNAT1_C_OBJS = \ |
283 | ada/cuintp.o \ | |
284 | ada/decl.o \ | |
285 | ada/misc.o \ | |
286 | ada/utils.o \ | |
287 | ada/utils2.o \ | |
288 | ada/trans.o \ | |
289 | ada/targtyps.o \ | |
a6eae6a9 | 290 | ada/version.o \ |
abcf5174 | 291 | ada/targext.o \ |
a6eae6a9 | 292 | ada/adadecode.o |
a1ab4c31 AC |
293 | |
294 | # Object files from Ada sources that are used by gnat1 | |
1dfddbb4 | 295 | GNAT_ADA_OBJS = \ |
06b599fd | 296 | ada/spark_xrefs.o \ |
1dfddbb4 AC |
297 | ada/ali.o \ |
298 | ada/alloc.o \ | |
2b3d67a5 | 299 | ada/aspects.o \ |
1dfddbb4 | 300 | ada/atree.o \ |
8967ee52 | 301 | ada/backend_utils.o \ |
1dfddbb4 AC |
302 | ada/butil.o \ |
303 | ada/casing.o \ | |
304 | ada/checks.o \ | |
305 | ada/comperr.o \ | |
879ac954 | 306 | ada/contracts.o \ |
1dfddbb4 AC |
307 | ada/csets.o \ |
308 | ada/cstand.o \ | |
309 | ada/debug.o \ | |
310 | ada/debug_a.o \ | |
76f9c7f4 BD |
311 | ada/einfo-entities.o \ |
312 | ada/einfo-utils.o \ | |
1dfddbb4 AC |
313 | ada/einfo.o \ |
314 | ada/elists.o \ | |
315 | ada/err_vars.o \ | |
316 | ada/errout.o \ | |
317 | ada/erroutc.o \ | |
318 | ada/eval_fat.o \ | |
319 | ada/exp_aggr.o \ | |
06b599fd | 320 | ada/exp_spark.o \ |
1dfddbb4 AC |
321 | ada/exp_atag.o \ |
322 | ada/exp_attr.o \ | |
9c41193c | 323 | ada/exp_cg.o \ |
1dfddbb4 AC |
324 | ada/exp_ch11.o \ |
325 | ada/exp_ch12.o \ | |
326 | ada/exp_ch13.o \ | |
327 | ada/exp_ch2.o \ | |
328 | ada/exp_ch3.o \ | |
329 | ada/exp_ch4.o \ | |
330 | ada/exp_ch5.o \ | |
331 | ada/exp_ch6.o \ | |
332 | ada/exp_ch7.o \ | |
333 | ada/exp_ch8.o \ | |
334 | ada/exp_ch9.o \ | |
335 | ada/exp_code.o \ | |
336 | ada/exp_dbug.o \ | |
337 | ada/exp_disp.o \ | |
338 | ada/exp_dist.o \ | |
339 | ada/exp_fixd.o \ | |
340 | ada/exp_imgv.o \ | |
341 | ada/exp_intr.o \ | |
342 | ada/exp_pakd.o \ | |
343 | ada/exp_prag.o \ | |
110d0820 | 344 | ada/exp_put_image.o \ |
1dfddbb4 AC |
345 | ada/exp_sel.o \ |
346 | ada/exp_smem.o \ | |
347 | ada/exp_strm.o \ | |
348 | ada/exp_tss.o \ | |
5a271a7f | 349 | ada/exp_unst.o \ |
1dfddbb4 | 350 | ada/exp_util.o \ |
1dfddbb4 AC |
351 | ada/expander.o \ |
352 | ada/fmap.o \ | |
353 | ada/fname-uf.o \ | |
354 | ada/fname.o \ | |
355 | ada/freeze.o \ | |
356 | ada/frontend.o \ | |
1dfddbb4 | 357 | ada/get_targ.o \ |
8636f52f | 358 | ada/ghost.o \ |
b0a16e6d | 359 | ada/gnat_cuda.o \ |
1dfddbb4 | 360 | ada/gnatvsn.o \ |
1dfddbb4 | 361 | ada/hostparm.o \ |
1dfddbb4 AC |
362 | ada/impunit.o \ |
363 | ada/inline.o \ | |
1dfddbb4 AC |
364 | ada/itypes.o \ |
365 | ada/krunch.o \ | |
366 | ada/layout.o \ | |
367 | ada/lib-load.o \ | |
368 | ada/lib-util.o \ | |
369 | ada/lib-writ.o \ | |
370 | ada/lib-xref.o \ | |
371 | ada/lib.o \ | |
372 | ada/live.o \ | |
373 | ada/namet-sp.o \ | |
374 | ada/namet.o \ | |
375 | ada/nlists.o \ | |
376 | ada/nmake.o \ | |
377 | ada/opt.o \ | |
378 | ada/osint-c.o \ | |
379 | ada/osint.o \ | |
380 | ada/output.o \ | |
381 | ada/par.o \ | |
382 | ada/par_sco.o \ | |
383 | ada/prep.o \ | |
384 | ada/prepcomp.o \ | |
385 | ada/put_scos.o \ | |
6c165711 | 386 | ada/repinfo-input.o \ |
1dfddbb4 AC |
387 | ada/repinfo.o \ |
388 | ada/restrict.o \ | |
389 | ada/rident.o \ | |
390 | ada/rtsfind.o \ | |
1dfddbb4 | 391 | ada/scans.o \ |
8219336f | 392 | ada/scil_ll.o \ |
1dfddbb4 AC |
393 | ada/scn.o \ |
394 | ada/scng.o \ | |
395 | ada/scos.o \ | |
396 | ada/sdefault.o \ | |
76f9c7f4 | 397 | ada/seinfo.o \ |
1dfddbb4 AC |
398 | ada/sem.o \ |
399 | ada/sem_aggr.o \ | |
400 | ada/sem_attr.o \ | |
401 | ada/sem_aux.o \ | |
402 | ada/sem_case.o \ | |
403 | ada/sem_cat.o \ | |
404 | ada/sem_ch10.o \ | |
405 | ada/sem_ch11.o \ | |
406 | ada/sem_ch12.o \ | |
407 | ada/sem_ch13.o \ | |
408 | ada/sem_ch2.o \ | |
f459afaa | 409 | ada/accessibility.o \ |
1dfddbb4 AC |
410 | ada/sem_ch3.o \ |
411 | ada/sem_ch4.o \ | |
412 | ada/sem_ch5.o \ | |
413 | ada/sem_ch6.o \ | |
414 | ada/sem_ch7.o \ | |
415 | ada/sem_ch8.o \ | |
416 | ada/sem_ch9.o \ | |
dec6faf1 | 417 | ada/sem_dim.o \ |
1dfddbb4 AC |
418 | ada/sem_disp.o \ |
419 | ada/sem_dist.o \ | |
420 | ada/sem_elab.o \ | |
421 | ada/sem_elim.o \ | |
422 | ada/sem_eval.o \ | |
423 | ada/sem_intr.o \ | |
424 | ada/sem_mech.o \ | |
425 | ada/sem_prag.o \ | |
426 | ada/sem_res.o \ | |
427 | ada/sem_scil.o \ | |
428 | ada/sem_smem.o \ | |
429 | ada/sem_type.o \ | |
430 | ada/sem_util.o \ | |
1dfddbb4 | 431 | ada/sem_warn.o \ |
289a994b | 432 | ada/set_targ.o \ |
1dfddbb4 | 433 | ada/sinfo-cn.o \ |
76f9c7f4 BD |
434 | ada/sinfo-nodes.o \ |
435 | ada/sinfo-utils.o \ | |
1dfddbb4 AC |
436 | ada/sinfo.o \ |
437 | ada/sinput-d.o \ | |
438 | ada/sinput-l.o \ | |
439 | ada/sinput.o \ | |
440 | ada/snames.o \ | |
441 | ada/sprint.o \ | |
442 | ada/stand.o \ | |
443 | ada/stringt.o \ | |
d235950e | 444 | ada/strub.o \ |
1dfddbb4 AC |
445 | ada/style.o \ |
446 | ada/styleg.o \ | |
447 | ada/stylesw.o \ | |
448 | ada/switch-c.o \ | |
449 | ada/switch.o \ | |
1dfddbb4 | 450 | ada/table.o \ |
1dfddbb4 AC |
451 | ada/targparm.o \ |
452 | ada/tbuild.o \ | |
1dfddbb4 | 453 | ada/treepr.o \ |
1dfddbb4 AC |
454 | ada/ttypes.o \ |
455 | ada/types.o \ | |
456 | ada/uintp.o \ | |
457 | ada/uname.o \ | |
458 | ada/urealp.o \ | |
459 | ada/usage.o \ | |
460 | ada/validsw.o \ | |
e60b6e23 | 461 | ada/vast.o \ |
0f1af881 | 462 | ada/warnsw.o \ |
abcf5174 AC |
463 | ada/widechar.o \ |
464 | ada/gnat.o \ | |
465 | ada/g-dynhta.o \ | |
466 | ada/g-graphs.o \ | |
467 | ada/g-lists.o \ | |
468 | ada/g-sets.o \ | |
abcf5174 AC |
469 | ada/s-pehage.o \ |
470 | ada/s-utf_32.o | |
471 | ||
472 | ifeq ($(STAGE1),False) | |
473 | GNAT1_C_OBJS+= \ | |
a6eae6a9 AC |
474 | ada/adaint.o \ |
475 | ada/argv.o \ | |
476 | ada/cio.o \ | |
477 | ada/cstreams.o \ | |
478 | ada/env.o \ | |
479 | ada/errno.o \ | |
abcf5174 AC |
480 | ada/init.o \ |
481 | ada/initialize.o \ | |
482 | ada/raise.o \ | |
483 | ada/raise-gcc.o \ | |
484 | ada/rtfinal.o \ | |
485 | ada/rtinit.o \ | |
486 | ada/seh_init.o | |
487 | ||
488 | GNAT_ADA_OBJS+= \ | |
489 | ada/gcc-interface/system.o \ | |
490 | ada/libgnat/a-assert.o \ | |
491 | ada/libgnat/a-charac.o \ | |
492 | ada/libgnat/a-chlat1.o \ | |
493 | ada/libgnat/a-elchha.o \ | |
494 | ada/libgnat/a-except.o \ | |
495 | ada/libgnat/a-exctra.o \ | |
496 | ada/libgnat/a-ioexce.o \ | |
b0fd3e31 YM |
497 | ada/libgnat/a-nubinu.o \ |
498 | ada/libgnat/a-numeri.o \ | |
abcf5174 AC |
499 | ada/libgnat/ada.o \ |
500 | ada/libgnat/g-byorma.o \ | |
501 | ada/libgnat/g-heasor.o \ | |
502 | ada/libgnat/g-htable.o \ | |
503 | ada/libgnat/g-spchge.o \ | |
504 | ada/libgnat/g-speche.o \ | |
505 | ada/libgnat/g-table.o \ | |
506 | ada/libgnat/g-u3spch.o \ | |
507 | ada/libgnat/interfac.o \ | |
508 | ada/libgnat/s-addope.o \ | |
509 | ada/libgnat/s-addima.o \ | |
510 | ada/libgnat/s-assert.o \ | |
511 | ada/libgnat/s-bitops.o \ | |
512 | ada/libgnat/s-carun8.o \ | |
a6eae6a9 AC |
513 | ada/libgnat/s-casuti.o \ |
514 | ada/libgnat/s-crtl.o \ | |
abcf5174 AC |
515 | ada/libgnat/s-conca2.o \ |
516 | ada/libgnat/s-conca3.o \ | |
517 | ada/libgnat/s-conca4.o \ | |
518 | ada/libgnat/s-conca5.o \ | |
519 | ada/libgnat/s-conca6.o \ | |
520 | ada/libgnat/s-conca7.o \ | |
521 | ada/libgnat/s-conca8.o \ | |
522 | ada/libgnat/s-conca9.o \ | |
523 | ada/libgnat/s-crc32.o \ | |
524 | ada/libgnat/s-excdeb.o \ | |
525 | ada/libgnat/s-except.o \ | |
526 | ada/libgnat/s-excmac.o \ | |
527 | ada/libgnat/s-exctab.o \ | |
528 | ada/libgnat/s-htable.o \ | |
abcf5174 AC |
529 | ada/libgnat/s-imgint.o \ |
530 | ada/libgnat/s-mastop.o \ | |
531 | ada/libgnat/s-memory.o \ | |
a6eae6a9 | 532 | ada/libgnat/s-os_lib.o \ |
abcf5174 AC |
533 | ada/libgnat/s-parame.o \ |
534 | ada/libgnat/s-purexc.o \ | |
535 | ada/libgnat/s-restri.o \ | |
536 | ada/libgnat/s-secsta.o \ | |
537 | ada/libgnat/s-soflin.o \ | |
538 | ada/libgnat/s-soliin.o \ | |
f959a78b CD |
539 | ada/libgnat/s-spark.o \ |
540 | ada/libgnat/s-spcuop.o \ | |
abcf5174 AC |
541 | ada/libgnat/s-stache.o \ |
542 | ada/libgnat/s-stalib.o \ | |
543 | ada/libgnat/s-stoele.o \ | |
544 | ada/libgnat/s-strcom.o \ | |
545 | ada/libgnat/s-strhas.o \ | |
546 | ada/libgnat/s-string.o \ | |
abcf5174 AC |
547 | ada/libgnat/s-traceb.o \ |
548 | ada/libgnat/s-traent.o \ | |
549 | ada/libgnat/s-trasym.o \ | |
550 | ada/libgnat/s-unstyp.o \ | |
551 | ada/libgnat/s-valint.o \ | |
552 | ada/libgnat/s-valuns.o \ | |
553 | ada/libgnat/s-valuti.o \ | |
554 | ada/libgnat/s-wchcnv.o \ | |
555 | ada/libgnat/s-wchcon.o \ | |
556 | ada/libgnat/s-wchjis.o \ | |
b0fd3e31 YM |
557 | ada/libgnat/s-wchstw.o \ |
558 | ada/libgnat/s-widuns.o | |
abcf5174 | 559 | endif |
a1ab4c31 AC |
560 | |
561 | # Object files for gnat executables | |
52fd02bb | 562 | GNAT1_ADA_OBJS = $(GNAT_ADA_OBJS) ada/back_end.o ada/gnat1drv.o |
a1ab4c31 | 563 | |
52fd02bb | 564 | GNAT1_OBJS = $(GNAT1_C_OBJS) $(GNAT1_ADA_OBJS) ada/b_gnat1.o |
a1ab4c31 AC |
565 | |
566 | GNATBIND_OBJS = \ | |
a1ab4c31 AC |
567 | ada/ali-util.o \ |
568 | ada/ali.o \ | |
569 | ada/alloc.o \ | |
0f1a6a0b | 570 | ada/aspects.o \ |
a1ab4c31 AC |
571 | ada/atree.o \ |
572 | ada/bcheck.o \ | |
573 | ada/binde.o \ | |
574 | ada/binderr.o \ | |
575 | ada/bindgen.o \ | |
69e6ee2f HK |
576 | ada/bindo.o \ |
577 | ada/bindo-augmentors.o \ | |
578 | ada/bindo-builders.o \ | |
579 | ada/bindo-diagnostics.o \ | |
580 | ada/bindo-elaborators.o \ | |
581 | ada/bindo-graphs.o \ | |
582 | ada/bindo-units.o \ | |
583 | ada/bindo-validators.o \ | |
584 | ada/bindo-writers.o \ | |
a1ab4c31 AC |
585 | ada/bindusg.o \ |
586 | ada/butil.o \ | |
587 | ada/casing.o \ | |
588 | ada/csets.o \ | |
589 | ada/debug.o \ | |
76f9c7f4 BD |
590 | ada/einfo-entities.o \ |
591 | ada/einfo-utils.o \ | |
a1ab4c31 AC |
592 | ada/einfo.o \ |
593 | ada/elists.o \ | |
594 | ada/err_vars.o \ | |
595 | ada/errout.o \ | |
596 | ada/erroutc.o \ | |
c6d2191a AC |
597 | ada/exit.o \ |
598 | ada/final.o \ | |
a1ab4c31 | 599 | ada/fmap.o \ |
9beddc4c | 600 | ada/fname-uf.o \ |
c6d2191a | 601 | ada/fname.o \ |
a1ab4c31 AC |
602 | ada/gnatbind.o \ |
603 | ada/gnatvsn.o \ | |
604 | ada/hostparm.o \ | |
9beddc4c | 605 | ada/krunch.o \ |
a1ab4c31 | 606 | ada/lib.o \ |
c6d2191a | 607 | ada/link.o \ |
a1ab4c31 AC |
608 | ada/namet.o \ |
609 | ada/nlists.o \ | |
610 | ada/opt.o \ | |
611 | ada/osint-b.o \ | |
612 | ada/osint.o \ | |
613 | ada/output.o \ | |
614 | ada/rident.o \ | |
abcf5174 AC |
615 | ada/scans.o \ |
616 | ada/scil_ll.o \ | |
617 | ada/scng.o \ | |
618 | ada/sdefault.o \ | |
619 | ada/seinfo.o \ | |
620 | ada/sem_aux.o \ | |
621 | ada/sinfo.o \ | |
622 | ada/sinfo-nodes.o \ | |
623 | ada/sinfo-utils.o \ | |
624 | ada/sinput-c.o \ | |
625 | ada/sinput.o \ | |
626 | ada/snames.o \ | |
627 | ada/stand.o \ | |
628 | ada/stringt.o \ | |
629 | ada/style.o \ | |
630 | ada/styleg.o \ | |
631 | ada/stylesw.o \ | |
632 | ada/switch-b.o \ | |
633 | ada/switch.o \ | |
634 | ada/table.o \ | |
a6eae6a9 | 635 | ada/targext.o \ |
abcf5174 AC |
636 | ada/targparm.o \ |
637 | ada/types.o \ | |
638 | ada/uintp.o \ | |
639 | ada/uname.o \ | |
640 | ada/urealp.o \ | |
7a08b939 | 641 | ada/warnsw.o \ |
abcf5174 AC |
642 | ada/widechar.o \ |
643 | ada/gnat.o \ | |
644 | ada/g-dynhta.o \ | |
645 | ada/g-lists.o \ | |
646 | ada/g-graphs.o \ | |
647 | ada/g-sets.o \ | |
abcf5174 | 648 | ada/s-resfil.o \ |
a6eae6a9 AC |
649 | ada/version.o \ |
650 | ada/s-utf_32.o | |
abcf5174 AC |
651 | |
652 | ifeq ($(STAGE1),False) | |
653 | GNATBIND_OBJS += \ | |
654 | ada/init.o \ | |
655 | ada/initialize.o \ | |
656 | ada/raise.o \ | |
657 | ada/raise-gcc.o \ | |
07e188be PO |
658 | ada/rtfinal.o \ |
659 | ada/rtinit.o \ | |
abcf5174 AC |
660 | ada/seh_init.o \ |
661 | ada/gcc-interface/system.o \ | |
662 | ada/libgnat/a-assert.o \ | |
663 | ada/libgnat/a-elchha.o \ | |
664 | ada/libgnat/a-except.o \ | |
b0fd3e31 YM |
665 | ada/libgnat/a-nubinu.o \ |
666 | ada/libgnat/a-numeri.o \ | |
abcf5174 AC |
667 | ada/libgnat/ada.o \ |
668 | ada/libgnat/g-byorma.o \ | |
669 | ada/libgnat/g-hesora.o \ | |
670 | ada/libgnat/g-htable.o \ | |
671 | ada/libgnat/interfac.o \ | |
edcc77db NR |
672 | ada/libgnat/s-addope.o \ |
673 | ada/libgnat/s-assert.o \ | |
674 | ada/libgnat/s-carun8.o \ | |
a6eae6a9 | 675 | ada/libgnat/s-casuti.o \ |
edcc77db NR |
676 | ada/libgnat/s-conca2.o \ |
677 | ada/libgnat/s-conca3.o \ | |
678 | ada/libgnat/s-conca4.o \ | |
679 | ada/libgnat/s-conca5.o \ | |
680 | ada/libgnat/s-conca6.o \ | |
681 | ada/libgnat/s-conca7.o \ | |
682 | ada/libgnat/s-conca8.o \ | |
683 | ada/libgnat/s-conca9.o \ | |
684 | ada/libgnat/s-crc32.o \ | |
edcc77db NR |
685 | ada/libgnat/s-excdeb.o \ |
686 | ada/libgnat/s-except.o \ | |
687 | ada/libgnat/s-excmac.o \ | |
688 | ada/libgnat/s-exctab.o \ | |
689 | ada/libgnat/s-htable.o \ | |
edcc77db NR |
690 | ada/libgnat/s-imgint.o \ |
691 | ada/libgnat/s-mastop.o \ | |
692 | ada/libgnat/s-memory.o \ | |
a6eae6a9 | 693 | ada/libgnat/s-os_lib.o \ |
edcc77db | 694 | ada/libgnat/s-parame.o \ |
edcc77db NR |
695 | ada/libgnat/s-restri.o \ |
696 | ada/libgnat/s-secsta.o \ | |
697 | ada/libgnat/s-soflin.o \ | |
bad0a3df | 698 | ada/libgnat/s-soliin.o \ |
edcc77db NR |
699 | ada/libgnat/s-stache.o \ |
700 | ada/libgnat/s-stalib.o \ | |
701 | ada/libgnat/s-stoele.o \ | |
702 | ada/libgnat/s-strhas.o \ | |
703 | ada/libgnat/s-string.o \ | |
edcc77db NR |
704 | ada/libgnat/s-traent.o \ |
705 | ada/libgnat/s-traceb.o \ | |
706 | ada/libgnat/s-unstyp.o \ | |
edcc77db NR |
707 | ada/libgnat/s-wchcnv.o \ |
708 | ada/libgnat/s-wchcon.o \ | |
709 | ada/libgnat/s-wchjis.o \ | |
a6eae6a9 | 710 | ada/libgnat/s-wchstw.o \ |
b0fd3e31 | 711 | ada/libgnat/s-widuns.o \ |
a6eae6a9 AC |
712 | ada/adaint.o \ |
713 | ada/argv.o \ | |
714 | ada/cio.o \ | |
715 | ada/cstreams.o \ | |
716 | ada/env.o \ | |
717 | ada/errno.o | |
abcf5174 | 718 | endif |
a1ab4c31 AC |
719 | |
720 | # Language-independent object files. | |
721 | ADA_BACKEND = $(BACKEND) attribs.o | |
722 | ||
723 | # List of target dependent sources, overridden below as necessary | |
724 | TARGET_ADA_SRCS = | |
725 | ||
6cbfce7e AC |
726 | # Select the right s-excmac according to exception layout (Itanium or arm) |
727 | host_cpu=$(word 1, $(subst -, ,$(host))) | |
a96eb6f2 | 728 | EH_MECHANISM=gcc |
6cbfce7e | 729 | ifeq ($(strip $(filter-out arm%,$(host_cpu))),) |
a96eb6f2 | 730 | EH_MECHANISM=arm |
6cbfce7e AC |
731 | endif |
732 | ||
a96eb6f2 TG |
733 | # For unwind-pe.h |
734 | CFLAGS-ada/raise-gcc.o += -I$(srcdir)/../libgcc -DEH_MECHANISM_$(EH_MECHANISM) | |
735 | ||
f8a1e069 IS |
736 | # Under aarch64 darwin, we need to include the iOS signal trampoline. |
737 | ||
738 | ifeq ($(strip $(filter-out aarch64 arm64 darwin%,$(host_cpu) $(host_os))),) | |
739 | EXTRA_HOST_OBJS=ada/sigtramp-ios.o | |
740 | else | |
741 | EXTRA_HOST_OBJS = | |
742 | endif | |
743 | ||
edcc77db | 744 | ada/libgnat/s-excmac.o: ada/libgnat/s-excmac.ads ada/libgnat/s-excmac.adb |
6cbfce7e | 745 | |
a0713cb6 | 746 | ada/libgnat/s-excmac.ads: $(srcdir)/ada/libgnat/s-excmac__$(EH_MECHANISM).ads |
edcc77db | 747 | mkdir -p ada/libgnat |
6cbfce7e AC |
748 | $(CP) $< $@ |
749 | ||
a0713cb6 | 750 | ada/libgnat/s-excmac.adb: $(srcdir)/ada/libgnat/s-excmac__$(EH_MECHANISM).adb |
edcc77db | 751 | mkdir -p ada/libgnat |
6cbfce7e AC |
752 | $(CP) $< $@ |
753 | ||
a1ab4c31 AC |
754 | # Needs to be built with CC=gcc |
755 | # Since the RTL should be built with the latest compiler, remove the | |
756 | # stamp target in the parent directory whenever gnat1 is rebuilt | |
f8a1e069 IS |
757 | gnat1$(exeext): $(TARGET_ADA_SRCS) $(GNAT1_OBJS) $(ADA_BACKEND) $(EXTRA_HOST_OBJS) libcommon-target.a \ |
758 | $(EXTRA_HOST_OBJS) $(LIBDEPS) $(ada.prev) | |
d326ebc9 | 759 | @$(call LINK_PROGRESS,$(INDEX.ada),start) |
f8a1e069 | 760 | +$(GCC_LLINK) -o $@ $(GNAT1_OBJS) $(ADA_BACKEND) $(EXTRA_HOST_OBJS) $(CFLAGS) \ |
abcf5174 | 761 | libcommon-target.a $(LIBS) $(SYSLIBS) $(BACKENDLIBS) $(GNATLIB) |
a7dafa20 | 762 | $(RM) stamp-gnatlib2-rts stamp-tools |
d326ebc9 | 763 | @$(call LINK_PROGRESS,$(INDEX.ada),end) |
a1ab4c31 | 764 | |
f8a1e069 IS |
765 | gnatbind$(exeext): ada/b_gnatb.o $(CONFIG_H) $(GNATBIND_OBJS) $(EXTRA_HOST_OBJS) ggc-none.o libcommon-target.a $(LIBDEPS) |
766 | +$(GCC_LINK) -o $@ $(CFLAGS) ada/b_gnatb.o $(GNATBIND_OBJS) $(EXTRA_HOST_OBJS) ggc-none.o libcommon-target.a $(LIBS) $(SYSLIBS) $(GNATLIB) | |
a1ab4c31 | 767 | |
e972fd52 AC |
768 | # use target-gcc target-gnatmake target-gnatbind target-gnatlink |
769 | gnattools: $(GCC_PARTS) $(CONFIG_H) prefix.o force | |
0cfaf83f | 770 | $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1 |
e972fd52 AC |
771 | $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2 |
772 | ||
773 | regnattools: | |
774 | $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1-re | |
775 | $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2 | |
776 | ||
777 | cross-gnattools: force | |
778 | $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1-re | |
779 | $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2 | |
e972fd52 AC |
780 | |
781 | canadian-gnattools: force | |
782 | $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1-re | |
783 | $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2 | |
784 | ||
4c166488 | 785 | gnatlib gnatlib-sjlj gnatlib-zcx gnatlib-shared: force |
0cfaf83f | 786 | $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) \ |
e972fd52 AC |
787 | GNATLIBFLAGS="$(GNATLIBFLAGS)" \ |
788 | GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \ | |
789 | TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" \ | |
790 | THREAD_KIND="$(THREAD_KIND)" \ | |
07c6ed01 | 791 | LN_S="$(LN_S)" \ |
e972fd52 AC |
792 | FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \ |
793 | $@ | |
794 | ||
795 | # use only for native compiler | |
796 | gnatlib_and_tools: gnatlib gnattools | |
797 | ||
a1ab4c31 AC |
798 | # Build hooks: |
799 | ||
800 | ada.all.cross: | |
e5297224 JR |
801 | for tool in $(ADA_TOOLS) ; do \ |
802 | if [ -f $$tool$(exeext) ] ; \ | |
803 | then \ | |
804 | $(MV) $$tool$(exeext) $$tool-cross$(exeext); \ | |
805 | fi; \ | |
806 | done | |
a1ab4c31 AC |
807 | |
808 | ada.start.encap: | |
809 | ada.rest.encap: | |
810 | ada.man: | |
811 | ada.srcextra: | |
812 | ada.srcman: | |
813 | ||
814 | ada.tags: force | |
cd9912b5 | 815 | cd $(srcdir)/ada && $(ETAGS) -o TAGS.sub *.cc *.h *.ads *.adb && \ |
909b30a1 | 816 | $(ETAGS) --include TAGS.sub --include ../TAGS.sub |
a1ab4c31 AC |
817 | |
818 | ||
819 | # Generate documentation. | |
820 | ||
64d5610f ML |
821 | doc/gnat_ugn.info: ada/gnat_ugn.texi \ |
822 | $(gcc_docdir)/include/fdl.texi $(gcc_docdir)/include/gcc-common.texi \ | |
823 | gcc-vers.texi | |
824 | if [ x$(BUILD_INFO) = xinfo ]; then \ | |
825 | rm -f $(@)*; \ | |
826 | $(MAKEINFO) $(MAKEINFOFLAGS) -I$(gcc_docdir)/include \ | |
827 | -I$(srcdir)/ada -o $@ $<; \ | |
a1ab4c31 AC |
828 | else true; fi |
829 | ||
64d5610f ML |
830 | doc/gnat_rm.info: ada/gnat_rm.texi $(gcc_docdir)/include/fdl.texi \ |
831 | $(gcc_docdir)/include/gcc-common.texi gcc-vers.texi | |
832 | if [ x$(BUILD_INFO) = xinfo ]; then \ | |
833 | rm -f $(@)*; \ | |
834 | $(MAKEINFO) $(MAKEINFOFLAGS) -I$(gcc_docdir)/include \ | |
835 | -I$(srcdir)/ada -o $@ $<; \ | |
a1ab4c31 AC |
836 | else true; fi |
837 | ||
64d5610f ML |
838 | doc/gnat-style.info: ada/gnat-style.texi $(gcc_docdir)/include/fdl.texi \ |
839 | $(gcc_docdir)/include/gcc-common.texi gcc-vers.texi | |
840 | if [ x$(BUILD_INFO) = xinfo ]; then \ | |
841 | rm -f $(@)*; \ | |
842 | $(MAKEINFO) $(MAKEINFOFLAGS) -I$(gcc_docdir)/include \ | |
843 | -I$(srcdir)/ada -o $@ $<; \ | |
a1ab4c31 AC |
844 | else true; fi |
845 | ||
64d5610f | 846 | ADA_INFOFILES = doc/gnat_ugn.info doc/gnat_rm.info doc/gnat-style.info |
a1ab4c31 AC |
847 | |
848 | ada.info: $(ADA_INFOFILES) | |
849 | ||
850 | ada.srcinfo: $(ADA_INFOFILES) | |
851 | -$(CP) $^ $(srcdir)/doc | |
852 | ||
853 | ada.install-info: $(DESTDIR)$(infodir)/gnat_ugn.info \ | |
854 | $(DESTDIR)$(infodir)/gnat_rm.info \ | |
855 | $(DESTDIR)$(infodir)/gnat-style.info | |
856 | ||
64d5610f ML |
857 | ADA_DVIFILES = doc/gnat_ugn.dvi \ |
858 | doc/gnat_rm.dvi doc/gnat-style.dvi | |
c3e80a16 | 859 | |
64d5610f | 860 | ada.dvi: $(ADA_DVIFILES) |
c3e80a16 | 861 | |
64d5610f ML |
862 | ada.install-dvi: $(ADA_DVIFILES) |
863 | @$(NORMAL_INSTALL) | |
864 | test -z "$(dvidir)/gcc" || $(mkinstalldirs) "$(DESTDIR)$(dvidir)/gcc" | |
865 | @list='$(ADA_DVIFILES)'; for p in $$list; do \ | |
866 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ | |
867 | f=$(dvi__strip_dir) \ | |
868 | echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/gcc/$$f'"; \ | |
869 | $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/gcc/$$f"; \ | |
870 | done | |
a1ab4c31 | 871 | |
64d5610f ML |
872 | ADA_PDFFILES = doc/gnat_ugn.pdf \ |
873 | doc/gnat_rm.pdf doc/gnat-style.pdf | |
a1ab4c31 AC |
874 | |
875 | ada.pdf: $(ADA_PDFFILES) | |
876 | ||
877 | ada.install-pdf: $(ADA_PDFFILES) | |
878 | @$(NORMAL_INSTALL) | |
879 | test -z "$(pdfdir)/gcc" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)/gcc" | |
880 | @list='$(ADA_PDFFILES)'; for p in $$list; do \ | |
881 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ | |
882 | f=$(pdf__strip_dir) \ | |
883 | echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/gcc/$$f'"; \ | |
884 | $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/gcc/$$f"; \ | |
885 | done | |
886 | ||
64d5610f | 887 | ada.html: |
a1ab4c31 | 888 | |
64d5610f | 889 | ada.install-html: |
a1ab4c31 | 890 | |
64d5610f ML |
891 | doc/gnat_ugn.dvi: ada/gnat_ugn.texi \ |
892 | $(gcc_docdir)/include/fdl.texi \ | |
893 | $(gcc_docdir)/include/gcc-common.texi gcc-vers.texi | |
894 | $(TEXI2DVI) -c -I $(abs_docdir)/include -o $@ $< | |
a1ab4c31 | 895 | |
64d5610f ML |
896 | doc/gnat_rm.dvi: ada/gnat_rm.texi $(gcc_docdir)/include/fdl.texi \ |
897 | $(gcc_docdir)/include/gcc-common.texi gcc-vers.texi | |
898 | $(TEXI2DVI) -c -I $(abs_docdir)/include -o $@ $< | |
a1ab4c31 | 899 | |
64d5610f ML |
900 | doc/gnat-style.dvi: ada/gnat-style.texi $(gcc_docdir)/include/fdl.texi |
901 | $(TEXI2DVI) -c -I $(abs_docdir)/include -o $@ $< | |
902 | ||
903 | doc/gnat_ugn.pdf: ada/gnat_ugn.texi \ | |
904 | $(gcc_docdir)/include/fdl.texi \ | |
905 | $(gcc_docdir)/include/gcc-common.texi gcc-vers.texi | |
906 | $(TEXI2PDF) -c -I $(abs_docdir)/include -o $@ $< | |
907 | ||
908 | doc/gnat_rm.pdf: ada/gnat_rm.texi $(gcc_docdir)/include/fdl.texi \ | |
909 | $(gcc_docdir)/include/gcc-common.texi gcc-vers.texi | |
910 | $(TEXI2PDF) -c -I $(abs_docdir)/include -o $@ $< | |
911 | ||
912 | doc/gnat-style.pdf: ada/gnat-style.texi $(gcc_docdir)/include/fdl.texi | |
913 | $(TEXI2PDF) -c -I $(abs_docdir)/include -o $@ $< | |
a1ab4c31 | 914 | |
a1ab4c31 AC |
915 | # Install hooks: |
916 | # gnat1 is installed elsewhere as part of $(COMPILERS). | |
917 | ||
e5297224 JR |
918 | # Install the binder program as gnatbind (native) or $(prefix)gnatbind |
919 | # (cross). $(prefix) comes from the --program-prefix configure option, | |
920 | # or from the --target option if the former is not specified. | |
921 | # Do the same for the rest of the Ada tools (gnatchop, gnat, gnatkr, | |
5b0e0158 | 922 | # gnatlink, gnatls, gnatmake, gnatname, gnatprep, gnatclean). |
e5297224 | 923 | # gnatdll is only used on Windows. |
8951374d MR |
924 | ada.install-common: $(gnat_install_lib) gnat-install-tools |
925 | ||
926 | gnat-install-tools: | |
a1ab4c31 | 927 | $(MKDIR) $(DESTDIR)$(bindir) |
a1ab4c31 AC |
928 | -if [ -f gnat1$(exeext) ] ; \ |
929 | then \ | |
e5297224 | 930 | for tool in $(ADA_TOOLS) ; do \ |
5b638c3a RB |
931 | install_name=`echo $$tool|sed '$(program_transform_name)'`$(exeext); \ |
932 | $(RM) $(DESTDIR)$(bindir)/$$install_name; \ | |
e5297224 JR |
933 | if [ -f $$tool-cross$(exeext) ] ; \ |
934 | then \ | |
e5297224 JR |
935 | $(INSTALL_PROGRAM) $$tool-cross$(exeext) $(DESTDIR)$(bindir)/$$install_name; \ |
936 | else \ | |
5b638c3a | 937 | $(INSTALL_PROGRAM) $$tool$(exeext) $(DESTDIR)$(bindir)/$$install_name; \ |
a1ab4c31 | 938 | fi ; \ |
e5297224 JR |
939 | done; \ |
940 | $(RM) $(DESTDIR)$(bindir)/gnatdll$(exeext); \ | |
941 | $(INSTALL_PROGRAM) gnatdll$(exeext) $(DESTDIR)$(bindir)/gnatdll$(exeext); \ | |
a1ab4c31 AC |
942 | fi |
943 | ||
944 | # | |
945 | # Finally, install the library | |
946 | # | |
8951374d | 947 | gnat-install-lib: | gnat-install-tools |
a1ab4c31 AC |
948 | -if [ -f gnat1$(exeext) ] ; \ |
949 | then \ | |
0cfaf83f | 950 | $(MAKE) $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib; \ |
a1ab4c31 AC |
951 | fi |
952 | ||
953 | install-gnatlib: | |
0cfaf83f | 954 | $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib$(LIBGNAT_TARGET) |
a1ab4c31 AC |
955 | |
956 | install-gnatlib-obj: | |
0cfaf83f | 957 | $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib-obj |
a1ab4c31 AC |
958 | |
959 | ada.install-man: | |
2a4c0366 | 960 | ada.install-plugin: |
a1ab4c31 AC |
961 | |
962 | ada.uninstall: | |
e5297224 JR |
963 | for tool in $(ADA_TOOLS) ; do \ |
964 | install_name=`echo $$tool|sed '$(program_transform_name)'`$(exeext); \ | |
965 | -$(RM) $(DESTDIR)$(bindir)/$$install_name; \ | |
966 | done | |
a1ab4c31 | 967 | -$(RM) $(DESTDIR)$(tooldir)/bin/gnatdll$(exeext) |
a1ab4c31 AC |
968 | |
969 | # Clean hooks: | |
970 | # A lot of the ancillary files are deleted by the main makefile. | |
971 | # We just have to delete files specific to us. | |
972 | ||
973 | ada.mostlyclean: | |
8ad150f6 | 974 | -$(RM) ada/*$(objext) ada/*.ali ada/b_gnat*.ads ada/b_gnat*.adb |
7dbe3736 | 975 | -$(RM) ada/*$(objext).gnatd.n |
a1ab4c31 | 976 | -$(RM) ada/*$(coverageexts) |
76f9c7f4 | 977 | -$(RM) ada/stamp-sdefault ada/stamp-snames ada/stamp-gen_il |
a1ab4c31 | 978 | -$(RMDIR) ada/tools |
7dbe3736 | 979 | -$(RMDIR) ada/libgnat |
46bf0b0a | 980 | -$(RM) gnatbind$(exeext) gnat1$(exeext) |
a1ab4c31 AC |
981 | ada.clean: |
982 | ada.distclean: | |
983 | -$(RM) ada/Makefile | |
984 | -$(RM) gnatchop$(exeext) | |
985 | -$(RM) gnat$(exeext) | |
986 | -$(RM) gnatdll$(exeext) | |
987 | -$(RM) gnatkr$(exeext) | |
988 | -$(RM) gnatlink$(exeext) | |
989 | -$(RM) gnatls$(exeext) | |
990 | -$(RM) gnatmake$(exeext) | |
991 | -$(RM) gnatname$(exeext) | |
992 | -$(RM) gnatprep$(exeext) | |
a1ab4c31 | 993 | -$(RM) gnatclean$(exeext) |
a1ab4c31 AC |
994 | -$(RM) ada/rts/* |
995 | -$(RMDIR) ada/rts | |
996 | -$(RM) ada/tools/* | |
997 | -$(RMDIR) ada/tools | |
998 | ada.maintainer-clean: | |
999 | -$(RM) ada/sinfo.h | |
1000 | -$(RM) ada/einfo.h | |
1001 | -$(RM) ada/nmake.adb | |
1002 | -$(RM) ada/nmake.ads | |
b62a90f2 | 1003 | -$(RM) ada/snames.ads ada/snames.adb ada/snames.h |
f8fb01fb | 1004 | |
a1ab4c31 AC |
1005 | # Stage hooks: |
1006 | # The main makefile has already created stage?/ada | |
1007 | ||
1008 | ada.stage1: stage1-start | |
8ad150f6 | 1009 | -$(MV) ada/*$(objext) ada/*.ali ada/b_gnat*.ad* stage1/ada |
a1ab4c31 AC |
1010 | -$(MV) ada/stamp-* stage1/ada |
1011 | ada.stage2: stage2-start | |
8ad150f6 | 1012 | -$(MV) ada/*$(objext) ada/*.ali ada/b_gnat*.ad* stage2/ada |
a1ab4c31 AC |
1013 | -$(MV) ada/stamp-* stage2/ada |
1014 | ada.stage3: stage3-start | |
8ad150f6 | 1015 | -$(MV) ada/*$(objext) ada/*.ali ada/b_gnat*.ad* stage3/ada |
a1ab4c31 AC |
1016 | -$(MV) ada/stamp-* stage3/ada |
1017 | ada.stage4: stage4-start | |
8ad150f6 | 1018 | -$(MV) ada/*$(objext) ada/*.ali ada/b_gnat*.ad* stage4/ada |
a1ab4c31 AC |
1019 | -$(MV) ada/stamp-* stage4/ada |
1020 | ada.stageprofile: stageprofile-start | |
8ad150f6 | 1021 | -$(MV) ada/*$(objext) ada/*.ali ada/b_gnat*.ad* stageprofile/ada |
a1ab4c31 AC |
1022 | -$(MV) ada/stamp-* stageprofile/ada |
1023 | ada.stagefeedback: stagefeedback-start | |
8ad150f6 | 1024 | -$(MV) ada/*$(objext) ada/*.ali ada/b_gnat*.ad* stagefeedback/ada |
a1ab4c31 AC |
1025 | -$(MV) ada/stamp-* stagefeedback/ada |
1026 | ||
1027 | lang_checks += check-gnat | |
6a5792b6 RO |
1028 | lang_checks_parallelized += check-gnat |
1029 | # For description see the check_$lang_parallelize comment in gcc/Makefile.in. | |
1030 | check_gnat_parallelize = 1000 | |
a1ab4c31 AC |
1031 | |
1032 | check-ada: check-acats check-gnat | |
7134e605 | 1033 | check-ada-subtargets: check-acats-subtargets check-gnat-subtargets |
a1ab4c31 | 1034 | |
033eb567 DM |
1035 | # No ada-specific selftests |
1036 | selftest-ada: | |
1037 | ||
a1ab4c31 | 1038 | ACATSDIR = $(TESTSUITEDIR)/ada/acats |
f73036c1 | 1039 | ACATSCMD = run_acats.sh |
a1ab4c31 | 1040 | |
717c4789 JJ |
1041 | check_acats_numbers0:=1 2 3 4 5 6 7 8 9 |
1042 | check_acats_numbers1:=0 $(check_acats_numbers0) | |
1043 | check_acats_numbers2:=$(foreach i,$(check_acats_numbers0),$(addprefix $(i),$(check_acats_numbers1))) | |
1044 | check_acats_numbers3:=$(addprefix 0,$(check_acats_numbers1)) $(check_acats_numbers2) | |
1045 | check_acats_numbers4:=$(foreach i,$(check_acats_numbers0),$(addprefix $(i),$(check_acats_numbers3))) | |
1046 | check_acats_numbers5:=$(addprefix 0,$(check_acats_numbers3)) $(check_acats_numbers4) | |
1047 | check_acats_numbers6:=$(foreach i,$(check_acats_numbers0),$(addprefix $(i),$(check_acats_numbers5))) | |
1048 | check_acats_numbers:=$(check_acats_numbers0) $(check_acats_numbers2) $(check_acats_numbers4) $(check_acats_numbers6) | |
1049 | check_acats_subdirs=$(wordlist 1, \ | |
1050 | $(if $(GCC_TEST_PARALLEL_SLOTS),$(GCC_TEST_PARALLEL_SLOTS),128), \ | |
1051 | $(check_acats_numbers)) | |
1052 | check_acats_targets = $(addprefix check-acats, $(check_acats_subdirs)) | |
7134e605 | 1053 | |
a1ab4c31 | 1054 | check-acats: |
7134e605 | 1055 | @test -d $(ACATSDIR) || mkdir -p $(ACATSDIR); \ |
1382ae05 RO |
1056 | rootme=`${PWD_COMMAND}`; export rootme; \ |
1057 | EXPECT=$(EXPECT); export EXPECT; \ | |
b2b0acbe | 1058 | if [ -z "$(CHAPTERS)" ] && [ -n "$(filter -j%, $(MFLAGS))" ]; \ |
7134e605 | 1059 | then \ |
717c4789 JJ |
1060 | rm -rf $(ACATSDIR)-parallel; \ |
1061 | mkdir $(ACATSDIR)-parallel; \ | |
1062 | ( testdir=`cd ${srcdir}/${ACATSDIR} && ${PWD_COMMAND}`; \ | |
1063 | export testdir; \ | |
f73036c1 | 1064 | cd $(ACATSDIR) && $(SHELL) $${testdir}/$(ACATSCMD) NONE ) \ |
717c4789 JJ |
1065 | || exit 1; \ |
1066 | GCC_RUNTEST_PARALLELIZE_DIR=$$rootme/$(ACATSDIR)-parallel; \ | |
1067 | export GCC_RUNTEST_PARALLELIZE_DIR; \ | |
7134e605 | 1068 | $(MAKE) $(check_acats_targets); \ |
717c4789 JJ |
1069 | rm -rf $(ACATSDIR)-parallel; \ |
1070 | acats_sums= ; acats_logs= ; \ | |
1071 | for idx in "" $(check_acats_subdirs); do \ | |
1072 | [ -d $(ACATSDIR)$$idx ] || continue; \ | |
7134e605 JJ |
1073 | mv -f $(ACATSDIR)$$idx/acats.sum $(ACATSDIR)$$idx/acats.sum.sep; \ |
1074 | mv -f $(ACATSDIR)$$idx/acats.log $(ACATSDIR)$$idx/acats.log.sep; \ | |
717c4789 JJ |
1075 | acats_sums="$$acats_sums $(ACATSDIR)$$idx/acats.sum.sep"; \ |
1076 | acats_logs="$$acats_logs $(ACATSDIR)$$idx/acats.log.sep"; \ | |
7134e605 JJ |
1077 | done; \ |
1078 | $(SHELL) $(srcdir)/../contrib/dg-extract-results.sh \ | |
717c4789 | 1079 | $$acats_sums > $(ACATSDIR)/acats.sum; \ |
7134e605 | 1080 | $(SHELL) $(srcdir)/../contrib/dg-extract-results.sh -L \ |
717c4789 | 1081 | $$acats_logs > $(ACATSDIR)/acats.log; \ |
7134e605 JJ |
1082 | exit 0; \ |
1083 | fi; \ | |
a1ab4c31 | 1084 | testdir=`cd ${srcdir}/${ACATSDIR} && ${PWD_COMMAND}`; \ |
f73036c1 | 1085 | export testdir; cd $(ACATSDIR) && $(SHELL) $${testdir}/$(ACATSCMD) $(CHAPTERS) |
a1ab4c31 | 1086 | |
7134e605 | 1087 | check-acats-subtargets: |
717c4789 | 1088 | @echo check-acats |
7134e605 JJ |
1089 | |
1090 | # Parallelized check-acats | |
1091 | $(check_acats_targets): check-acats%: | |
717c4789 JJ |
1092 | if [ -f $$GCC_RUNTEST_PARALLELIZE_DIR/finished ]; then \ |
1093 | rm -rf $(ACATSDIR)$*; exit 0; \ | |
1094 | fi; \ | |
7134e605 JJ |
1095 | test -d $(ACATSDIR)$* || mkdir -p $(ACATSDIR)$*; \ |
1096 | testdir=`cd ${srcdir}/${ACATSDIR} && ${PWD_COMMAND}`; \ | |
f73036c1 | 1097 | export testdir; cd $(ACATSDIR)$* && $(SHELL) $${testdir}/$(ACATSCMD) |
717c4789 | 1098 | touch $$GCC_RUNTEST_PARALLELIZE_DIR/finished |
7134e605 JJ |
1099 | |
1100 | .PHONY: check-acats $(check_acats_targets) | |
f8fb01fb | 1101 | |
a1ab4c31 AC |
1102 | # Compiling object files from source files. |
1103 | ||
a1ab4c31 AC |
1104 | # Ada language specific files. |
1105 | ||
8ad150f6 TG |
1106 | ada/b_gnat1.adb : $(GNAT1_ADA_OBJS) |
1107 | # Old gnatbind do not allow a path for -o. | |
abcf5174 | 1108 | $(GNATBIND) $(GNATBIND_FLAGS) $(ADA_INCLUDES) -o b_gnat1.adb -n ada/gnat1drv.ali |
8ad150f6 TG |
1109 | $(MV) b_gnat1.adb b_gnat1.ads ada/ |
1110 | ||
1111 | ada/b_gnat1.o : ada/b_gnat1.adb | |
1112 | # Do not use ADAFLAGS to get rid of -gnatg which generates a lot | |
1113 | # of style messages. | |
1114 | $(CC) -c $(CFLAGS) $(ADA_CFLAGS) -gnatp -gnatws $(ADA_INCLUDES) \ | |
edcc77db | 1115 | $< $(ADA_OUTPUT_OPTION) |
8ad150f6 | 1116 | |
abcf5174 | 1117 | ada/b_gnatb.adb : $(GNATBIND_OBJS) ada/gnatbind.o |
8ad150f6 | 1118 | # Old gnatbind do not allow a path for -o. |
abcf5174 | 1119 | $(GNATBIND) $(GNATBIND_FLAGS) $(ADA_INCLUDES) -o b_gnatb.adb ada/gnatbind.ali |
8ad150f6 TG |
1120 | $(MV) b_gnatb.adb b_gnatb.ads ada/ |
1121 | ||
1122 | ada/b_gnatb.o : ada/b_gnatb.adb | |
1123 | $(CC) -c $(CFLAGS) $(ADA_CFLAGS) -gnatp -gnatws $(ADA_INCLUDES) \ | |
edcc77db | 1124 | $< $(ADA_OUTPUT_OPTION) |
a1ab4c31 | 1125 | |
1be9633f | 1126 | include $(srcdir)/ada/Make-generated.in |
2d4d7e29 | 1127 | |
edcc77db NR |
1128 | ada/sdefault.o : ada/libgnat/ada.ads ada/libgnat/a-except.ads ada/libgnat/a-unccon.ads \ |
1129 | ada/libgnat/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/hostparm.ads ada/namet.ads \ | |
a1ab4c31 | 1130 | ada/opt.ads ada/osint.ads ada/output.ads ada/sdefault.ads ada/sdefault.adb \ |
edcc77db | 1131 | ada/libgnat/s-exctab.ads ada/libgnat/s-memory.ads ada/libgnat/s-os_lib.ads ada/libgnat/s-parame.ads \ |
76cc0773 | 1132 | ada/libgnat/s-stalib.ads ada/libgnat/s-string.ads ada/libgnat/s-traent.ads ada/libgnat/s-unstyp.ads \ |
a9005194 AC |
1133 | ada/libgnat/s-wchcon.ads ada/table.adb ada/table.ads \ |
1134 | ada/types.ads ada/libgnat/unchdeal.ads ada/libgnat/unchconv.ads \ | |
1135 | ada/gcc-interface/system.ads | |
a1ab4c31 | 1136 | |
8219336f | 1137 | # Special flags - see gcc-interface/Makefile.in for the template. |
e1876cac | 1138 | |
edcc77db | 1139 | ada/libgnat/a-except.o : ada/libgnat/a-except.adb ada/libgnat/a-except.ads ada/libgnat/s-excmac.ads ada/libgnat/s-excmac.adb |
a1ab4c31 | 1140 | $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O1 -fno-inline \ |
edcc77db | 1141 | $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION) |
8219336f | 1142 | @$(ADA_DEPS) |
a1ab4c31 | 1143 | |
edcc77db | 1144 | ada/libgnat/s-excdeb.o : ada/libgnat/s-excdeb.adb ada/libgnat/s-excdeb.ads |
a1ab4c31 | 1145 | $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 \ |
edcc77db | 1146 | $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION) |
8219336f | 1147 | @$(ADA_DEPS) |
a1ab4c31 | 1148 | |
edcc77db | 1149 | ada/libgnat/s-assert.o : ada/libgnat/s-assert.adb ada/libgnat/s-assert.ads |
e1876cac | 1150 | $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \ |
edcc77db | 1151 | $< $(ADA_OUTPUT_OPTION) |
8219336f | 1152 | @$(ADA_DEPS) |
a1ab4c31 | 1153 | |
edcc77db | 1154 | ada/libgnat/a-tags.o : ada/libgnat/a-tags.adb ada/libgnat/a-tags.ads |
e1876cac | 1155 | $(CC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \ |
edcc77db | 1156 | $< $(ADA_OUTPUT_OPTION) |
8219336f | 1157 | @$(ADA_DEPS) |
e1876cac | 1158 | |
dbb4cfef AC |
1159 | # Handling of gnatvsn version string |
1160 | ||
1161 | # This ensure the build works even if there is no GNAT_DATE present in the | |
1162 | # sources | |
1163 | ada/GNAT_DATE: | |
1164 | touch ada/GNAT_DATE | |
1165 | ||
1166 | ada/generated/gnatvsn.ads: ada/gnatvsn.ads BASE-VER ada/GNAT_DATE | |
1167 | $(MKDIR) ada/generated | |
1168 | s=`cat $(srcdir)/BASE-VER | sed -e "s/\([0-9]*\)\.\([0-9]*\)\..*/-\1\2/g"`; \ | |
1169 | d=`if test -f $(srcdir)/ada/GNAT_DATE; then \ | |
1170 | cat $(srcdir)/ada/GNAT_DATE; else date +%Y%m%d; fi`; \ | |
9e0d5db3 | 1171 | cat $< | sed -e "/Version/s/(\([0-9]\{8\}\).*)/($$d$$s)/g" >$@ |
dbb4cfef AC |
1172 | |
1173 | ada/gnatvsn.o : ada/gnatvsn.adb ada/generated/gnatvsn.ads | |
abcf5174 | 1174 | $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION) |
dbb4cfef AC |
1175 | @$(ADA_DEPS) |
1176 | ||
8219336f | 1177 | # Dependencies for windows specific tool (mdll) |
a1ab4c31 AC |
1178 | |
1179 | ada/mdll.o : ada/mdll.adb ada/mdll.ads ada/mdll-fil.ads ada/mdll-utl.ads | |
edcc77db | 1180 | $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION) |
a1ab4c31 AC |
1181 | |
1182 | ada/mdll-fil.o : ada/mdll-fil.adb ada/mdll.ads ada/mdll-fil.ads | |
edcc77db | 1183 | $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION) |
a1ab4c31 AC |
1184 | |
1185 | ada/mdll-utl.o : ada/mdll-utl.adb ada/mdll.ads ada/mdll-utl.ads ada/sdefault.ads ada/types.ads | |
edcc77db | 1186 | $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION) |
a1ab4c31 | 1187 | |
76f9c7f4 BD |
1188 | # All generated files. Perhaps we should build all of these in the same |
1189 | # subdirectory, and get rid of ada/bldtools. | |
c9dd0131 EB |
1190 | # Warning: the files starting with ada/gnat.ads are not really generated, |
1191 | # instead they are copied from the libgnat subdirectory of the source tree | |
1192 | # during all the stages of the bootstrap, i.e. including stage #1, which | |
1193 | # means that they still need to be compilable by the base compiler. | |
abcf5174 AC |
1194 | ADA_GENERATED_FILES = \ |
1195 | ada/sinfo.h ada/einfo.h ada/nmake.adb ada/nmake.ads \ | |
1196 | ada/snames.ads ada/snames.adb ada/snames.h \ | |
1197 | ada/generated/gnatvsn.ads \ | |
1198 | ada/seinfo.ads ada/seinfo_tables.ads ada/seinfo_tables.adb \ | |
1199 | ada/sinfo-nodes.ads ada/sinfo-nodes.adb \ | |
1200 | ada/einfo-entities.ads ada/einfo-entities.adb \ | |
1201 | ada/gnat.ads ada/g-dynhta.ads ada/g-dynhta.adb \ | |
1202 | ada/g-dyntab.ads ada/g-dyntab.adb ada/g-graphs.ads ada/g-graphs.adb \ | |
1203 | ada/g-lists.ads ada/g-lists.adb ada/g-sets.ads ada/g-sets.adb \ | |
a6eae6a9 AC |
1204 | ada/s-rident.ads ada/s-pehage.ads ada/s-pehage.adb \ |
1205 | ada/s-resfil.ads ada/s-resfil.adb ada/s-utf_32.ads ada/s-utf_32.adb | |
76f9c7f4 BD |
1206 | |
1207 | # Only used to manually trigger the creation of the generated files. | |
1208 | .PHONY: | |
1209 | ada_generated_files: $(ADA_GENERATED_FILES) | |
a1ab4c31 | 1210 | |
8219336f NR |
1211 | # When building from scratch we don't have dependency files, the only thing |
1212 | # we need to ensure is that the generated files are created first. | |
76f9c7f4 | 1213 | $(GNAT1_OBJS) $(GNATBIND_OBJS): | $(ADA_GENERATED_FILES) |
0f1af881 | 1214 | |
8219336f | 1215 | # Manually include the auto-generated dependencies for the Ada host objects. |
8f241ff5 | 1216 | ADA_DEPFILES = $(foreach obj,$(GNAT1_ADA_OBJS) $(GNATBIND_OBJS),\ |
8219336f NR |
1217 | $(dir $(obj))/$(DEPDIR)/$(patsubst %.o,%.Po,$(notdir $(obj)))) |
1218 | -include $(ADA_DEPFILES) | |
a1ab4c31 | 1219 | |
8219336f NR |
1220 | # Automatically include the auto-generated dependencies for the C host objects. |
1221 | ada_OBJS = $(GNAT1_C_OBJS) |