preprocessor: Create the parser before handling command-line includes [PR115312]
[official-gcc.git] / gcc / config / rs6000 / t-rs6000
blobb3ce09d523be039d73d4eaec9651058a33660d6e
1 # General rules that all rs6000/ targets must have.
3 # Copyright (C) 1995-2024 Free Software Foundation, Inc.
5 # This file is part of GCC.
7 # GCC is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3, or (at your option)
10 # any later version.
12 # GCC is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with GCC; see the file COPYING3.  If not see
19 # <http://www.gnu.org/licenses/>.
21 TM_H += $(srcdir)/config/rs6000/rs6000-cpus.def
22 TM_H += $(srcdir)/config/rs6000/rs6000-modes.h
23 PASSES_EXTRA += $(srcdir)/config/rs6000/rs6000-passes.def
24 EXTRA_GTYPE_DEPS += rs6000-builtins.h
26 rs6000-pcrel-opt.o: $(srcdir)/config/rs6000/rs6000-pcrel-opt.cc
27         $(COMPILE) $<
28         $(POSTCOMPILE)
30 rs6000-string.o: $(srcdir)/config/rs6000/rs6000-string.cc
31         $(COMPILE) $<
32         $(POSTCOMPILE)
34 rs6000-p8swap.o: $(srcdir)/config/rs6000/rs6000-p8swap.cc
35         $(COMPILE) $<
36         $(POSTCOMPILE)
38 rs6000-d.o: $(srcdir)/config/rs6000/rs6000-d.cc
39         $(COMPILE) $<
40         $(POSTCOMPILE)
42 rs6000-logue.o: $(srcdir)/config/rs6000/rs6000-logue.cc
43         $(COMPILE) $<
44         $(POSTCOMPILE)
46 rs6000-builtin.o: $(srcdir)/config/rs6000/rs6000-builtin.cc
47         $(COMPILE) $<
48         $(POSTCOMPILE)
50 build/rs6000-gen-builtins.o: $(srcdir)/config/rs6000/rs6000-gen-builtins.cc
51 build/rbtree.o: $(srcdir)/config/rs6000/rbtree.cc
53 build/rs6000-gen-builtins$(build_exeext): build/rs6000-gen-builtins.o \
54                                           build/rbtree.o $(BUILD_LIBDEPS)
55         $(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) -o $@ \
56             $(filter-out $(BUILD_LIBDEPS), $^) $(BUILD_LIBS)
58 # TODO: Whenever GNU make 4.3 is the minimum required, we should use
59 # grouped targets on this:
60 #    rs6000-builtins.cc rs6000-builtins.h rs6000-vecdefines.h &: <deps>
61 #       <recipe>
62 # For now, the header files depend on rs6000-builtins.cc, which avoids
63 # races because the .c file is closed last in rs6000-gen-builtins.cc.
64 rs6000-builtins.cc: build/rs6000-gen-builtins$(build_exeext) \
65                    $(srcdir)/config/rs6000/rs6000-builtins.def \
66                    $(srcdir)/config/rs6000/rs6000-overload.def
67         $(RUN_GEN) ./build/rs6000-gen-builtins$(build_exeext) \
68                 $(srcdir)/config/rs6000/rs6000-builtins.def \
69                 $(srcdir)/config/rs6000/rs6000-overload.def rs6000-builtins.h \
70                 rs6000-builtins.cc rs6000-vecdefines.h
72 rs6000-builtins.h: rs6000-builtins.cc
74 rs6000.o: rs6000-builtins.h
76 EXTRA_HEADERS += rs6000-vecdefines.h
77 rs6000-vecdefines.h: rs6000-builtins.cc
79 rs6000-builtins.o: rs6000-builtins.cc
80         $(COMPILE) $<
81         $(POSTCOMPILE)
83 rs6000-call.o: $(srcdir)/config/rs6000/rs6000-call.cc rs6000-builtins.h
84         $(COMPILE) $<
85         $(POSTCOMPILE)
87 rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.cc rs6000-builtins.h
88         $(COMPILE) $<
89         $(POSTCOMPILE)
91 #$(srcdir)/config/rs6000/fusion.md: $(srcdir)/config/rs6000/genfusion.pl
92 #       $(srcdir)/config/rs6000/genfusion.pl > $(srcdir)/config/rs6000/fusion.md
94 $(srcdir)/config/rs6000/rs6000-tables.opt: $(srcdir)/config/rs6000/genopt.sh \
95   $(srcdir)/config/rs6000/rs6000-cpus.def
96         $(SHELL) $(srcdir)/config/rs6000/genopt.sh $(srcdir)/config/rs6000 > \
97                 $(srcdir)/config/rs6000/rs6000-tables.opt
99 # The rs6000 backend doesn't cause warnings in these files.
100 insn-conditions.o-warn =
102 MD_INCLUDES = $(srcdir)/config/rs6000/rs64.md \
103         $(srcdir)/config/rs6000/mpc.md \
104         $(srcdir)/config/rs6000/40x.md \
105         $(srcdir)/config/rs6000/440.md \
106         $(srcdir)/config/rs6000/601.md \
107         $(srcdir)/config/rs6000/603.md \
108         $(srcdir)/config/rs6000/6xx.md \
109         $(srcdir)/config/rs6000/7xx.md \
110         $(srcdir)/config/rs6000/7450.md \
111         $(srcdir)/config/rs6000/8540.md \
112         $(srcdir)/config/rs6000/e300c2c3.md \
113         $(srcdir)/config/rs6000/e500mc.md \
114         $(srcdir)/config/rs6000/power4.md \
115         $(srcdir)/config/rs6000/power5.md \
116         $(srcdir)/config/rs6000/power6.md \
117         $(srcdir)/config/rs6000/power7.md \
118         $(srcdir)/config/rs6000/power8.md \
119         $(srcdir)/config/rs6000/power9.md \
120         $(srcdir)/config/rs6000/power10.md \
121         $(srcdir)/config/rs6000/cell.md \
122         $(srcdir)/config/rs6000/a2.md \
123         $(srcdir)/config/rs6000/predicates.md \
124         $(srcdir)/config/rs6000/constraints.md \
125         $(srcdir)/config/rs6000/darwin.md \
126         $(srcdir)/config/rs6000/sync.md \
127         $(srcdir)/config/rs6000/vector.md \
128         $(srcdir)/config/rs6000/vsx.md \
129         $(srcdir)/config/rs6000/altivec.md \
130         $(srcdir)/config/rs6000/mma.md \
131         $(srcdir)/config/rs6000/crypto.md \
132         $(srcdir)/config/rs6000/htm.md \
133         $(srcdir)/config/rs6000/dfp.md \
134         $(srcdir)/config/rs6000/fusion.md \
135         $(srcdir)/config/rs6000/pcrel-opt.md