[Ada] New unit GNAT.Sets
[gcc.git] / gcc / ada / Makefile.rtl
1 # Makefile.rtl for GNU Ada Compiler (GNAT).
2 # Copyright (C) 2003-2017, Free Software Foundation, Inc.
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 makefile fragment is included in the ada Makefile.
21
22 # Its purpose is to allow the separate maintenance of the list of
23 # GNATRTL objects and target pairs, which frequently changes.
24
25 ifndef ADAC
26 ADAC=$(CC)
27 endif
28
29 # Objects needed only for tasking
30 GNATRTL_TASKING_OBJS= \
31 a-dispat$(objext) \
32 a-dynpri$(objext) \
33 a-interr$(objext) \
34 a-intnam$(objext) \
35 a-reatim$(objext) \
36 a-retide$(objext) \
37 a-rttiev$(objext) \
38 a-synbar$(objext) \
39 a-sytaco$(objext) \
40 a-tasatt$(objext) \
41 a-taside$(objext) \
42 a-taster$(objext) \
43 g-boubuf$(objext) \
44 g-boumai$(objext) \
45 g-semaph$(objext) \
46 g-signal$(objext) \
47 g-tastus$(objext) \
48 g-thread$(objext) \
49 s-inmaop$(objext) \
50 s-interr$(objext) \
51 s-intman$(objext) \
52 s-mudido$(objext) \
53 s-osinte$(objext) \
54 s-proinf$(objext) \
55 s-solita$(objext) \
56 s-stusta$(objext) \
57 s-taenca$(objext) \
58 s-taprob$(objext) \
59 s-taprop$(objext) \
60 s-tarest$(objext) \
61 s-tasdeb$(objext) \
62 s-tasinf$(objext) \
63 s-tasini$(objext) \
64 s-taskin$(objext) \
65 s-taspri$(objext) \
66 s-tasque$(objext) \
67 s-tasres$(objext) \
68 s-tasren$(objext) \
69 s-tassta$(objext) \
70 s-tasuti$(objext) \
71 s-taasde$(objext) \
72 s-tadeca$(objext) \
73 s-tadert$(objext) \
74 s-tataat$(objext) \
75 s-tpinop$(objext) \
76 s-tpoben$(objext) \
77 s-tpobop$(objext) \
78 s-tposen$(objext) \
79 thread$(objext) \
80 $(EXTRA_GNATRTL_TASKING_OBJS)
81
82 # Objects the require IEEE Float
83 GNATRTL_ALTIVEC_OBJS= \
84 g-allein$(objext) \
85 g-alleve$(objext) \
86 g-altcon$(objext) \
87 g-altive$(objext) \
88 g-alveop$(objext) \
89 g-alvety$(objext) \
90 g-alvevi$(objext)
91
92 # Objects needed for non-tasking.
93 GNATRTL_NONTASKING_OBJS= \
94 a-assert$(objext) \
95 a-btgbso$(objext) \
96 a-calari$(objext) \
97 a-calcon$(objext) \
98 a-caldel$(objext) \
99 a-calend$(objext) \
100 a-calfor$(objext) \
101 a-catizo$(objext) \
102 a-cbdlli$(objext) \
103 a-cbhama$(objext) \
104 a-cbhase$(objext) \
105 a-cbmutr$(objext) \
106 a-cborma$(objext) \
107 a-cborse$(objext) \
108 a-cbprqu$(objext) \
109 a-cbsyqu$(objext) \
110 a-cdlili$(objext) \
111 a-cfdlli$(objext) \
112 a-cfhama$(objext) \
113 a-cfhase$(objext) \
114 a-cfinve$(objext) \
115 a-cforma$(objext) \
116 a-cforse$(objext) \
117 a-cgaaso$(objext) \
118 a-cgarso$(objext) \
119 a-cgcaso$(objext) \
120 a-chacon$(objext) \
121 a-chahan$(objext) \
122 a-charac$(objext) \
123 a-chlat1$(objext) \
124 a-chlat9$(objext) \
125 a-chtgbk$(objext) \
126 a-chtgbo$(objext) \
127 a-chtgke$(objext) \
128 a-chtgop$(objext) \
129 a-chzla1$(objext) \
130 a-chzla9$(objext) \
131 a-cidlli$(objext) \
132 a-cihama$(objext) \
133 a-cihase$(objext) \
134 a-cimutr$(objext) \
135 a-ciorma$(objext) \
136 a-ciormu$(objext) \
137 a-ciorse$(objext) \
138 a-clrefi$(objext) \
139 a-coboho$(objext) \
140 a-cobove$(objext) \
141 a-cofove$(objext) \
142 a-cofuba$(objext) \
143 a-cofuma$(objext) \
144 a-cofuse$(objext) \
145 a-cofuve$(objext) \
146 a-cogeso$(objext) \
147 a-cohama$(objext) \
148 a-cohase$(objext) \
149 a-cohata$(objext) \
150 a-coinho$(objext) \
151 a-coinve$(objext) \
152 a-colien$(objext) \
153 a-colire$(objext) \
154 a-comlin$(objext) \
155 a-comutr$(objext) \
156 a-conhel$(objext) \
157 a-contai$(objext) \
158 a-convec$(objext) \
159 a-coorma$(objext) \
160 a-coormu$(objext) \
161 a-coorse$(objext) \
162 a-coprnu$(objext) \
163 a-coteio$(objext) \
164 a-crbltr$(objext) \
165 a-crbtgk$(objext) \
166 a-crbtgo$(objext) \
167 a-crdlli$(objext) \
168 a-csquin$(objext) \
169 a-cuprqu$(objext) \
170 a-cusyqu$(objext) \
171 a-cwila1$(objext) \
172 a-cwila9$(objext) \
173 a-decima$(objext) \
174 a-diocst$(objext) \
175 a-direct$(objext) \
176 a-direio$(objext) \
177 a-dirval$(objext) \
178 a-einuoc$(objext) \
179 a-elchha$(objext) \
180 a-envvar$(objext) \
181 a-except$(objext) \
182 a-exctra$(objext) \
183 a-finali$(objext) \
184 a-flteio$(objext) \
185 a-fwteio$(objext) \
186 a-fzteio$(objext) \
187 a-inteio$(objext) \
188 a-ioexce$(objext) \
189 a-iteint$(objext) \
190 a-iwteio$(objext) \
191 a-izteio$(objext) \
192 a-lcteio$(objext) \
193 a-lfteio$(objext) \
194 a-lfwtio$(objext) \
195 a-lfztio$(objext) \
196 a-liteio$(objext) \
197 a-liwtio$(objext) \
198 a-liztio$(objext) \
199 a-llctio$(objext) \
200 a-llftio$(objext) \
201 a-llfwti$(objext) \
202 a-llfzti$(objext) \
203 a-llitio$(objext) \
204 a-lliwti$(objext) \
205 a-llizti$(objext) \
206 a-locale$(objext) \
207 a-ncelfu$(objext) \
208 a-ngcefu$(objext) \
209 a-ngcoar$(objext) \
210 a-ngcoty$(objext) \
211 a-ngelfu$(objext) \
212 a-ngrear$(objext) \
213 a-nlcefu$(objext) \
214 a-nlcoar$(objext) \
215 a-nlcoty$(objext) \
216 a-nlelfu$(objext) \
217 a-nllcar$(objext) \
218 a-nllcef$(objext) \
219 a-nllcty$(objext) \
220 a-nllefu$(objext) \
221 a-nllrar$(objext) \
222 a-nlrear$(objext) \
223 a-nscefu$(objext) \
224 a-nscoty$(objext) \
225 a-nselfu$(objext) \
226 a-nucoar$(objext) \
227 a-nucoty$(objext) \
228 a-nudira$(objext) \
229 a-nuelfu$(objext) \
230 a-nuflra$(objext) \
231 a-numaux$(objext) \
232 a-numeri$(objext) \
233 a-nurear$(objext) \
234 a-rbtgbk$(objext) \
235 a-rbtgbo$(objext) \
236 a-rbtgso$(objext) \
237 a-sbecin$(objext) \
238 a-sbhcin$(objext) \
239 a-sblcin$(objext) \
240 a-scteio$(objext) \
241 a-secain$(objext) \
242 a-sequio$(objext) \
243 a-sfecin$(objext) \
244 a-sfhcin$(objext) \
245 a-sflcin$(objext) \
246 a-sfteio$(objext) \
247 a-sfwtio$(objext) \
248 a-sfztio$(objext) \
249 a-shcain$(objext) \
250 a-siocst$(objext) \
251 a-siteio$(objext) \
252 a-siwtio$(objext) \
253 a-siztio$(objext) \
254 a-slcain$(objext) \
255 a-ssicst$(objext) \
256 a-ssitio$(objext) \
257 a-ssiwti$(objext) \
258 a-ssizti$(objext) \
259 a-stboha$(objext) \
260 a-stfiha$(objext) \
261 a-stmaco$(objext) \
262 a-storio$(objext) \
263 a-strbou$(objext) \
264 a-stream$(objext) \
265 a-strfix$(objext) \
266 a-strhas$(objext) \
267 a-string$(objext) \
268 a-strmap$(objext) \
269 a-strsea$(objext) \
270 a-strsup$(objext) \
271 a-strunb$(objext) \
272 a-ststio$(objext) \
273 a-stunau$(objext) \
274 a-stunha$(objext) \
275 a-stuten$(objext) \
276 a-stwibo$(objext) \
277 a-stwifi$(objext) \
278 a-stwiha$(objext) \
279 a-stwima$(objext) \
280 a-stwise$(objext) \
281 a-stwisu$(objext) \
282 a-stwiun$(objext) \
283 a-stzbou$(objext) \
284 a-stzfix$(objext) \
285 a-stzhas$(objext) \
286 a-stzmap$(objext) \
287 a-stzsea$(objext) \
288 a-stzsup$(objext) \
289 a-stzunb$(objext) \
290 a-suecin$(objext) \
291 a-suenco$(objext) \
292 a-suenst$(objext) \
293 a-suewst$(objext) \
294 a-suezst$(objext) \
295 a-suhcin$(objext) \
296 a-sulcin$(objext) \
297 a-suteio$(objext) \
298 a-swbwha$(objext) \
299 a-swfwha$(objext) \
300 a-swmwco$(objext) \
301 a-swunau$(objext) \
302 a-swuwha$(objext) \
303 a-swuwti$(objext) \
304 a-szbzha$(objext) \
305 a-szfzha$(objext) \
306 a-szmzco$(objext) \
307 a-szunau$(objext) \
308 a-szuzha$(objext) \
309 a-szuzti$(objext) \
310 a-tags$(objext) \
311 a-teioed$(objext) \
312 a-textio$(objext) \
313 a-tgdico$(objext) \
314 a-tiboio$(objext) \
315 a-ticoau$(objext) \
316 a-ticoio$(objext) \
317 a-tideau$(objext) \
318 a-tideio$(objext) \
319 a-tienau$(objext) \
320 a-tienio$(objext) \
321 a-tifiio$(objext) \
322 a-tiflau$(objext) \
323 a-tiflio$(objext) \
324 a-tigeau$(objext) \
325 a-tiinau$(objext) \
326 a-tiinio$(objext) \
327 a-timoau$(objext) \
328 a-timoio$(objext) \
329 a-tiocst$(objext) \
330 a-tirsfi$(objext) \
331 a-titest$(objext) \
332 a-tiunio$(objext) \
333 a-unccon$(objext) \
334 a-uncdea$(objext) \
335 a-undesu$(objext) \
336 a-wichha$(objext) \
337 a-wichun$(objext) \
338 a-widcha$(objext) \
339 a-witeio$(objext) \
340 a-wrstfi$(objext) \
341 a-wtcoau$(objext) \
342 a-wtcoio$(objext) \
343 a-wtcstr$(objext) \
344 a-wtdeau$(objext) \
345 a-wtdeio$(objext) \
346 a-wtedit$(objext) \
347 a-wtenau$(objext) \
348 a-wtenio$(objext) \
349 a-wtfiio$(objext) \
350 a-wtflau$(objext) \
351 a-wtflio$(objext) \
352 a-wtgeau$(objext) \
353 a-wtinau$(objext) \
354 a-wtinio$(objext) \
355 a-wtmoau$(objext) \
356 a-wtmoio$(objext) \
357 a-wttest$(objext) \
358 a-wwboio$(objext) \
359 a-wwunio$(objext) \
360 a-zchara$(objext) \
361 a-zchhan$(objext) \
362 a-zchuni$(objext) \
363 a-zrstfi$(objext) \
364 a-ztcoau$(objext) \
365 a-ztcoio$(objext) \
366 a-ztcstr$(objext) \
367 a-ztdeau$(objext) \
368 a-ztdeio$(objext) \
369 a-ztedit$(objext) \
370 a-ztenau$(objext) \
371 a-ztenio$(objext) \
372 a-ztexio$(objext) \
373 a-ztfiio$(objext) \
374 a-ztflau$(objext) \
375 a-ztflio$(objext) \
376 a-ztgeau$(objext) \
377 a-ztinau$(objext) \
378 a-ztinio$(objext) \
379 a-ztmoau$(objext) \
380 a-ztmoio$(objext) \
381 a-zttest$(objext) \
382 a-zzboio$(objext) \
383 a-zzunio$(objext) \
384 ada$(objext) \
385 calendar$(objext) \
386 directio$(objext) \
387 g-arrspl$(objext) \
388 g-awk$(objext) \
389 g-binenv$(objext) \
390 g-bubsor$(objext) \
391 g-busora$(objext) \
392 g-busorg$(objext) \
393 g-byorma$(objext) \
394 g-bytswa$(objext) \
395 g-calend$(objext) \
396 g-casuti$(objext) \
397 g-catiio$(objext) \
398 g-cgi$(objext) \
399 g-cgicoo$(objext) \
400 g-cgideb$(objext) \
401 g-comlin$(objext) \
402 g-comver$(objext) \
403 g-crc32$(objext) \
404 g-ctrl_c$(objext) \
405 g-curexc$(objext) \
406 g-debpoo$(objext) \
407 g-debuti$(objext) \
408 g-decstr$(objext) \
409 g-deutst$(objext) \
410 g-diopit$(objext) \
411 g-dirope$(objext) \
412 g-dynhta$(objext) \
413 g-dyntab$(objext) \
414 g-encstr$(objext) \
415 g-enutst$(objext) \
416 g-excact$(objext) \
417 g-except$(objext) \
418 g-exctra$(objext) \
419 s-exctra$(objext) \
420 g-expect$(objext) \
421 g-exptty$(objext) \
422 g-flocon$(objext) \
423 g-forstr$(objext) \
424 g-heasor$(objext) \
425 g-hesora$(objext) \
426 g-hesorg$(objext) \
427 g-htable$(objext) \
428 g-io$(objext) \
429 g-io_aux$(objext) \
430 g-lists$(objext) \
431 g-locfil$(objext) \
432 g-mbdira$(objext) \
433 g-mbflra$(objext) \
434 g-md5$(objext) \
435 g-memdum$(objext) \
436 g-moreex$(objext) \
437 g-os_lib$(objext) \
438 g-pehage$(objext) \
439 g-rannum$(objext) \
440 g-regexp$(objext) \
441 g-regpat$(objext) \
442 g-rewdat$(objext) \
443 g-sechas$(objext) \
444 g-sehamd$(objext) \
445 g-sehash$(objext) \
446 g-sercom$(objext) \
447 g-sestin$(objext) \
448 g-sets$(objext) \
449 g-sha1$(objext) \
450 g-sha224$(objext) \
451 g-sha256$(objext) \
452 g-sha384$(objext) \
453 g-sha512$(objext) \
454 g-shsh32$(objext) \
455 g-shsh64$(objext) \
456 g-shshco$(objext) \
457 g-souinf$(objext) \
458 g-spchge$(objext) \
459 g-speche$(objext) \
460 g-spipat$(objext) \
461 g-spitbo$(objext) \
462 g-sptabo$(objext) \
463 g-sptain$(objext) \
464 g-sptavs$(objext) \
465 g-strhas$(objext) \
466 g-string$(objext) \
467 g-strspl$(objext) \
468 g-table$(objext) \
469 g-tasloc$(objext) \
470 g-timsta$(objext) \
471 g-traceb$(objext) \
472 g-trasym$(objext) \
473 s-trasym$(objext) \
474 g-tty$(objext) \
475 g-u3spch$(objext) \
476 g-utf_32$(objext) \
477 g-wispch$(objext) \
478 g-wistsp$(objext) \
479 g-zspche$(objext) \
480 g-zstspl$(objext) \
481 gnat$(objext) \
482 i-c$(objext) \
483 i-cexten$(objext) \
484 i-cobol$(objext) \
485 i-cpoint$(objext) \
486 i-cstrea$(objext) \
487 i-cstrin$(objext) \
488 i-fortra$(objext) \
489 i-pacdec$(objext) \
490 interfac$(objext) \
491 ioexcept$(objext) \
492 machcode$(objext) \
493 s-addima$(objext) \
494 s-addope$(objext) \
495 s-arit64$(objext) \
496 s-assert$(objext) \
497 s-atacco$(objext) \
498 s-atocou$(objext) \
499 s-atopri$(objext) \
500 s-auxdec$(objext) \
501 s-bignum$(objext) \
502 s-bitops$(objext) \
503 s-boarop$(objext) \
504 s-boustr$(objext) \
505 s-bytswa$(objext) \
506 s-carsi8$(objext) \
507 s-carun8$(objext) \
508 s-casi16$(objext) \
509 s-casi32$(objext) \
510 s-casi64$(objext) \
511 s-casuti$(objext) \
512 s-caun16$(objext) \
513 s-caun32$(objext) \
514 s-caun64$(objext) \
515 s-chepoo$(objext) \
516 s-commun$(objext) \
517 s-conca2$(objext) \
518 s-conca3$(objext) \
519 s-conca4$(objext) \
520 s-conca5$(objext) \
521 s-conca6$(objext) \
522 s-conca7$(objext) \
523 s-conca8$(objext) \
524 s-conca9$(objext) \
525 s-crc32$(objext) \
526 s-crtl$(objext) \
527 s-dfmkio$(objext) \
528 s-dfmopr$(objext) \
529 s-dgmgop$(objext) \
530 s-dlmopr$(objext) \
531 s-diflio$(objext) \
532 s-diflmk$(objext) \
533 s-digemk$(objext) \
534 s-diinio$(objext) \
535 s-dilomk$(objext) \
536 s-dim$(objext) \
537 s-dimkio$(objext) \
538 s-dimmks$(objext) \
539 s-direio$(objext) \
540 s-dlmkio$(objext) \
541 s-dmotpr$(objext) \
542 s-dsaser$(objext) \
543 s-elaall$(objext) \
544 s-excdeb$(objext) \
545 s-except$(objext) \
546 s-exctab$(objext) \
547 s-exnint$(objext) \
548 s-exnllf$(objext) \
549 s-exnlli$(objext) \
550 s-expint$(objext) \
551 s-explli$(objext) \
552 s-expllu$(objext) \
553 s-expmod$(objext) \
554 s-expuns$(objext) \
555 s-fatflt$(objext) \
556 s-fatgen$(objext) \
557 s-fatlfl$(objext) \
558 s-fatllf$(objext) \
559 s-fatsfl$(objext) \
560 s-ficobl$(objext) \
561 s-filatt$(objext) \
562 s-fileio$(objext) \
563 s-finmas$(objext) \
564 s-finroo$(objext) \
565 s-flocon$(objext) \
566 s-fore$(objext) \
567 s-gearop$(objext) \
568 s-geveop$(objext) \
569 s-gloloc$(objext) \
570 s-htable$(objext) \
571 s-imenne$(objext) \
572 s-imgbiu$(objext) \
573 s-imgboo$(objext) \
574 s-imgcha$(objext) \
575 s-imgdec$(objext) \
576 s-imgenu$(objext) \
577 s-imgint$(objext) \
578 s-imgllb$(objext) \
579 s-imglld$(objext) \
580 s-imglli$(objext) \
581 s-imgllu$(objext) \
582 s-imgllw$(objext) \
583 s-imgrea$(objext) \
584 s-imguns$(objext) \
585 s-imgwch$(objext) \
586 s-imgwiu$(objext) \
587 s-io$(objext) \
588 s-llflex$(objext) \
589 s-maccod$(objext) \
590 s-mantis$(objext) \
591 s-mastop$(objext) \
592 s-memcop$(objext) \
593 s-memory$(objext) \
594 s-multip$(objext) \
595 s-os_lib$(objext) \
596 s-oscons$(objext) \
597 s-osprim$(objext) \
598 s-pack03$(objext) \
599 s-pack05$(objext) \
600 s-pack06$(objext) \
601 s-pack07$(objext) \
602 s-pack09$(objext) \
603 s-pack10$(objext) \
604 s-pack11$(objext) \
605 s-pack12$(objext) \
606 s-pack13$(objext) \
607 s-pack14$(objext) \
608 s-pack15$(objext) \
609 s-pack17$(objext) \
610 s-pack18$(objext) \
611 s-pack19$(objext) \
612 s-pack20$(objext) \
613 s-pack21$(objext) \
614 s-pack22$(objext) \
615 s-pack23$(objext) \
616 s-pack24$(objext) \
617 s-pack25$(objext) \
618 s-pack26$(objext) \
619 s-pack27$(objext) \
620 s-pack28$(objext) \
621 s-pack29$(objext) \
622 s-pack30$(objext) \
623 s-pack31$(objext) \
624 s-pack33$(objext) \
625 s-pack34$(objext) \
626 s-pack35$(objext) \
627 s-pack36$(objext) \
628 s-pack37$(objext) \
629 s-pack38$(objext) \
630 s-pack39$(objext) \
631 s-pack40$(objext) \
632 s-pack41$(objext) \
633 s-pack42$(objext) \
634 s-pack43$(objext) \
635 s-pack44$(objext) \
636 s-pack45$(objext) \
637 s-pack46$(objext) \
638 s-pack47$(objext) \
639 s-pack48$(objext) \
640 s-pack49$(objext) \
641 s-pack50$(objext) \
642 s-pack51$(objext) \
643 s-pack52$(objext) \
644 s-pack53$(objext) \
645 s-pack54$(objext) \
646 s-pack55$(objext) \
647 s-pack56$(objext) \
648 s-pack57$(objext) \
649 s-pack58$(objext) \
650 s-pack59$(objext) \
651 s-pack60$(objext) \
652 s-pack61$(objext) \
653 s-pack62$(objext) \
654 s-pack63$(objext) \
655 s-parame$(objext) \
656 s-parint$(objext) \
657 s-pooglo$(objext) \
658 s-pooloc$(objext) \
659 s-poosiz$(objext) \
660 s-powtab$(objext) \
661 s-purexc$(objext) \
662 s-rannum$(objext) \
663 s-ransee$(objext) \
664 s-regexp$(objext) \
665 s-regpat$(objext) \
666 s-resfil$(objext) \
667 s-restri$(objext) \
668 s-rident$(objext) \
669 s-rpc$(objext) \
670 s-scaval$(objext) \
671 s-secsta$(objext) \
672 s-sequio$(objext) \
673 s-shasto$(objext) \
674 s-soflin$(objext) \
675 s-soliin$(objext) \
676 s-spsufi$(objext) \
677 s-stache$(objext) \
678 s-stalib$(objext) \
679 s-stausa$(objext) \
680 s-stoele$(objext) \
681 s-stopoo$(objext) \
682 s-stposu$(objext) \
683 s-stratt$(objext) \
684 s-strhas$(objext) \
685 s-string$(objext) \
686 s-ststop$(objext) \
687 s-tasloc$(objext) \
688 s-traceb$(objext) \
689 s-traent$(objext) \
690 s-unstyp$(objext) \
691 s-utf_32$(objext) \
692 s-valboo$(objext) \
693 s-valcha$(objext) \
694 s-valdec$(objext) \
695 s-valenu$(objext) \
696 s-valint$(objext) \
697 s-vallld$(objext) \
698 s-vallli$(objext) \
699 s-valllu$(objext) \
700 s-valrea$(objext) \
701 s-valuns$(objext) \
702 s-valuti$(objext) \
703 s-valwch$(objext) \
704 s-veboop$(objext) \
705 s-vector$(objext) \
706 s-vercon$(objext) \
707 s-wchcnv$(objext) \
708 s-wchcon$(objext) \
709 s-wchjis$(objext) \
710 s-wchstw$(objext) \
711 s-wchwts$(objext) \
712 s-widboo$(objext) \
713 s-widcha$(objext) \
714 s-widenu$(objext) \
715 s-widlli$(objext) \
716 s-widllu$(objext) \
717 s-widwch$(objext) \
718 s-wwdcha$(objext) \
719 s-wwdenu$(objext) \
720 s-wwdwch$(objext) \
721 sequenio$(objext) \
722 system$(objext) \
723 text_io$(objext) \
724 unchconv$(objext) \
725 unchdeal$(objext) \
726 $(GNATRTL_ALTIVEC_OBJS) \
727 $(GNATRTL_SOCKETS_OBJS) \
728 $(EXTRA_GNATRTL_NONTASKING_OBJS)
729
730 # LIBGNAT_TARGET_PAIRS is a list of pairs of filenames.
731 # The members of each pair must be separated by a '<' and no whitespace.
732 # Each pair must be separated by some amount of whitespace from the following
733 # pair.
734
735 # Non-tasking case:
736
737 LIBGNAT_TARGET_PAIRS = \
738 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
739 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
740 s-intman.adb<libgnarl/s-intman__dummy.adb \
741 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
742 s-osprim.adb<libgnat/s-osprim__posix.adb \
743 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
744 s-taspri.ads<libgnarl/s-taspri__dummy.ads
745
746 # When using the GCC exception handling mechanism, we need to use an
747 # alternate body for a-exexpr.adb (a-exexpr-gcc.adb)
748
749 EH_MECHANISM=
750
751 # Compilation options for the GCC-SJLJ RTS. This may be augmented for
752 # target specific contexts, e.g. to add -fno-omit-frame-pointer for backtrace
753 # computations.
754 GNATLIBCFLAGS_FOR_GCCSJLJ=-fsjlj
755
756 # Default shared object option. Note that we rely on the fact that the "soname"
757 # option will always be present and last in this flag, so that we can have
758 # $(SO_OPTS)libgnat-x.xx
759
760 SO_OPTS = -Wl,-soname,
761
762 # Default gnatlib-shared target.
763 # By default, equivalent to gnatlib.
764 # Set to gnatlib-shared-default, gnatlib-shared-dual, or a platform specific
765 # target when supported.
766 GNATLIB_SHARED = gnatlib
767
768 # By default, build socket support units. On platforms that do not support
769 # sockets, reset this variable to empty and add DUMMY_SOCKETS_TARGET_PAIRS
770 # to LIBGNAT_TARGET_PAIRS.
771
772 GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \
773 g-soliop$(objext) g-sothco$(objext)
774
775 DUMMY_SOCKETS_TARGET_PAIRS = \
776 g-socket.adb<libgnat/g-socket__dummy.adb \
777 g-socket.ads<libgnat/g-socket__dummy.ads \
778 g-socthi.adb<libgnat/g-socthi__dummy.adb \
779 g-socthi.ads<libgnat/g-socthi__dummy.ads \
780 g-sothco.adb<libgnat/g-sothco__dummy.adb \
781 g-sothco.ads<libgnat/g-sothco__dummy.ads
782
783 # On platforms where atomic increment/decrement operations are supported,
784 # special version of Ada.Strings.Unbounded package can be used.
785
786 ATOMICS_TARGET_PAIRS = \
787 a-coinho.adb<libgnat/a-coinho__shared.adb \
788 a-coinho.ads<libgnat/a-coinho__shared.ads \
789 a-stunau.adb<libgnat/a-stunau__shared.adb \
790 a-suteio.adb<libgnat/a-suteio__shared.adb \
791 a-strunb.ads<libgnat/a-strunb__shared.ads \
792 a-strunb.adb<libgnat/a-strunb__shared.adb \
793 a-stwiun.adb<libgnat/a-stwiun__shared.adb \
794 a-stwiun.ads<libgnat/a-stwiun__shared.ads \
795 a-swunau.adb<libgnat/a-swunau__shared.adb \
796 a-swuwti.adb<libgnat/a-swuwti__shared.adb \
797 a-stzunb.adb<libgnat/a-stzunb__shared.adb \
798 a-stzunb.ads<libgnat/a-stzunb__shared.ads \
799 a-szunau.adb<libgnat/a-szunau__shared.adb \
800 a-szuzti.adb<libgnat/a-szuzti__shared.adb
801
802 ATOMICS_BUILTINS_TARGET_PAIRS = \
803 s-atocou.adb<libgnat/s-atocou__builtin.adb
804
805 # Special version of units for x86 and x86-64 platforms.
806
807 X86_TARGET_PAIRS = \
808 a-numaux.ads<libgnat/a-numaux__x86.ads \
809 a-numaux.adb<libgnat/a-numaux__x86.adb \
810 s-atocou.adb<libgnat/s-atocou__x86.adb
811
812 X86_64_TARGET_PAIRS = \
813 a-numaux.ads<libgnat/a-numaux__x86.ads \
814 a-numaux.adb<libgnat/a-numaux__x86.adb \
815 s-atocou.adb<libgnat/s-atocou__builtin.adb
816
817 # Implementation of symbolic traceback based on dwarf
818 TRASYM_DWARF_UNIX_PAIRS = \
819 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
820 s-mmosin.ads<libgnat/s-mmosin__unix.ads \
821 s-mmosin.adb<libgnat/s-mmosin__unix.adb \
822 s-mmauni.ads<libgnat/s-mmauni__long.ads
823
824 TRASYM_DWARF_MINGW_PAIRS = \
825 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
826 s-mmosin.ads<libgnat/s-mmosin__mingw.ads \
827 s-mmosin.adb<libgnat/s-mmosin__mingw.adb
828
829 TRASYM_DWARF_COMMON_OBJS = s-objrea$(objext) s-dwalin$(objext) s-mmap$(objext) \
830 s-mmosin$(objext)
831
832 TRASYM_DWARF_UNIX_OBJS = $(TRASYM_DWARF_COMMON_OBJS) s-mmauni$(objext)
833
834 TRASYM_DWARF_MINGW_OBJS = $(TRASYM_DWARF_COMMON_OBJS)
835
836 # Shared library version
837 LIB_VERSION = $(strip $(shell grep ' Library_Version :' $(GNAT_SRC)/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/'))
838
839 # Additional object files from C source to be added to libgnat.
840 EXTRA_LIBGNAT_OBJS=
841
842 # Additional C source files to be added to libgnat without corresponding
843 # object file (#included files). This should include at least the GNAT
844 # specific header files required to rebuild the runtime library from sources.
845 EXTRA_LIBGNAT_SRCS=
846
847 # Additional object files from Ada sources to be added in libgnat
848 EXTRA_GNATRTL_NONTASKING_OBJS=
849
850 # Additional object files from Ada sources to be added in libgnarl
851 EXTRA_GNATRTL_TASKING_OBJS=
852
853 # Subsets of extra libgnat sources that always go together
854 VX_SIGTRAMP_EXTRA_SRCS=sigtramp.h sigtramp-vxworks-target.inc
855
856 # Additional object files that should go in the same directory as libgnat,
857 # aside the library itself. Typically useful for crtbegin/crtend kind of files.
858 EXTRA_ADALIB_OBJS=
859
860 # crt files for VxWorks exception tables registration, referenced by
861 # spec files in the runtime library.
862 VX_CRTBE_EXTRA_ADALIB_OBJS=vx_crtbegin.o vx_crtbegin_array.o vx_crtend.o
863
864 # Contructor attributes (with priorities) are only supported on VxWorks 7
865 # or for RTPs.
866 ifneq ($(strip $(filter vxworks7% rtp%,$(target_os) $(THREAD_KIND))),)
867 VX_CRTBE_EXTRA_ADALIB_OBJS+=vx_crtbegin_attr.o
868 endif
869
870 # GCC spec files to be installed in $(libsubdir), so --specs=<spec-filename>
871 # finds them at runtime.
872 GCC_SPEC_FILES=
873
874 # $(filter-out PATTERN...,TEXT) removes all PATTERN words from TEXT.
875 # $(strip STRING) removes leading and trailing spaces from STRING.
876 # If what's left is null then it's a match.
877
878 # PowerPC and e500v2 VxWorks
879 ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworksspe vxworks7 vxworks7spe,$(target_cpu) $(target_vendor) $(target_os))),)
880
881 ifeq ($(strip $(filter-out e500%, $(target_alias))),)
882 ARCH_STR=e500
883 # gcc config translates the target e500v2-wrs-vxworks to
884 # powerpc-wrs-vxworksspe. Let's keep the original alias here when
885 # generating s-oscons.ads.
886 target=$(target_alias)
887 else
888 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
889 ARCH_STR=ppc64
890 else
891 ARCH_STR=ppc
892 endif
893 endif
894
895 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
896 SVX=system-$(VX)
897 GCC_SPEC_FILES+=$(VX)-gnat-crtbe-link.spec
898
899 LIBGNAT_TARGET_PAIRS = \
900 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
901 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
902 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
903 s-intman.ads<libgnarl/s-intman__vxworks.ads \
904 s-intman.adb<libgnarl/s-intman__vxworks.adb \
905 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
906 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
907 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
908 s-parame.ads<libgnat/s-parame__vxworks.ads \
909 s-parame.adb<libgnat/s-parame__vxworks.adb \
910 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
911 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
912 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
913 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
914 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
915 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
916 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
917 $(ATOMICS_TARGET_PAIRS) \
918 $(ATOMICS_BUILTINS_TARGET_PAIRS)
919
920 # VxWorks 5 and 6 both use the same target triplet making them
921 # indistinguishable in the context of this make file. Package
922 # System.Stack_Checking.Operations is not needed on VxWorks 6 as it leads to
923 # an undefined symbol when building a dynamic shared library. To alleviate
924 # this problem and distinguish this case, we use the THREAD_KIND and include
925 # the package only in default mode.
926
927 ifeq ($(strip $(filter-out default,$(THREAD_KIND))),)
928 LIBGNAT_TARGET_PAIRS += \
929 s-stchop.ads<libgnat/s-stchop__limit.ads \
930 s-stchop.adb<libgnat/s-stchop__vxworks.adb
931 EXTRA_GNATRTL_NONTASKING_OBJS+=s-stchop.o
932 endif
933
934 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
935
936 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
937 LIBGNAT_TARGET_PAIRS += \
938 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
939 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
940 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
941 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp.ads
942
943 EH_MECHANISM=-gcc
944 else
945 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
946 LIBGNAT_TARGET_PAIRS += \
947 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
948 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
949 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
950 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
951 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
952
953 EH_MECHANISM=-gcc
954 EXTRA_LIBGNAT_OBJS+=affinity.o
955 else
956 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
957 LIBGNAT_TARGET_PAIRS += \
958 s-interr.adb<libgnarl/s-interr__vxworks.adb \
959 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
960 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
961 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
962 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
963 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
964
965 EH_MECHANISM=-gcc
966 EXTRA_LIBGNAT_OBJS+=affinity.o
967 else
968 LIBGNAT_TARGET_PAIRS += \
969 s-interr.adb<libgnarl/s-interr__vxworks.adb \
970 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb
971
972 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
973 EH_MECHANISM=-gcc
974 LIBGNAT_TARGET_PAIRS += \
975 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
976 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
977 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
978 else
979 LIBGNAT_TARGET_PAIRS += \
980 system.ads<libgnat/system-vxworks-ppc.ads
981 endif
982 endif
983 EXTRA_GNATRTL_NONTASKING_OBJS+=i-vxinco.o i-vxwork.o i-vxwoio.o
984 endif
985 endif
986
987 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
988 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
989
990 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
991
992 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
993
994 EXTRA_ADALIB_OBJS+=$(VX_CRTBE_EXTRA_ADALIB_OBJS)
995 EXTRA_LIBGNAT_SRCS+=vx_crtbegin.inc
996
997 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
998 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
999 GCC_SPEC_FILES+=vxworks7-ppc64-rtp-base-link.spec
1000 else
1001 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1002 endif
1003 else
1004 GCC_SPEC_FILES+=vxworks-$(ARCH_STR)-link.spec
1005 GCC_SPEC_FILES+=vxworks-cert-$(ARCH_STR)-link.spec
1006 GCC_SPEC_FILES+=vxworks-smp-$(ARCH_STR)-link.spec
1007 endif
1008 endif
1009
1010 # PowerPC and e500v2 VxWorks 653
1011 ifeq ($(strip $(filter-out powerpc% wrs vxworksae vxworksaespe,$(target_cpu) $(target_vendor) $(target_os))),)
1012
1013 ifeq ($(strip $(filter-out e500%, $(target_alias))),)
1014 ARCH_STR=e500
1015 # gcc config translates the target e500v2-wrs-vxworks to
1016 # powerpc-wrs-vxworksspe. Let's keep the original alias here when
1017 # generating s-oscons.ads.
1018 target=$(target_alias)
1019 else
1020 ARCH_STR=ppc
1021 endif
1022
1023 # target pairs for vthreads runtime
1024 LIBGNAT_TARGET_PAIRS = \
1025 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \
1026 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1027 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1028 g-io.adb<hie/g-io__vxworks-ppc-cert.adb \
1029 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1030 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1031 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1032 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1033 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1034 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1035 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1036 s-parame.ads<libgnat/s-parame__ae653.ads \
1037 s-parame.adb<libgnat/s-parame__vxworks.adb \
1038 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1039 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1040 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1041 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1042 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \
1043 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \
1044 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
1045 system.ads<libgnat/system-vxworks-$(ARCH_STR)-vthread.ads \
1046 $(ATOMICS_TARGET_PAIRS) \
1047 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1048
1049 EH_MECHANISM=-gcc
1050
1051 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1052
1053 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
1054 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1055
1056 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1057 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1058
1059 # Extra pairs for the vthreads runtime
1060 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
1061 LIBGNAT_TARGET_PAIRS += \
1062 s-thread.adb<libgnat/s-thread__ae653.adb \
1063 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \
1064 $(DUMMY_SOCKETS_TARGET_PAIRS)
1065
1066 GNATRTL_SOCKETS_OBJS =
1067 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o
1068 else
1069 LIBGNAT_TARGET_PAIRS += \
1070 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1071 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1072 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1073 endif
1074
1075 endif
1076
1077 # VxWorksae / VxWorks 653 for x86 (vxsim) - ?? VxWorks mils not implemented
1078 ifeq ($(strip $(filter-out %86 wrs vxworksae,$(target_cpu) $(target_vendor) $(target_os))),)
1079 # target pairs for kernel + vthreads runtime
1080 LIBGNAT_TARGET_PAIRS = \
1081 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \
1082 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1083 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1084 g-io.adb<hie/g-io__vxworks-ppc-cert.adb \
1085 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1086 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1087 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1088 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1089 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1090 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1091 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1092 s-parame.ads<libgnat/s-parame__ae653.ads \
1093 s-parame.adb<libgnat/s-parame__vxworks.adb \
1094 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1095 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1096 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1097 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1098 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \
1099 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \
1100 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1101 system.ads<libgnat/system-vxworks-x86-vthread.ads \
1102 $(ATOMICS_TARGET_PAIRS) \
1103 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1104
1105 EH_MECHANISM=-gcc
1106
1107 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1108
1109 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-thread.o
1110 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1111
1112 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1113 GNATRTL_SOCKETS_OBJS =
1114
1115 # Extra pairs for the vthreads runtime
1116 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
1117 LIBGNAT_TARGET_PAIRS += \
1118 s-thread.adb<libgnat/s-thread__ae653.adb \
1119 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \
1120 $(DUMMY_SOCKETS_TARGET_PAIRS)
1121
1122 GNATRTL_SOCKETS_OBJS =
1123 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o
1124 else
1125 LIBGNAT_TARGET_PAIRS += \
1126 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1127 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1128 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1129 endif
1130
1131 endif
1132
1133 # x86/x86_64 VxWorks
1134 ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7,$(target_cpu) $(target_vendor) $(target_os))),)
1135
1136 EH_MECHANISM=-gcc
1137
1138 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
1139 SVX=system-$(VX)
1140 GCC_SPEC_FILES+=$(VX)-gnat-crtbe-link.spec
1141
1142 ifeq ($(strip $(filter-out x86_64, $(target_cpu))),)
1143 X86CPU=x86_64
1144 LIBGNAT_TARGET_PAIRS=$(X86_64_TARGET_PAIRS)
1145 else
1146 X86CPU=x86
1147 LIBGNAT_TARGET_PAIRS=$(X86_TARGET_PAIRS)
1148 endif
1149
1150 LIBGNAT_TARGET_PAIRS+= \
1151 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1152 i-vxwork.ads<libgnat/i-vxwork__x86.ads \
1153 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1154 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1155 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1156 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1157 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1158 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1159 s-parame.ads<libgnat/s-parame__vxworks.ads \
1160 s-parame.adb<libgnat/s-parame__vxworks.adb \
1161 s-stchop.ads<libgnat/s-stchop__limit.ads \
1162 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1163 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1164 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1165 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1166 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1167 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1168 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1169 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1170 $(ATOMICS_TARGET_PAIRS)
1171
1172 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1173
1174 # The CPU setting for VxSim varies with the
1175 # host (Windows or Linux)
1176 # target (VxWorks6 or VxWorks7)
1177 # runtime (rtp or kernel)
1178 # -------------------------------------------------------------
1179 # vx6 vx7
1180 # Windows (host_os = mingw32)
1181 # kernel SIMNT SIMNT
1182 # rtp SIMPENTIUM SIMNT
1183 # Linux (host_os = linux-gnu)
1184 # kernel SIMLINUX SIMLINUX
1185 # rtp SIMPENTIUM SIMLINUX
1186 # -------------------------------------------------------------
1187 # It is overridden by VXSIM_CPU only in files init-vxsim.c and
1188 # sigtramp-vxworks-vxsim.c which contain functions determined at
1189 # runtime to be called if a program is running on VxSim vs real hardware
1190 # (due to differences in signal context for unwinding).
1191
1192 ifneq ($(strip $(filter-out vxworks7, $(target_os))),)
1193 ifeq ($(strip $(filter-out vxworks rtp rtp-smp,$(target_os) $(THREAD_KIND))),)
1194 VXSIM_CPU = SIMPENTIUM
1195 else
1196 ifeq ($(strip $(filter-out kernel kernel-smp rtp rtp-smp,$(THREAD_KIND))),)
1197 ifeq ($(strip $(filter-out linux%,$(host_os))),)
1198 # Linux
1199 VXSIM_CPU = SIMLINUX
1200 else
1201 # Windows
1202 VXSIM_CPU = SIMNT
1203 endif
1204 endif
1205 endif
1206
1207 GNATLIBCFLAGS_FOR_C := $(GNATLIBCFLAGS_FOR_C) -D__VXSIM_CPU__=$(VXSIM_CPU)
1208 endif
1209
1210 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
1211 LIBGNAT_TARGET_PAIRS += \
1212 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1213 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
1214 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
1215 system.ads<libgnat/$(SVX)-x86-rtp.ads
1216 else
1217 ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),)
1218 LIBGNAT_TARGET_PAIRS += \
1219 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1220 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1221 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1222 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1223 system.ads<libgnat/$(SVX)-$(X86CPU)-rtp-smp.ads
1224
1225 EXTRA_LIBGNAT_OBJS+=affinity.o
1226 else
1227 ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),)
1228 LIBGNAT_TARGET_PAIRS += \
1229 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1230 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1231 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1232 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1233 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1234 system.ads<libgnat/$(SVX)-$(X86CPU)-kernel.ads
1235
1236 EXTRA_LIBGNAT_OBJS+=affinity.o
1237 else
1238 LIBGNAT_TARGET_PAIRS += \
1239 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1240 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb
1241
1242 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1243 LIBGNAT_TARGET_PAIRS += \
1244 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1245 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
1246 system.ads<libgnat/$(SVX)-x86-kernel.ads
1247 else
1248 LIBGNAT_TARGET_PAIRS += \
1249 system.ads<libgnat/system-vxworks-x86.ads
1250 endif
1251 endif
1252
1253 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
1254 endif
1255 endif
1256
1257 EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
1258 EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o
1259
1260 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1261
1262 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1263 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1264
1265 EXTRA_ADALIB_OBJS+=$(VX_CRTBE_EXTRA_ADALIB_OBJS)
1266 EXTRA_LIBGNAT_SRCS+=vx_crtbegin.inc
1267
1268 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1269 GCC_SPEC_FILES+=vxworks7-$(X86CPU)-rtp-base-link.spec
1270 else
1271 GCC_SPEC_FILES+=vxworks-x86-link.spec
1272 GCC_SPEC_FILES+=vxworks-cert-x86-link.spec
1273 GCC_SPEC_FILES+=vxworks-smp-x86-link.spec
1274 endif
1275 endif
1276
1277 # ARM and Aarch64 VxWorks
1278 ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vendor) $(target_os))),)
1279
1280 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1281 ARCH_STR=aarch64
1282 VX=vxworks7
1283 EH_MECHANISM=-gcc
1284 SIGTRAMP_OBJ=sigtramp-vxworks.o
1285 else
1286 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1287 ARCH_STR=arm
1288 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1289 VX=vxworks7
1290 EH_MECHANISM=-arm
1291 SIGTRAMP_OBJ=sigtramp-armvxworks.o
1292 else
1293 VX=vxworks
1294 EH_MECHANISM=-gcc
1295 SIGTRAMP_OBJ=sigtramp-vxworks.o
1296 endif
1297 else
1298 ARCH_STR=coff
1299 endif
1300 endif
1301
1302 SVX=system-$(VX)
1303 GCC_SPEC_FILES+=$(VX)-gnat-crtbe-link.spec
1304
1305 LIBGNAT_TARGET_PAIRS = \
1306 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1307 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1308 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1309 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1310 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1311 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1312 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1313 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1314 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1315 s-parame.ads<libgnat/s-parame__vxworks.ads \
1316 s-parame.adb<libgnat/s-parame__vxworks.adb \
1317 s-stchop.ads<libgnat/s-stchop__limit.ads \
1318 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1319 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1320 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1321 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1322 s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads \
1323 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1324 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1325 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1326
1327 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1328
1329 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1330 LIBGNAT_TARGET_PAIRS += \
1331 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1332 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1333 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1334 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1335 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
1336
1337 EXTRA_LIBGNAT_OBJS+=affinity.o
1338
1339 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1340 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1341 else
1342 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1343 LIBGNAT_TARGET_PAIRS += \
1344 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1345 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1346 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1347 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1348 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads
1349
1350 EXTRA_LIBGNAT_OBJS+=affinity.o
1351
1352 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1353 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1354 else
1355 LIBGNAT_TARGET_PAIRS += \
1356 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1357 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads
1358
1359 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1360 LIBGNAT_TARGET_PAIRS += \
1361 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1362 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb
1363
1364 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1365 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1366 endif
1367 endif
1368 endif
1369
1370 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o \
1371 s-stchop.o
1372 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1373
1374 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1375
1376 ifeq ($(strip $(filter-out arm vxworks7%, $(target_cpu) $(target_os))),)
1377 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1378 else
1379 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1380 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1381 endif
1382 EXTRA_ADALIB_OBJS+=$(VX_CRTBE_EXTRA_ADALIB_OBJS)
1383 EXTRA_LIBGNAT_SRCS+=vx_crtbegin.inc
1384
1385 ifneq ($(strip $(filter-out vxworks7%, $(target_os))),)
1386 GCC_SPEC_FILES+=vxworks-arm-link.spec
1387 GCC_SPEC_FILES+=vxworks-smp-arm-link.spec
1388 endif
1389 endif
1390 endif
1391
1392 # ARM android
1393 ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),)
1394 LIBGNAT_TARGET_PAIRS = \
1395 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1396 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1397 s-intman.adb<libgnarl/s-intman__android.adb \
1398 s-linux.ads<libgnarl/s-linux__android.ads \
1399 s-osinte.adb<libgnarl/s-osinte__android.adb \
1400 s-osinte.ads<libgnarl/s-osinte__android.ads \
1401 s-osprim.adb<libgnat/s-osprim__posix.adb \
1402 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1403 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1404 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1405 $(ATOMICS_TARGET_PAIRS) \
1406 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1407 system.ads<libgnat/system-linux-arm.ads
1408
1409 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1410
1411 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1412 EXTRA_LIBGNAT_OBJS+=sigtramp-armdroid.o
1413 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1414 EH_MECHANISM=-arm
1415 THREADSLIB =
1416 GNATLIB_SHARED = gnatlib-shared-dual
1417 LIBRARY_VERSION := $(LIB_VERSION)
1418 endif
1419
1420 # AARCH64 QNX
1421 ifeq ($(strip $(filter-out aarch64 %qnx,$(target_cpu) $(target_os))),)
1422 LIBGNAT_TARGET_PAIRS = \
1423 a-intnam.ads<libgnarl/a-intnam__qnx.ads \
1424 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1425 s-intman.adb<libgnarl/s-intman__qnx.adb \
1426 s-osinte.adb<libgnarl/s-osinte__qnx.adb \
1427 s-osinte.ads<libgnarl/s-osinte__qnx.ads \
1428 s-osprim.adb<libgnat/s-osprim__posix.adb \
1429 s-qnx.ads<libgnarl/s-qnx.ads \
1430 s-taprop.adb<libgnarl/s-taprop__qnx.adb \
1431 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1432 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1433 g-soliop.ads<libgnat/g-soliop__qnx.ads \
1434 $(ATOMICS_TARGET_PAIRS) \
1435 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1436 system.ads<libgnat/system-qnx-aarch64.ads
1437
1438 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1439
1440 EXTRA_GNATRTL_TASKING_OBJS=s-qnx.o
1441 EXTRA_LIBGNAT_OBJS+=sigtramp-qnx.o
1442 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1443 EH_MECHANISM=-gcc
1444
1445 SO_OPTS= -shared-libgcc -Wl,-soname,
1446 MISCLIB= -lsocket
1447 THREADSLIB=
1448 GNATLIB_SHARED = gnatlib-shared-dual
1449 LIBRARY_VERSION := $(LIB_VERSION)
1450 endif
1451
1452 # Sparc Solaris
1453 ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
1454 LIBGNAT_TARGET_PAIRS = \
1455 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1456 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1457 s-intman.adb<libgnarl/s-intman__solaris.adb \
1458 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1459 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1460 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1461 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1462 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1463 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1464 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1465 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1466 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1467 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1468 $(TRASYM_DWARF_UNIX_PAIRS) \
1469 $(ATOMICS_TARGET_PAIRS) \
1470 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1471 system.ads<libgnat/system-solaris-sparc.ads
1472
1473 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1474
1475 EH_MECHANISM=-gcc
1476 THREADSLIB = -lposix4 -lthread
1477 MISCLIB = -lposix4 -lnsl -lsocket
1478 SO_OPTS = -Wl,-h,
1479 GNATLIB_SHARED = gnatlib-shared-dual
1480 GMEM_LIB = gmemlib
1481 LIBRARY_VERSION := $(LIB_VERSION)
1482 endif
1483
1484 # x86 and x86-64 solaris
1485 ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
1486 LIBGNAT_TARGET_PAIRS_COMMON = \
1487 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1488 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1489 s-intman.adb<libgnarl/s-intman__solaris.adb \
1490 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1491 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1492 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1493 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1494 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1495 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1496 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1497 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1498 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1499 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1500 $(TRASYM_DWARF_UNIX_PAIRS) \
1501 $(ATOMICS_TARGET_PAIRS) \
1502 system.ads<libgnat/system-solaris-x86.ads
1503
1504 ifeq ($(strip $(filter-out %86 solaris2%,$(target_cpu) $(target_os))),)
1505 ifeq ($(strip $(MULTISUBDIR)),/amd64)
1506 LIBGNAT_TARGET_PAIRS = \
1507 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1508 else
1509 LIBGNAT_TARGET_PAIRS = \
1510 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1511 endif
1512 else
1513 ifeq ($(strip $(MULTISUBDIR)),/32)
1514 LIBGNAT_TARGET_PAIRS = \
1515 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1516 else
1517 LIBGNAT_TARGET_PAIRS = \
1518 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1519 endif
1520 endif
1521
1522 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1523 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1524
1525 EH_MECHANISM=-gcc
1526 THREADSLIB = -lposix4 -lthread
1527 MISCLIB = -lposix4 -lnsl -lsocket
1528 SO_OPTS = -Wl,-h,
1529 GNATLIB_SHARED = gnatlib-shared-dual
1530 GMEM_LIB = gmemlib
1531 LIBRARY_VERSION := $(LIB_VERSION)
1532 endif
1533
1534 # x86 Linux
1535 ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
1536 LIBGNAT_TARGET_PAIRS = \
1537 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1538 a-synbar.adb<libgnarl/a-synbar__posix.adb \
1539 a-synbar.ads<libgnarl/a-synbar__posix.ads \
1540 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1541 s-intman.adb<libgnarl/s-intman__posix.adb \
1542 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1543 $(TRASYM_DWARF_UNIX_PAIRS) \
1544 g-sercom.adb<libgnat/g-sercom__linux.adb \
1545 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
1546 a-exetim.adb<libgnarl/a-exetim__posix.adb \
1547 a-exetim.ads<libgnarl/a-exetim__default.ads \
1548 s-linux.ads<libgnarl/s-linux.ads \
1549 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1550 $(ATOMICS_TARGET_PAIRS) \
1551 system.ads<libgnat/system-linux-x86.ads
1552
1553 ifeq ($(strip $(MULTISUBDIR)),/64)
1554 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1555 else
1556 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1557 endif
1558
1559 LIBGNAT_TARGET_PAIRS += \
1560 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1561 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1562 s-osprim.adb<libgnat/s-osprim__posix.adb \
1563 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1564 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1565 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1566 s-taspri.ads<libgnarl/s-taspri__posix.ads
1567
1568 EH_MECHANISM=-gcc
1569 THREADSLIB = -lpthread -lrt
1570 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1571 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1572 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
1573
1574 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1575
1576 GNATLIB_SHARED = gnatlib-shared-dual
1577 MISCLIB = -ldl
1578 GMEM_LIB = gmemlib
1579 LIBRARY_VERSION := $(LIB_VERSION)
1580
1581 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
1582 endif
1583
1584 # x86 kfreebsd
1585 ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),)
1586 LIBGNAT_TARGET_PAIRS = \
1587 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1588 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1589 s-intman.adb<libgnarl/s-intman__posix.adb \
1590 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1591 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1592 s-osprim.adb<libgnat/s-osprim__posix.adb \
1593 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1594 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1595 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1596 $(TRASYM_DWARF_UNIX_PAIRS) \
1597 $(ATOMICS_TARGET_PAIRS) \
1598 $(X86_TARGET_PAIRS) \
1599 system.ads<libgnat/system-freebsd.ads
1600
1601 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1602
1603 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1604 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1605
1606 EH_MECHANISM=-gcc
1607 THREADSLIB = -lpthread
1608 GNATLIB_SHARED = gnatlib-shared-dual
1609 GMEM_LIB = gmemlib
1610 LIBRARY_VERSION := $(LIB_VERSION)
1611 MISCLIB = -lutil
1612 endif
1613
1614 # i[3456]86-pc-gnu i.e. GNU Hurd
1615 ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),)
1616 LIBGNAT_TARGET_PAIRS = \
1617 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1618 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1619 s-intman.adb<libgnarl/s-intman__posix.adb \
1620 s-osinte.adb<libgnarl/s-osinte__gnu.adb \
1621 s-osinte.ads<libgnarl/s-osinte__gnu.ads \
1622 s-osprim.adb<libgnat/s-osprim__posix.adb \
1623 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1624 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1625 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1626 $(ATOMICS_TARGET_PAIRS) \
1627 $(X86_TARGET_PAIRS) \
1628 system.ads<libgnat/system-freebsd.ads
1629
1630 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1631
1632 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1633
1634 EH_MECHANISM=-gcc
1635 THREADSLIB = -lpthread
1636 GNATLIB_SHARED = gnatlib-shared-dual
1637 GMEM_LIB = gmemlib
1638 LIBRARY_VERSION := $(LIB_VERSION)
1639 endif
1640
1641 ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
1642 LIBGNAT_TARGET_PAIRS = \
1643 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1644 a-numaux.adb<libgnat/a-numaux__x86.adb \
1645 a-numaux.ads<libgnat/a-numaux__x86.ads \
1646 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1647 s-intman.adb<libgnarl/s-intman__posix.adb \
1648 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1649 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1650 s-osprim.adb<libgnat/s-osprim__posix.adb \
1651 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1652 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1653 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1654 system.ads<libgnat/system-freebsd.ads
1655
1656 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1657
1658 EH_MECHANISM=-gcc
1659 THREADSLIB = -lpthread
1660 GNATLIB_SHARED = gnatlib-shared-dual
1661 GMEM_LIB = gmemlib
1662 LIBRARY_VERSION := $(LIB_VERSION)
1663 endif
1664
1665 # aarch64 FreeBSD
1666 ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
1667 LIBGNAT_TARGET_PAIRS = \
1668 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1669 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1670 s-intman.adb<libgnarl/s-intman__posix.adb \
1671 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1672 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1673 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1674 s-osprim.adb<libgnat/s-osprim__posix.adb \
1675 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1676 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1677 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1678 $(ATOMICS_TARGET_PAIRS) \
1679 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1680 system.ads<libgnat/system-freebsd.ads
1681
1682 GNATLIB_SHARED = gnatlib-shared-dual
1683
1684 EH_MECHANISM=-gcc
1685 THREADSLIB= -lpthread
1686 GMEM_LIB = gmemlib
1687 LIBRARY_VERSION := $(LIB_VERSION)
1688 MISCLIB = -lutil
1689 endif
1690
1691 # x86 FreeBSD
1692 ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
1693 LIBGNAT_TARGET_PAIRS = \
1694 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1695 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1696 s-intman.adb<libgnarl/s-intman__posix.adb \
1697 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1698 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1699 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1700 s-osprim.adb<libgnat/s-osprim__posix.adb \
1701 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1702 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1703 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1704 $(TRASYM_DWARF_UNIX_PAIRS) \
1705 $(ATOMICS_TARGET_PAIRS) \
1706 $(X86_TARGET_PAIRS) \
1707 system.ads<libgnat/system-freebsd.ads
1708
1709 GNATLIB_SHARED = gnatlib-shared-dual
1710
1711 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1712 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1713
1714 EH_MECHANISM=-gcc
1715 THREADSLIB= -lpthread
1716 GMEM_LIB = gmemlib
1717 LIBRARY_VERSION := $(LIB_VERSION)
1718 MISCLIB = -lutil
1719 endif
1720
1721 # x86-64 FreeBSD
1722 ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
1723 LIBGNAT_TARGET_PAIRS = \
1724 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1725 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1726 s-intman.adb<libgnarl/s-intman__posix.adb \
1727 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1728 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1729 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1730 s-osprim.adb<libgnat/s-osprim__posix.adb \
1731 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1732 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1733 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1734 $(TRASYM_DWARF_UNIX_PAIRS) \
1735 $(ATOMICS_TARGET_PAIRS) \
1736 $(X86_64_TARGET_PAIRS) \
1737 system.ads<libgnat/system-freebsd.ads
1738
1739 GNATLIB_SHARED = gnatlib-shared-dual
1740
1741 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1742 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1743
1744 EH_MECHANISM=-gcc
1745 THREADSLIB= -lpthread
1746 GMEM_LIB = gmemlib
1747 LIBRARY_VERSION := $(LIB_VERSION)
1748 MISCLIB = -lutil
1749 endif
1750
1751 # x86-64 DragonFly
1752 ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
1753 LIBGNAT_TARGET_PAIRS = \
1754 a-intnam.ads<libgnarl/a-intnam__dragonfly.ads \
1755 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1756 s-intman.adb<libgnarl/s-intman__posix.adb \
1757 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1758 s-osinte.adb<libgnarl/s-osinte__dragonfly.adb \
1759 s-osinte.ads<libgnarl/s-osinte__dragonfly.ads \
1760 s-osprim.adb<libgnat/s-osprim__posix.adb \
1761 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1762 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1763 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1764 $(ATOMICS_TARGET_PAIRS) \
1765 $(X86_64_TARGET_PAIRS) \
1766 system.ads<libgnat/system-dragonfly-x86_64.ads
1767
1768 GNATLIB_SHARED = gnatlib-shared-dual
1769
1770 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1771
1772 EH_MECHANISM=-gcc
1773 THREADSLIB= -lpthread
1774 GMEM_LIB = gmemlib
1775 LIBRARY_VERSION := $(LIB_VERSION)
1776 MISCLIB = -lutil
1777 endif
1778
1779 # S390 Linux
1780 ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
1781 LIBGNAT_TARGET_PAIRS = \
1782 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1783 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1784 s-intman.adb<libgnarl/s-intman__posix.adb \
1785 s-linux.ads<libgnarl/s-linux.ads \
1786 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1787 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1788 s-osprim.adb<libgnat/s-osprim__posix.adb \
1789 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1790 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1791 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1792 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
1793 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1794 system.ads<libgnat/system-linux-s390.ads
1795
1796 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1797
1798 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1799 EH_MECHANISM=-gcc
1800 THREADSLIB = -lpthread
1801 GNATLIB_SHARED = gnatlib-shared-dual
1802 LIBRARY_VERSION := $(LIB_VERSION)
1803 endif
1804
1805 # HP/PA HP-UX 10
1806 ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),)
1807 LIBGNAT_TARGET_PAIRS = \
1808 a-excpol.adb<libgnat/a-excpol__abort.adb \
1809 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1810 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1811 s-interr.adb<libgnarl/s-interr__sigaction.adb \
1812 s-intman.adb<libgnarl/s-intman__posix.adb \
1813 s-osinte.adb<libgnarl/s-osinte__hpux-dce.adb \
1814 s-osinte.ads<libgnarl/s-osinte__hpux-dce.ads \
1815 s-parame.ads<libgnat/s-parame__hpux.ads \
1816 s-osprim.adb<libgnat/s-osprim__posix.adb \
1817 s-taprop.adb<libgnarl/s-taprop__hpux-dce.adb \
1818 s-taspri.ads<libgnarl/s-taspri__hpux-dce.ads \
1819 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1820 system.ads<libgnat/system-hpux.ads
1821
1822 EH_MECHANISM=-gcc
1823 endif
1824
1825 # HP/PA HP-UX 11
1826 ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),)
1827 LIBGNAT_TARGET_PAIRS = \
1828 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1829 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1830 s-intman.adb<libgnarl/s-intman__posix.adb \
1831 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1832 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
1833 s-parame.ads<libgnat/s-parame__hpux.ads \
1834 s-osprim.adb<libgnat/s-osprim__posix.adb \
1835 s-traceb.adb<libgnat/s-traceb__hpux.adb \
1836 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1837 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1838 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1839 system.ads<libgnat/system-hpux.ads
1840
1841 EH_MECHANISM=-gcc
1842 TGT_LIB = /usr/lib/libcl.a
1843 THREADSLIB = -lpthread
1844 GMEM_LIB = gmemlib
1845 soext = .sl
1846 SO_OPTS = -Wl,+h,
1847 GNATLIB_SHARED = gnatlib-shared-dual
1848 LIBRARY_VERSION := $(LIB_VERSION)
1849 endif
1850
1851 # IBM AIX
1852 ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),)
1853 LIBGNAT_TARGET_PAIRS = \
1854 a-intnam.ads<libgnarl/a-intnam__aix.ads \
1855 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1856 s-intman.adb<libgnarl/s-intman__posix.adb \
1857 s-osinte.adb<libgnarl/s-osinte__aix.adb \
1858 s-osinte.ads<libgnarl/s-osinte__aix.ads \
1859 s-osprim.adb<libgnat/s-osprim__posix.adb \
1860 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1861 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1862 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1863 $(TRASYM_DWARF_UNIX_PAIRS) \
1864 $(ATOMICS_TARGET_PAIRS) \
1865 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1866 system.ads<libgnat/system-aix.ads
1867
1868 ifneq ($(target_os),)
1869 ifeq ($(findstring ppc64, \
1870 $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \
1871 -print-multi-os-directory)), \
1872 ppc64)
1873 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-aix.adb
1874 else
1875 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1876 endif
1877 endif
1878
1879 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1880
1881 THREADSLIB = -lpthreads
1882 EH_MECHANISM=-gcc
1883
1884 GMEM_LIB = gmemlib
1885 endif
1886
1887 # LynxOS 178 and LynxOS 178 Elf
1888 ifeq ($(strip $(filter-out lynxos178%,$(target_os))),)
1889 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1890
1891 LIBGNAT_TARGET_PAIRS = \
1892 a-intnam.ads<libgnarl/a-intnam__lynxos.ads \
1893 g-soliop.ads<libgnat/g-soliop__lynxos.ads \
1894 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1895 s-intman.adb<libgnarl/s-intman__lynxos.adb \
1896 s-osinte.adb<libgnarl/s-osinte__lynxos178.adb \
1897 s-osprim.ads<libgnat/s-osprim__lynxos.ads \
1898 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1899 s-taspri.ads<libgnarl/s-taspri__lynxos.ads \
1900 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
1901
1902 ifeq ($(strip $(filter-out powerpc%, $(target_cpu))),)
1903 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-ppc.ads
1904 endif
1905 ifeq ($(strip $(filter-out %86, $(target_cpu))),)
1906 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-x86.ads
1907 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1908 endif
1909
1910 ifeq ($(strip $(filter-out lynxos178e,$(target_os))),)
1911 LIBGNAT_TARGET_PAIRS += \
1912 s-osinte.ads<libgnarl/s-osinte__lynxos178e.ads \
1913 s-osprim.adb<libgnat/s-osprim__posix2008.adb \
1914 s-tracon.adb<hie/s-tracon__ppc-eabi.adb
1915 endif
1916
1917 EH_MECHANISM=-gcc
1918 endif
1919
1920 # RTEMS
1921 ifeq ($(strip $(filter-out rtems%,$(target_os))),)
1922 LIBGNAT_TARGET_PAIRS = \
1923 system.ads<libgnat/system-rtems.ads \
1924 a-intnam.ads<libgnarl/a-intnam__rtems.ads \
1925 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1926 s-intman.adb<libgnarl/s-intman__posix.adb \
1927 s-osinte.adb<libgnarl/s-osinte__rtems.adb \
1928 s-osinte.ads<libgnarl/s-osinte__rtems.ads \
1929 s-osprim.adb<libgnat/s-osprim__rtems.adb \
1930 s-parame.adb<libgnat/s-parame__rtems.adb \
1931 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1932 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1933 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1934 s-stchop.adb<libgnat/s-stchop__rtems.adb \
1935 s-interr.adb<libgnarl/s-interr__hwint.adb
1936 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1937 EH_MECHANISM=-arm
1938 else
1939 EH_MECHANISM=-gcc
1940 endif
1941 endif
1942
1943 # PikeOS
1944 ifeq ($(strip $(filter-out powerpc% %86 sysgo pikeos,$(target_cpu) $(target_vendor) $(target_os)))),)
1945 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1946 endif
1947
1948 # *-elf, *-eabi, or *-eabispe
1949 ifeq ($(strip $(filter-out elf eabi eabispe,$(target_os))),)
1950 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1951 endif
1952
1953 ifeq ($(strip $(filter-out %djgpp,$(target_os))),)
1954 GNATRTL_SOCKETS_OBJS =
1955
1956 LIBGNAT_TARGET_PAIRS = \
1957 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
1958 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
1959 s-intman.adb<libgnarl/s-intman__dummy.adb \
1960 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
1961 s-osprim.adb<libgnat/s-osprim__unix.adb \
1962 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
1963 s-taspri.ads<libgnarl/s-taspri__dummy.ads \
1964 system.ads<libgnat/system-djgpp.ads \
1965 $(DUMMY_SOCKETS_TARGET_PAIRS)
1966
1967 EH_MECHANISM=-gcc
1968 endif
1969
1970 # Cygwin/Mingw32
1971 ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),)
1972 # Cygwin provides a full Posix environment, and so we use the default
1973 # versions g-socthi rather than the Windows-specific MinGW version.
1974 # Ideally we would use all the default versions for Cygwin and none
1975 # of the MinGW versions, but for historical reasons the Cygwin port
1976 # has always been a CygMing frankenhybrid and it is a long-term project
1977 # to disentangle them.
1978 ifeq ($(strip $(filter-out cygwin%,$(target_os))),)
1979 LIBGNAT_TARGET_PAIRS = \
1980 g-socthi.ads<libgnat/g-socthi.ads \
1981 g-socthi.adb<libgnat/g-socthi.adb
1982 else
1983 LIBGNAT_TARGET_PAIRS = \
1984 g-socthi.ads<libgnat/g-socthi__mingw.ads \
1985 g-socthi.adb<libgnat/g-socthi__mingw.adb
1986 endif
1987 LIBGNAT_TARGET_PAIRS += \
1988 a-dirval.adb<libgnat/a-dirval__mingw.adb \
1989 a-excpol.adb<libgnat/a-excpol__abort.adb \
1990 s-gloloc.adb<libgnat/s-gloloc__mingw.adb \
1991 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
1992 s-taspri.ads<libgnarl/s-taspri__mingw.ads \
1993 s-tasinf.adb<libgnarl/s-tasinf__mingw.adb \
1994 s-tasinf.ads<libgnarl/s-tasinf__mingw.ads \
1995 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1996 g-soliop.ads<libgnat/g-soliop__mingw.ads \
1997 $(ATOMICS_TARGET_PAIRS) \
1998 system.ads<libgnat/system-mingw.ads
1999
2000 LIBGNAT_TARGET_PAIRS += \
2001 a-exetim.adb<libgnarl/a-exetim__mingw.adb \
2002 a-exetim.ads<libgnarl/a-exetim__mingw.ads \
2003 a-intnam.ads<libgnarl/a-intnam__mingw.ads \
2004 g-sercom.adb<libgnat/g-sercom__mingw.adb \
2005 $(TRASYM_DWARF_MINGW_PAIRS) \
2006 s-tsmona.adb<libgnat/s-tsmona__mingw.adb \
2007 s-interr.adb<libgnarl/s-interr__sigaction.adb \
2008 s-intman.adb<libgnarl/s-intman__mingw.adb \
2009 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2010 s-osinte.ads<libgnarl/s-osinte__mingw.ads \
2011 s-osprim.adb<libgnat/s-osprim__mingw.adb \
2012 s-taprop.adb<libgnarl/s-taprop__mingw.adb
2013
2014 ifeq ($(strip $(filter-out x86_64%,$(target_cpu))),)
2015 ifeq ($(strip $(MULTISUBDIR)),/32)
2016 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2017 SO_OPTS= -m32 -Wl,-soname,
2018 else
2019 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2020 SO_OPTS = -m64 -Wl,-soname,
2021 endif
2022 else
2023 ifeq ($(strip $(MULTISUBDIR)),/64)
2024 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2025 SO_OPTS = -m64 -Wl,-soname,
2026 else
2027 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2028 SO_OPTS = -m32 -Wl,-soname,
2029 endif
2030 endif
2031
2032 EXTRA_GNATRTL_NONTASKING_OBJS += \
2033 s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o
2034 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_MINGW_OBJS)
2035 EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
2036 EXTRA_LIBGNAT_SRCS+=mingw32.h
2037 MISCLIB = -lws2_32
2038
2039 # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
2040 # auto-import support for array/record will be done.
2041 GNATLIB_SHARED = gnatlib-shared-win32
2042
2043 EH_MECHANISM=-gcc
2044
2045 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2046
2047 GMEM_LIB = gmemlib
2048 EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
2049 EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o
2050 soext = .dll
2051 LIBRARY_VERSION := $(LIB_VERSION)
2052 endif
2053
2054 # Mips Linux
2055 ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
2056 LIBGNAT_TARGET_PAIRS = \
2057 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2058 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2059 s-intman.adb<libgnarl/s-intman__posix.adb \
2060 s-linux.ads<libgnarl/s-linux__mips.ads \
2061 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2062 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2063 s-osprim.adb<libgnat/s-osprim__posix.adb \
2064 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2065 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2066 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2067 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2068 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2069 g-sercom.adb<libgnat/g-sercom__linux.adb \
2070 system.ads<libgnat/system-linux-mips.ads
2071
2072 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2073
2074 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2075 EH_MECHANISM=-gcc
2076 THREADSLIB = -lpthread
2077 GNATLIB_SHARED = gnatlib-shared-dual
2078 GMEM_LIB = gmemlib
2079 LIBRARY_VERSION := $(LIB_VERSION)
2080 endif
2081
2082 # PowerPC and e500v2 Linux
2083 ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
2084 LIBGNAT_TARGET_PAIRS_COMMON = \
2085 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2086 a-exetim.ads<libgnarl/a-exetim__default.ads \
2087 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2088 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2089 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2090 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2091 s-intman.adb<libgnarl/s-intman__posix.adb \
2092 s-linux.ads<libgnarl/s-linux.ads \
2093 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2094 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2095 g-sercom.adb<libgnat/g-sercom__linux.adb \
2096 $(TRASYM_DWARF_UNIX_PAIRS) \
2097 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2098 $(ATOMICS_TARGET_PAIRS) \
2099 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2100 system.ads<libgnat/system-linux-ppc.ads
2101
2102 LIBGNAT_TARGET_PAIRS = \
2103 $(LIBGNAT_TARGET_PAIRS_COMMON) \
2104 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2105 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2106 s-osprim.adb<libgnat/s-osprim__posix.adb \
2107 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2108 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2109 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2110 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads
2111
2112 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2113
2114 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2115 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2116
2117 EH_MECHANISM=-gcc
2118 THREADSLIB = -lpthread -lrt
2119 GNATLIB_SHARED = gnatlib-shared-dual
2120 MISCLIB = -ldl
2121 GMEM_LIB = gmemlib
2122 LIBRARY_VERSION := $(LIB_VERSION)
2123 endif
2124
2125 # ARM linux, GNU eabi
2126 ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
2127 LIBGNAT_TARGET_PAIRS = \
2128 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2129 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2130 s-intman.adb<libgnarl/s-intman__posix.adb \
2131 s-linux.ads<libgnarl/s-linux.ads \
2132 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2133 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2134 s-osprim.adb<libgnat/s-osprim__posix.adb \
2135 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2136 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2137 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2138 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2139 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2140 $(ATOMICS_TARGET_PAIRS) \
2141 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2142 system.ads<libgnat/system-linux-arm.ads
2143
2144 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2145
2146 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2147 EH_MECHANISM=-arm
2148 THREADSLIB = -lpthread
2149 GNATLIB_SHARED = gnatlib-shared-dual
2150 GMEM_LIB = gmemlib
2151 LIBRARY_VERSION := $(LIB_VERSION)
2152 endif
2153
2154 # AArch64 Linux
2155 ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
2156 LIBGNAT_TARGET_PAIRS = \
2157 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2158 a-exetim.ads<libgnarl/a-exetim__default.ads \
2159 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2160 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2161 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2162 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2163 s-intman.adb<libgnarl/s-intman__posix.adb \
2164 s-linux.ads<libgnarl/s-linux.ads \
2165 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2166 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2167 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2168 s-osprim.adb<libgnat/s-osprim__posix.adb \
2169 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2170 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2171 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2172 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2173 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2174 g-sercom.adb<libgnat/g-sercom__linux.adb \
2175 $(ATOMICS_TARGET_PAIRS) \
2176 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2177 system.ads<libgnat/system-linux-arm.ads
2178
2179 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2180
2181 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2182 EH_MECHANISM=-gcc
2183 THREADSLIB=-lpthread -lrt
2184 GNATLIB_SHARED=gnatlib-shared-dual
2185 GMEM_LIB = gmemlib
2186 LIBRARY_VERSION := $(LIB_VERSION)
2187 endif
2188
2189 # Sparc Linux
2190 ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
2191 LIBGNAT_TARGET_PAIRS = \
2192 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2193 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2194 s-intman.adb<libgnarl/s-intman__posix.adb \
2195 s-linux.ads<libgnarl/s-linux__sparc.ads \
2196 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2197 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2198 s-osprim.adb<libgnat/s-osprim__posix.adb \
2199 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2200 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2201 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2202 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2203 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2204 system.ads<libgnat/system-linux-sparc.ads
2205
2206 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2207
2208 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2209 EH_MECHANISM=-gcc
2210 THREADSLIB = -lpthread
2211 GNATLIB_SHARED = gnatlib-shared-dual
2212 GMEM_LIB = gmemlib
2213 LIBRARY_VERSION := $(LIB_VERSION)
2214 endif
2215
2216 # HP/PA Linux
2217 ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),)
2218 LIBGNAT_TARGET_PAIRS = \
2219 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2220 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2221 s-intman.adb<libgnarl/s-intman__posix.adb \
2222 s-linux.ads<libgnarl/s-linux__hppa.ads \
2223 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2224 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2225 s-osprim.adb<libgnat/s-osprim__posix.adb \
2226 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2227 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2228 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2229 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2230 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2231 system.ads<libgnat/system-linux-hppa.ads
2232
2233 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2234
2235 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2236 EH_MECHANISM=-gcc
2237 THREADSLIB = -lpthread
2238 GNATLIB_SHARED = gnatlib-shared-dual
2239 GMEM_LIB = gmemlib
2240 LIBRARY_VERSION := $(LIB_VERSION)
2241 endif
2242
2243 # M68K Linux
2244 ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),)
2245 LIBGNAT_TARGET_PAIRS = \
2246 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2247 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2248 s-intman.adb<libgnarl/s-intman__posix.adb \
2249 s-linux.ads<libgnarl/s-linux.ads \
2250 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2251 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2252 s-osprim.adb<libgnat/s-osprim__posix.adb \
2253 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2254 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2255 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2256 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2257 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2258 system.ads<libgnat/system-linux-m68k.ads
2259
2260 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2261
2262 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2263 EH_MECHANISM=-gcc
2264 THREADSLIB = -lpthread
2265 GNATLIB_SHARED = gnatlib-shared-dual
2266 GMEM_LIB = gmemlib
2267 LIBRARY_VERSION := $(LIB_VERSION)
2268 endif
2269
2270 # SH4 Linux
2271 ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),)
2272 LIBGNAT_TARGET_PAIRS = \
2273 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2274 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2275 s-intman.adb<libgnarl/s-intman__posix.adb \
2276 s-linux.ads<libgnarl/s-linux.ads \
2277 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2278 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2279 s-osprim.adb<libgnat/s-osprim__posix.adb \
2280 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2281 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2282 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2283 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2284 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2285 system.ads<libgnat/system-linux-sh4.ads
2286
2287 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb
2288
2289 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2290 EH_MECHANISM=-gcc
2291 MISCLIB=
2292 THREADSLIB = -lpthread
2293 GNATLIB_SHARED = gnatlib-shared-dual
2294 GMEM_LIB = gmemlib
2295 LIBRARY_VERSION := $(LIB_VERSION)
2296 endif
2297
2298 # IA64 Linux
2299 ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
2300 LIBGNAT_TARGET_PAIRS = \
2301 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2302 a-exetim.ads<libgnarl/a-exetim__default.ads \
2303 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2304 a-numaux.ads<libgnat/a-numaux__libc-x86.ads \
2305 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2306 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2307 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2308 s-intman.adb<libgnarl/s-intman__posix.adb \
2309 s-linux.ads<libgnarl/s-linux.ads \
2310 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2311 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2312 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2313 s-osprim.adb<libgnat/s-osprim__posix.adb \
2314 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2315 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2316 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2317 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2318 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2319 g-sercom.adb<libgnat/g-sercom__linux.adb \
2320 $(TRASYM_DWARF_UNIX_PAIRS) \
2321 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2322 $(ATOMICS_TARGET_PAIRS) \
2323 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2324 system.ads<libgnat/system-linux-ia64.ads
2325
2326 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2327
2328 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2329 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2330 EH_MECHANISM=-gcc
2331 THREADSLIB=-lpthread -lrt
2332 GNATLIB_SHARED=gnatlib-shared-dual
2333 MISCLIB = -ldl
2334 GMEM_LIB = gmemlib
2335 LIBRARY_VERSION := $(LIB_VERSION)
2336 endif
2337
2338 # IA64 HP-UX
2339 ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(target_os))),)
2340 LIBGNAT_TARGET_PAIRS = \
2341 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
2342 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2343 s-intman.adb<libgnarl/s-intman__posix.adb \
2344 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2345 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
2346 s-osprim.adb<libgnat/s-osprim__posix.adb \
2347 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2348 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2349 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2350 $(TRASYM_DWARF_UNIX_PAIRS) \
2351 $(ATOMICS_TARGET_PAIRS) \
2352 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2353 system.ads<libgnat/system-hpux-ia64.ads
2354
2355 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2356
2357 MISCLIB=
2358 EH_MECHANISM=-gcc
2359 THREADSLIB=-lpthread
2360 GNATLIB_SHARED=gnatlib-shared-dual
2361 GMEM_LIB = gmemlib
2362 soext = .so
2363 SO_OPTS = -Wl,+h,
2364 LIBRARY_VERSION := $(LIB_VERSION)
2365 endif
2366
2367 # Alpha Linux
2368 ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
2369 LIBGNAT_TARGET_PAIRS = \
2370 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2371 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2372 s-intman.adb<libgnarl/s-intman__posix.adb \
2373 s-linux.ads<libgnarl/s-linux__alpha.ads \
2374 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2375 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2376 s-osprim.adb<libgnat/s-osprim__posix.adb \
2377 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2378 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2379 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2380 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2381 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2382 $(ATOMICS_TARGET_PAIRS) \
2383 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2384 system.ads<libgnat/system-linux-alpha.ads
2385
2386 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2387
2388 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2389 EH_MECHANISM=-gcc
2390 MISCLIB=
2391 THREADSLIB=-lpthread
2392 GNATLIB_SHARED=gnatlib-shared-dual
2393 LIBRARY_VERSION := $(LIB_VERSION)
2394 endif
2395
2396 # x86-64 Linux
2397 ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
2398 LIBGNAT_TARGET_PAIRS = \
2399 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2400 a-exetim.ads<libgnarl/a-exetim__default.ads \
2401 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2402 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2403 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2404 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2405 s-intman.adb<libgnarl/s-intman__posix.adb \
2406 s-linux.ads<libgnarl/s-linux.ads \
2407 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2408 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2409 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2410 s-osprim.adb<libgnat/s-osprim__posix.adb \
2411 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2412 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2413 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2414 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2415 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2416 g-sercom.adb<libgnat/g-sercom__linux.adb \
2417 $(TRASYM_DWARF_UNIX_PAIRS) \
2418 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2419 $(ATOMICS_TARGET_PAIRS) \
2420 $(X86_64_TARGET_PAIRS) \
2421 system.ads<libgnat/system-linux-x86.ads
2422
2423 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2424
2425 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2426 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2427 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2428
2429 EH_MECHANISM=-gcc
2430 THREADSLIB=-lpthread -lrt
2431 MISCLIB = -ldl
2432 GNATLIB_SHARED=gnatlib-shared-dual
2433 GMEM_LIB = gmemlib
2434 LIBRARY_VERSION := $(LIB_VERSION)
2435
2436 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
2437 endif
2438
2439 ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
2440 LIBGNAT_TARGET_PAIRS = \
2441 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2442 a-exetim.ads<libgnarl/a-exetim__default.ads \
2443 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2444 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2445 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2446 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2447 s-intman.adb<libgnarl/s-intman__posix.adb \
2448 s-linux.ads<libgnarl/s-linux__x32.ads \
2449 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2450 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2451 s-osinte.adb<libgnarl/s-osinte__x32.adb \
2452 s-osprim.adb<libgnat/s-osprim__x32.adb \
2453 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2454 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2455 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2456 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2457 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2458 g-sercom.adb<libgnat/g-sercom__linux.adb \
2459 $(ATOMICS_TARGET_PAIRS) \
2460 $(X86_64_TARGET_PAIRS) \
2461 system.ads<libgnat/system-linux-x86.ads
2462
2463 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2464
2465 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2466 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2467 EH_MECHANISM=-gcc
2468 THREADSLIB=-lpthread -lrt
2469 GNATLIB_SHARED=gnatlib-shared-dual
2470 GMEM_LIB = gmemlib
2471 LIBRARY_VERSION := $(LIB_VERSION)
2472 endif
2473
2474 # RISC-V Linux
2475 ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),)
2476 LIBGNAT_TARGET_PAIRS = \
2477 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2478 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2479 s-intman.adb<libgnarl/s-intman__posix.adb \
2480 s-linux.ads<libgnarl/s-linux__riscv.ads \
2481 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2482 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2483 s-osprim.adb<libgnat/s-osprim__posix.adb \
2484 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2485 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2486 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2487 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2488 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2489 g-sercom.adb<libgnat/g-sercom__linux.adb \
2490 system.ads<libgnat/system-linux-riscv.ads
2491
2492 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2493
2494 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2495 EH_MECHANISM=-gcc
2496 THREADSLIB = -lpthread
2497 GNATLIB_SHARED = gnatlib-shared-dual
2498 GMEM_LIB = gmemlib
2499 LIBRARY_VERSION := $(LIB_VERSION)
2500 endif
2501
2502 # Darwin (Mac OS X)
2503 ifeq ($(strip $(filter-out darwin%,$(target_os))),)
2504 SO_OPTS = -shared-libgcc
2505 LIBGNAT_TARGET_PAIRS = \
2506 a-intnam.ads<libgnarl/a-intnam__darwin.ads \
2507 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2508 s-osinte.adb<libgnarl/s-osinte__darwin.adb \
2509 s-osinte.ads<libgnarl/s-osinte__darwin.ads \
2510 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2511 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2512 g-sercom.adb<libgnat/g-sercom__linux.adb \
2513 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
2514
2515 ifeq ($(strip $(filter-out %86,$(target_cpu))),)
2516 LIBGNAT_TARGET_PAIRS += \
2517 s-intman.adb<libgnarl/s-intman__susv3.adb \
2518 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2519 $(ATOMICS_TARGET_PAIRS) \
2520 system.ads<libgnat/system-darwin-x86.ads
2521
2522 ifeq ($(strip $(MULTISUBDIR)),/x86_64)
2523 SO_OPTS += -m64
2524 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2525 else
2526 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2527 endif
2528
2529 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2530 endif
2531
2532 ifeq ($(strip $(filter-out %x86_64,$(target_cpu))),)
2533 LIBGNAT_TARGET_PAIRS += \
2534 s-intman.adb<libgnarl/s-intman__susv3.adb \
2535 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2536 a-exetim.ads<libgnarl/a-exetim__default.ads \
2537 a-exetim.adb<libgnarl/a-exetim__darwin.adb \
2538 $(ATOMICS_TARGET_PAIRS) \
2539 system.ads<libgnat/system-darwin-x86.ads
2540
2541 ifeq ($(strip $(MULTISUBDIR)),/i386)
2542 SO_OPTS += -m32
2543 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2544 else
2545 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2546 endif
2547
2548 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2549 EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o
2550 endif
2551
2552 ifeq ($(strip $(filter-out powerpc%,$(target_cpu))),)
2553 LIBGNAT_TARGET_PAIRS += \
2554 s-intman.adb<libgnarl/s-intman__posix.adb \
2555 s-osprim.adb<libgnat/s-osprim__posix.adb \
2556 a-numaux.ads<libgnat/a-numaux__darwin.ads \
2557 a-numaux.adb<libgnat/a-numaux__darwin.adb \
2558 $(ATOMICS_TARGET_PAIRS) \
2559 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2560 system.ads<libgnat/system-darwin-ppc.ads
2561
2562 ifeq ($(strip $(MULTISUBDIR)),/ppc64)
2563 SO_OPTS += -m64
2564 endif
2565 endif
2566
2567 ifeq ($(strip $(filter-out arm,$(target_cpu))),)
2568 LIBGNAT_TARGET_PAIRS += \
2569 s-intman.adb<libgnarl/s-intman__susv3.adb \
2570 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2571 $(ATOMICS_TARGET_PAIRS) \
2572 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2573
2574 LIBGNAT_TARGET_PAIRS += \
2575 system.ads<libgnat/system-darwin-arm.ads
2576 endif
2577
2578 ifeq ($(strip $(filter-out arm64 aarch64,$(target_cpu))),)
2579 LIBGNAT_TARGET_PAIRS += \
2580 s-intman.adb<libgnarl/s-intman__susv3.adb \
2581 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2582 $(ATOMICS_TARGET_PAIRS) \
2583 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2584
2585 EXTRA_LIBGNAT_OBJS+=sigtramp-ios.o
2586 EXTRA_LIBGNAT_SRCS+=sigtramp.h
2587 LIBGNAT_TARGET_PAIRS += \
2588 system.ads<libgnat/system-darwin-arm.ads
2589 endif
2590
2591 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-darwin.adb
2592
2593 EH_MECHANISM=-gcc
2594 GNATLIB_SHARED = gnatlib-shared-darwin
2595 GMEM_LIB = gmemlib
2596 LIBRARY_VERSION := $(LIB_VERSION)
2597 soext = .dylib
2598 GCC_LINK_FLAGS=-static-libstdc++
2599 endif
2600
2601 ifeq ($(EH_MECHANISM),-gcc)
2602 LIBGNAT_TARGET_PAIRS += \
2603 s-excmac.ads<libgnat/s-excmac__gcc.ads \
2604 s-excmac.adb<libgnat/s-excmac__gcc.adb
2605 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2606 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2607 endif
2608
2609 ifeq ($(EH_MECHANISM),-arm)
2610 LIBGNAT_TARGET_PAIRS += \
2611 s-excmac.ads<libgnat/s-excmac__arm.ads \
2612 s-excmac.adb<libgnat/s-excmac__arm.adb
2613 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2614 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2615 endif
2616
2617 # LIBGNAT_SRCS is the list of all C files (including headers) of the runtime
2618 # library. LIBGNAT_OBJS is the list of object files for libgnat.
2619 # thread.c is special as put into GNATRTL_TASKING_OBJS
2620 LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o \
2621 cal.o cio.o cstreams.o ctrl_c.o \
2622 env.o errno.o exit.o expect.o final.o rtfinal.o rtinit.o \
2623 init.o initialize.o locales.o mkdir.o \
2624 raise.o seh_init.o socket.o sysdep.o \
2625 targext.o terminals.o tracebak.o \
2626 $(EXTRA_LIBGNAT_OBJS)
2627
2628 # NOTE ??? - when the -I option for compiling Ada code is made to work,
2629 # the library installation will change and there will be a
2630 # GNAT_RTL_SRCS. Right now we count on being able to build GNATRTL_OBJS
2631 # from ADA_INCLUDE_SRCS.
2632
2633 LIBGNAT_SRCS = $(patsubst %.o,%.c,$(LIBGNAT_OBJS)) \
2634 adadecode.h adaint.h env.h gsocket.h raise.h standard.ads.h \
2635 tb-gcc.c libgnarl/thread.c $(EXTRA_LIBGNAT_SRCS)
2636
2637 # memtrack.o is special as not put into libgnat.
2638 GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \
2639 memtrack.o
2640
2641 # Run time source files
2642 # Note that libgnat contains a significant number of files. In orde to avoid
2643 # command line length limitations the source regexp has been split for that
2644 # directory.
2645 ADA_INCLUDE_SRCS =\
2646 libgnat/ada.ads libgnat/calendar.ads libgnat/directio.ads libgnat/gnat.ads libgnat/interfac.ads libgnat/ioexcept.ads \
2647 libgnat/machcode.ads libgnat/text_io.ads libgnat/unchconv.ads libgnat/unchdeal.ads \
2648 libgnat/sequenio.ads libgnat/system.ads Makefile.adalib libgnat/memtrack.adb \
2649 libgnat/a-[a-o]*.adb libgnat/a-[a-o]*.ads \
2650 libgnat/a-[p-z]*.adb libgnat/a-[p-z]*.ads \
2651 libgnat/g-[a-o]*.adb libgnat/g-[a-o]*.ads \
2652 libgnat/g-[p-z]*.adb libgnat/g-[p-z]*.ads \
2653 libgnat/s-[a-o]*.adb libgnat/s-[a-o]*.ads \
2654 libgnat/s-[p-z]*.adb libgnat/s-[p-z]*.ads \
2655 libgnat/i-[a-o]*.adb libgnat/i-[a-o]*.ads \
2656 libgnat/i-[p-z]*.adb libgnat/i-[p-z]*.ads \
2657 libgnarl/[agis]-[a-z]*.ad[sb]
2658
2659
2660 # Files that are in ADA_INCLUDE_SRCS but not in all configurations.
2661 # They will be removed from the run time if not used.
2662 ADA_EXCLUDE_SRCS =\
2663 g-allein.ads g-alleve.adb g-alleve.ads g-altcon.adb g-altcon.ads \
2664 g-altive.ads g-alveop.adb g-alveop.ads g-alvety.ads g-alvevi.ads \
2665 g-intpri.ads g-regist.adb g-regist.ads g-sse.ads g-ssvety.ads \
2666 i-vxinco.adb i-vxinco.ads i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \
2667 s-bb.ads s-bbbosu.ads s-bbcaco.ads s-bbcppr.ads s-bbexti.adb \
2668 s-bbexti.ads s-bbinte.adb s-bbinte.ads s-bbprot.adb s-bbprot.ads \
2669 s-bbsle3.ads s-bbsuer.ads s-bbsule.ads s-bbthqu.adb s-bbthqu.ads \
2670 s-bbthre.adb s-bbthre.ads s-bbtiev.adb s-bbtiev.ads s-bbtime.adb \
2671 s-bbtime.ads s-bcprmu.adb s-bcprmu.ads s-btstch.adb s-btstch.ads \
2672 s-gcc.adb s-gcc.ads s-gccdiv.adb s-gccdiv.ads \
2673 s-gccshi.adb s-gccshi.ads \
2674 s-init.ads s-init.adb s-linux.ads s-macres.ads \
2675 s-memcom.adb s-memcom.ads s-memmov.adb s-memmov.ads s-memset.adb \
2676 s-memset.ads s-mufalo.adb s-mufalo.ads s-musplo.adb s-musplo.ads \
2677 s-sam4.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb s-sopco4.ads \
2678 s-sopco5.adb s-sopco5.ads s-stchop.ads s-stchop.adb s-stm32.ads \
2679 s-strcom.adb s-strcom.ads s-thread.ads \
2680 s-vxwext.adb s-vxwext.ads \
2681 s-win32.ads s-winext.ads
2682
2683 # ADA_EXCLUDE_SRCS without the sources used by the target
2684 ADA_EXCLUDE_FILES=$(filter-out \
2685 $(patsubst %$(objext),%.ads,$(GNATRTL_OBJS)) \
2686 $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \
2687 $(ADA_EXCLUDE_SRCS))
2688
2689 setup-rts: force
2690 $(RMDIR) $(RTSDIR)
2691 $(MKDIR) $(RTSDIR)
2692 $(CHMOD) u+w $(RTSDIR)
2693 # Copy target independent sources
2694 $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS), \
2695 $(LN_S) $(GNAT_SRC)/$(f) $(RTSDIR) ;) true
2696 # Remove files not used
2697 $(RM) $(patsubst %,$(RTSDIR)/%,$(ADA_EXCLUDE_FILES))
2698 # Remove files to be replaced by target dependent sources
2699 $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2700 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR))))
2701 for f in $(RTSDIR)/*-*__*.ads $(RTSDIR)/*-*__*.adb; do \
2702 case "$$f" in \
2703 $(RTSDIR)/s-stratt__*) ;; \
2704 *) $(RM) $$f ;; \
2705 esac; \
2706 done
2707 # Copy new target dependent sources
2708 $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2709 $(LN_S) $(GNAT_SRC)/$(word 2,$(subst <, ,$(PAIR))) \
2710 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));)
2711
2712 # Special flags
2713
2714 # force no sibling call optimization on s-traceb.o so the number of stack
2715 # frames to be skipped when computing a call chain is not modified by
2716 # optimization. We don't want inlining, either.
2717
2718 s-traceb.o : s-traceb.adb s-traceb.ads
2719 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \
2720 $(NO_INLINE_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) $< \
2721 $(OUTPUT_OPTION)
2722
2723 # compile s-tasdeb.o without optimization and with debug info so that it is
2724 # always possible to set conditional breakpoints on tasks.
2725
2726 s-tasdeb.o : s-tasdeb.adb s-tasdeb.ads
2727 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \
2728 $< $(OUTPUT_OPTION)
2729
2730 # force no function reordering on a-except.o because of the exclusion bounds
2731 # mechanism (see the source file for more detailed information).
2732 # force debugging information on a-except.o so that it is always
2733 # possible to set conditional breakpoints on exceptions.
2734 # use -O1 otherwise gdb isn't able to get a full backtrace on mips targets.
2735
2736 a-except.o : a-except.adb a-except.ads
2737 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \
2738 $(NO_INLINE_ADAFLAGS) $(NO_REORDER_ADAFLAGS) -O1 $(ADA_INCLUDES) \
2739 $< $(OUTPUT_OPTION)
2740
2741 # compile s-excdeb.o without optimization and with debug info to let the
2742 # debugger set breakpoints and inspect subprogram parameters on exception
2743 # related events.
2744
2745 s-excdeb.o : s-excdeb.adb s-excdeb.ads s-except.ads
2746 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 \
2747 $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
2748
2749 # force debugging information on s-assert.o so that it is always
2750 # possible to set breakpoint on assert failures.
2751
2752 s-assert.o : s-assert.adb s-assert.ads
2753 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
2754 $< $(OUTPUT_OPTION)
2755
2756 # force debugging information on a-tags.o so that the debugger can find
2757 # the description of Ada.Tags.Type_Specific_Data.
2758
2759 a-tags.o : a-tags.adb a-tags.ads
2760 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
2761 $< $(OUTPUT_OPTION)
2762
2763 # force no sibling call optimization on s-memory.o to avoid turning the
2764 # tail recursion in Alloc into a loop that confuses branch prediction.
2765
2766 s-memory.o : s-memory.adb s-memory.ads
2767 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) \
2768 $< $(OUTPUT_OPTION)