1# Rules of c-isr library stuff of Andes NDS32 cpu for GNU compiler 2# Copyright (C) 2012-2016 Free Software Foundation, Inc. 3# Contributed by Andes Technology Corporation. 4# 5# This file is part of GCC. 6# 7# GCC is free software; you can redistribute it and/or modify it 8# under the terms of the GNU General Public License as published 9# by the Free Software Foundation; either version 3, or (at your 10# option) any later version. 11# 12# GCC is distributed in the hope that it will be useful, but WITHOUT 13# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15# 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 22############################################################################### 23# Makfile fragment rules for libnds32_isr.a to support ISR attribute extension 24############################################################################### 25 26# basic flags setting 27ISR_CFLAGS = $(CFLAGS) -c 28 29# the object files we would like to create 30LIBNDS32_ISR_16B_OBJS = \ 31 vec_vid00.o vec_vid01.o vec_vid02.o vec_vid03.o \ 32 vec_vid04.o vec_vid05.o vec_vid06.o vec_vid07.o \ 33 vec_vid08.o vec_vid09.o vec_vid10.o vec_vid11.o \ 34 vec_vid12.o vec_vid13.o vec_vid14.o vec_vid15.o \ 35 vec_vid16.o vec_vid17.o vec_vid18.o vec_vid19.o \ 36 vec_vid20.o vec_vid21.o vec_vid22.o vec_vid23.o \ 37 vec_vid24.o vec_vid25.o vec_vid26.o vec_vid27.o \ 38 vec_vid28.o vec_vid29.o vec_vid30.o vec_vid31.o \ 39 vec_vid32.o vec_vid33.o vec_vid34.o vec_vid35.o \ 40 vec_vid36.o vec_vid37.o vec_vid38.o vec_vid39.o \ 41 vec_vid40.o vec_vid41.o vec_vid42.o vec_vid43.o \ 42 vec_vid44.o vec_vid45.o vec_vid46.o vec_vid47.o \ 43 vec_vid48.o vec_vid49.o vec_vid50.o vec_vid51.o \ 44 vec_vid52.o vec_vid53.o vec_vid54.o vec_vid55.o \ 45 vec_vid56.o vec_vid57.o vec_vid58.o vec_vid59.o \ 46 vec_vid60.o vec_vid61.o vec_vid62.o vec_vid63.o \ 47 vec_vid64.o vec_vid65.o vec_vid66.o vec_vid67.o \ 48 vec_vid68.o vec_vid69.o vec_vid70.o vec_vid71.o \ 49 vec_vid72.o \ 50 excp_isr_ps_nn.o excp_isr_ps_ns.o excp_isr_ps_nr.o \ 51 excp_isr_sa_nn.o excp_isr_sa_ns.o excp_isr_sa_nr.o \ 52 intr_isr_ps_nn.o intr_isr_ps_ns.o intr_isr_ps_nr.o \ 53 intr_isr_sa_nn.o intr_isr_sa_ns.o intr_isr_sa_nr.o \ 54 reset.o 55 56LIBNDS32_ISR_4B_OBJS = \ 57 vec_vid00_4b.o vec_vid01_4b.o vec_vid02_4b.o vec_vid03_4b.o \ 58 vec_vid04_4b.o vec_vid05_4b.o vec_vid06_4b.o vec_vid07_4b.o \ 59 vec_vid08_4b.o vec_vid09_4b.o vec_vid10_4b.o vec_vid11_4b.o \ 60 vec_vid12_4b.o vec_vid13_4b.o vec_vid14_4b.o vec_vid15_4b.o \ 61 vec_vid16_4b.o vec_vid17_4b.o vec_vid18_4b.o vec_vid19_4b.o \ 62 vec_vid20_4b.o vec_vid21_4b.o vec_vid22_4b.o vec_vid23_4b.o \ 63 vec_vid24_4b.o vec_vid25_4b.o vec_vid26_4b.o vec_vid27_4b.o \ 64 vec_vid28_4b.o vec_vid29_4b.o vec_vid30_4b.o vec_vid31_4b.o \ 65 vec_vid32_4b.o vec_vid33_4b.o vec_vid34_4b.o vec_vid35_4b.o \ 66 vec_vid36_4b.o vec_vid37_4b.o vec_vid38_4b.o vec_vid39_4b.o \ 67 vec_vid40_4b.o vec_vid41_4b.o vec_vid42_4b.o vec_vid43_4b.o \ 68 vec_vid44_4b.o vec_vid45_4b.o vec_vid46_4b.o vec_vid47_4b.o \ 69 vec_vid48_4b.o vec_vid49_4b.o vec_vid50_4b.o vec_vid51_4b.o \ 70 vec_vid52_4b.o vec_vid53_4b.o vec_vid54_4b.o vec_vid55_4b.o \ 71 vec_vid56_4b.o vec_vid57_4b.o vec_vid58_4b.o vec_vid59_4b.o \ 72 vec_vid60_4b.o vec_vid61_4b.o vec_vid62_4b.o vec_vid63_4b.o \ 73 vec_vid64_4b.o vec_vid65_4b.o vec_vid66_4b.o vec_vid67_4b.o \ 74 vec_vid68_4b.o vec_vid69_4b.o vec_vid70_4b.o vec_vid71_4b.o \ 75 vec_vid72_4b.o \ 76 excp_isr_ps_nn_4b.o excp_isr_ps_ns_4b.o excp_isr_ps_nr_4b.o \ 77 excp_isr_sa_nn_4b.o excp_isr_sa_ns_4b.o excp_isr_sa_nr_4b.o \ 78 intr_isr_ps_nn_4b.o intr_isr_ps_ns_4b.o intr_isr_ps_nr_4b.o \ 79 intr_isr_sa_nn_4b.o intr_isr_sa_ns_4b.o intr_isr_sa_nr_4b.o \ 80 reset_4b.o 81 82LIBNDS32_ISR_COMMON_OBJS = \ 83 jmptbl_vid00.o jmptbl_vid01.o jmptbl_vid02.o jmptbl_vid03.o \ 84 jmptbl_vid04.o jmptbl_vid05.o jmptbl_vid06.o jmptbl_vid07.o \ 85 jmptbl_vid08.o jmptbl_vid09.o jmptbl_vid10.o jmptbl_vid11.o \ 86 jmptbl_vid12.o jmptbl_vid13.o jmptbl_vid14.o jmptbl_vid15.o \ 87 jmptbl_vid16.o jmptbl_vid17.o jmptbl_vid18.o jmptbl_vid19.o \ 88 jmptbl_vid20.o jmptbl_vid21.o jmptbl_vid22.o jmptbl_vid23.o \ 89 jmptbl_vid24.o jmptbl_vid25.o jmptbl_vid26.o jmptbl_vid27.o \ 90 jmptbl_vid28.o jmptbl_vid29.o jmptbl_vid30.o jmptbl_vid31.o \ 91 jmptbl_vid32.o jmptbl_vid33.o jmptbl_vid34.o jmptbl_vid35.o \ 92 jmptbl_vid36.o jmptbl_vid37.o jmptbl_vid38.o jmptbl_vid39.o \ 93 jmptbl_vid40.o jmptbl_vid41.o jmptbl_vid42.o jmptbl_vid43.o \ 94 jmptbl_vid44.o jmptbl_vid45.o jmptbl_vid46.o jmptbl_vid47.o \ 95 jmptbl_vid48.o jmptbl_vid49.o jmptbl_vid50.o jmptbl_vid51.o \ 96 jmptbl_vid52.o jmptbl_vid53.o jmptbl_vid54.o jmptbl_vid55.o \ 97 jmptbl_vid56.o jmptbl_vid57.o jmptbl_vid58.o jmptbl_vid59.o \ 98 jmptbl_vid60.o jmptbl_vid61.o jmptbl_vid62.o jmptbl_vid63.o \ 99 jmptbl_vid64.o jmptbl_vid65.o jmptbl_vid66.o jmptbl_vid67.o \ 100 jmptbl_vid68.o jmptbl_vid69.o jmptbl_vid70.o jmptbl_vid71.o \ 101 jmptbl_vid72.o \ 102 nmih.o \ 103 wrh.o 104 105LIBNDS32_ISR_COMPLETE_OBJS = $(LIBNDS32_ISR_16B_OBJS) $(LIBNDS32_ISR_4B_OBJS) $(LIBNDS32_ISR_COMMON_OBJS) 106 107 108# Build common objects for ISR library 109nmih.o: $(srcdir)/config/nds32/isr-library/nmih.S 110 $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/nmih.S -o nmih.o 111 112wrh.o: $(srcdir)/config/nds32/isr-library/wrh.S 113 $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/wrh.S -o wrh.o 114 115jmptbl_vid%.o: $(srcdir)/config/nds32/isr-library/jmptbl_vid%.S 116 $(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@ 117 118 119 120# Build 16b version objects for ISR library. (no "_4b" postfix string) 121vec_vid%.o: $(srcdir)/config/nds32/isr-library/vec_vid%.S 122 $(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@ 123 124excp_isr_ps_nn.o: $(srcdir)/config/nds32/isr-library/excp_isr.S 125 $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_nn.o 126 127excp_isr_ps_ns.o: $(srcdir)/config/nds32/isr-library/excp_isr.S 128 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_ns.o 129 130excp_isr_ps_nr.o: $(srcdir)/config/nds32/isr-library/excp_isr.S 131 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_nr.o 132 133excp_isr_sa_nn.o: $(srcdir)/config/nds32/isr-library/excp_isr.S 134 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_sa_nn.o 135 136excp_isr_sa_ns.o: $(srcdir)/config/nds32/isr-library/excp_isr.S 137 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_sa_ns.o 138 139excp_isr_sa_nr.o: $(srcdir)/config/nds32/isr-library/excp_isr.S 140 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_sa_nr.o 141 142intr_isr_ps_nn.o: $(srcdir)/config/nds32/isr-library/intr_isr.S 143 $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_nn.o 144 145intr_isr_ps_ns.o: $(srcdir)/config/nds32/isr-library/intr_isr.S 146 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_ns.o 147 148intr_isr_ps_nr.o: $(srcdir)/config/nds32/isr-library/intr_isr.S 149 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_nr.o 150 151intr_isr_sa_nn.o: $(srcdir)/config/nds32/isr-library/intr_isr.S 152 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_sa_nn.o 153 154intr_isr_sa_ns.o: $(srcdir)/config/nds32/isr-library/intr_isr.S 155 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_sa_ns.o 156 157intr_isr_sa_nr.o: $(srcdir)/config/nds32/isr-library/intr_isr.S 158 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_sa_nr.o 159 160reset.o: $(srcdir)/config/nds32/isr-library/reset.S 161 $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/reset.S -o reset.o 162 163# Build 4b version objects for ISR library. 164vec_vid%_4b.o: $(srcdir)/config/nds32/isr-library/vec_vid%_4b.S 165 $(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@ 166 167excp_isr_ps_nn_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S 168 $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_ps_nn_4b.o 169 170excp_isr_ps_ns_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S 171 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_ps_ns_4b.o 172 173excp_isr_ps_nr_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S 174 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_ps_nr_4b.o 175 176excp_isr_sa_nn_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S 177 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_sa_nn_4b.o 178 179excp_isr_sa_ns_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S 180 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_sa_ns_4b.o 181 182excp_isr_sa_nr_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S 183 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_sa_nr_4b.o 184 185intr_isr_ps_nn_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S 186 $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_ps_nn_4b.o 187 188intr_isr_ps_ns_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S 189 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_ps_ns_4b.o 190 191intr_isr_ps_nr_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S 192 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_ps_nr_4b.o 193 194intr_isr_sa_nn_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S 195 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_sa_nn_4b.o 196 197intr_isr_sa_ns_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S 198 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_sa_ns_4b.o 199 200intr_isr_sa_nr_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S 201 $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_sa_nr_4b.o 202 203reset_4b.o: $(srcdir)/config/nds32/isr-library/reset_4b.S 204 $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/reset_4b.S -o reset_4b.o 205 206 207# The rule to create libnds32_isr.a file 208libnds32_isr.a: $(LIBNDS32_ISR_COMPLETE_OBJS) 209 $(AR) rc libnds32_isr.a $(LIBNDS32_ISR_COMPLETE_OBJS) 210 211 212# ------------------------------------------------------------------------ 213