1 # General rules that all rs6000/ targets must have. 2 # 3 # Copyright (C) 1995-2022 Free Software Foundation, Inc. 4 # 5 # This file is part of GCC. 6 # 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. 11 # 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. 16 # 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/>. 20 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 25 26 rs6000-pcrel-opt.o: $(srcdir)/config/rs6000/rs6000-pcrel-opt.cc 27 $(COMPILE) $< 28 $(POSTCOMPILE) 29 30 rs6000-string.o: $(srcdir)/config/rs6000/rs6000-string.cc 31 $(COMPILE) $< 32 $(POSTCOMPILE) 33 34 rs6000-p8swap.o: $(srcdir)/config/rs6000/rs6000-p8swap.cc 35 $(COMPILE) $< 36 $(POSTCOMPILE) 37 38 rs6000-d.o: $(srcdir)/config/rs6000/rs6000-d.cc 39 $(COMPILE) $< 40 $(POSTCOMPILE) 41 42 rs6000-logue.o: $(srcdir)/config/rs6000/rs6000-logue.cc 43 $(COMPILE) $< 44 $(POSTCOMPILE) 45 46 rs6000-builtin.o: $(srcdir)/config/rs6000/rs6000-builtin.cc 47 $(COMPILE) $< 48 $(POSTCOMPILE) 49 50 build/rs6000-gen-builtins.o: $(srcdir)/config/rs6000/rs6000-gen-builtins.cc 51 build/rbtree.o: $(srcdir)/config/rs6000/rbtree.cc 52 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) 57 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 71 72 rs6000-builtins.h: rs6000-builtins.cc 73 74 rs6000.o: rs6000-builtins.h 75 76 EXTRA_HEADERS += rs6000-vecdefines.h 77 rs6000-vecdefines.h: rs6000-builtins.cc 78 79 rs6000-builtins.o: rs6000-builtins.cc 80 $(COMPILE) $< 81 $(POSTCOMPILE) 82 83 rs6000-call.o: $(srcdir)/config/rs6000/rs6000-call.cc rs6000-builtins.h 84 $(COMPILE) $< 85 $(POSTCOMPILE) 86 87 rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.cc rs6000-builtins.h 88 $(COMPILE) $< 89 $(POSTCOMPILE) 90 91 #$(srcdir)/config/rs6000/fusion.md: $(srcdir)/config/rs6000/genfusion.pl 92 # $(srcdir)/config/rs6000/genfusion.pl > $(srcdir)/config/rs6000/fusion.md 93 94 $(srcdir)/config/rs6000/rs6000-tables.opt: $(srcdir)/config/rs6000/genopt.sh \ 95 $(srcdir)/config/rs6000/rs6000-cpus.def 96 @echo "NOT REBUILDING $@" 97 NetBSD_DISABLED_rs6000-tables.opt: 98 $(SHELL) $(srcdir)/config/rs6000/genopt.sh $(srcdir)/config/rs6000 > \ 99 $(srcdir)/config/rs6000/rs6000-tables.opt 100 101 # The rs6000 backend doesn't cause warnings in these files. 102 insn-conditions.o-warn = 103 104 MD_INCLUDES = $(srcdir)/config/rs6000/rs64.md \ 105 $(srcdir)/config/rs6000/mpc.md \ 106 $(srcdir)/config/rs6000/40x.md \ 107 $(srcdir)/config/rs6000/440.md \ 108 $(srcdir)/config/rs6000/601.md \ 109 $(srcdir)/config/rs6000/603.md \ 110 $(srcdir)/config/rs6000/6xx.md \ 111 $(srcdir)/config/rs6000/7xx.md \ 112 $(srcdir)/config/rs6000/7450.md \ 113 $(srcdir)/config/rs6000/8540.md \ 114 $(srcdir)/config/rs6000/e300c2c3.md \ 115 $(srcdir)/config/rs6000/e500mc.md \ 116 $(srcdir)/config/rs6000/power4.md \ 117 $(srcdir)/config/rs6000/power5.md \ 118 $(srcdir)/config/rs6000/power6.md \ 119 $(srcdir)/config/rs6000/power7.md \ 120 $(srcdir)/config/rs6000/power8.md \ 121 $(srcdir)/config/rs6000/power9.md \ 122 $(srcdir)/config/rs6000/power10.md \ 123 $(srcdir)/config/rs6000/cell.md \ 124 $(srcdir)/config/rs6000/a2.md \ 125 $(srcdir)/config/rs6000/predicates.md \ 126 $(srcdir)/config/rs6000/constraints.md \ 127 $(srcdir)/config/rs6000/darwin.md \ 128 $(srcdir)/config/rs6000/sync.md \ 129 $(srcdir)/config/rs6000/vector.md \ 130 $(srcdir)/config/rs6000/vsx.md \ 131 $(srcdir)/config/rs6000/altivec.md \ 132 $(srcdir)/config/rs6000/mma.md \ 133 $(srcdir)/config/rs6000/crypto.md \ 134 $(srcdir)/config/rs6000/htm.md \ 135 $(srcdir)/config/rs6000/dfp.md \ 136 $(srcdir)/config/rs6000/fusion.md \ 137 $(srcdir)/config/rs6000/pcrel-opt.md 138