Home | History | Annotate | Line # | Download | only in rs6000
      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