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