Home | History | Annotate | Line # | Download | only in nds32
      1 # Rules of c-isr library stuff of Andes NDS32 cpu for GNU compiler
      2 # Copyright (C) 2012-2024 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.
     27 ISR_CFLAGS = $(CFLAGS) -c
     28 
     29 # The object files we would like to create.
     30 LIBNDS32_ISR_VEC_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 
     51 LIBNDS32_ISR_JMP_OBJS = \
     52 		jmptbl_vid00.o jmptbl_vid01.o jmptbl_vid02.o jmptbl_vid03.o \
     53 		jmptbl_vid04.o jmptbl_vid05.o jmptbl_vid06.o jmptbl_vid07.o \
     54 		jmptbl_vid08.o jmptbl_vid09.o jmptbl_vid10.o jmptbl_vid11.o \
     55 		jmptbl_vid12.o jmptbl_vid13.o jmptbl_vid14.o jmptbl_vid15.o \
     56 		jmptbl_vid16.o jmptbl_vid17.o jmptbl_vid18.o jmptbl_vid19.o \
     57 		jmptbl_vid20.o jmptbl_vid21.o jmptbl_vid22.o jmptbl_vid23.o \
     58 		jmptbl_vid24.o jmptbl_vid25.o jmptbl_vid26.o jmptbl_vid27.o \
     59 		jmptbl_vid28.o jmptbl_vid29.o jmptbl_vid30.o jmptbl_vid31.o \
     60 		jmptbl_vid32.o jmptbl_vid33.o jmptbl_vid34.o jmptbl_vid35.o \
     61 		jmptbl_vid36.o jmptbl_vid37.o jmptbl_vid38.o jmptbl_vid39.o \
     62 		jmptbl_vid40.o jmptbl_vid41.o jmptbl_vid42.o jmptbl_vid43.o \
     63 		jmptbl_vid44.o jmptbl_vid45.o jmptbl_vid46.o jmptbl_vid47.o \
     64 		jmptbl_vid48.o jmptbl_vid49.o jmptbl_vid50.o jmptbl_vid51.o \
     65 		jmptbl_vid52.o jmptbl_vid53.o jmptbl_vid54.o jmptbl_vid55.o \
     66 		jmptbl_vid56.o jmptbl_vid57.o jmptbl_vid58.o jmptbl_vid59.o \
     67 		jmptbl_vid60.o jmptbl_vid61.o jmptbl_vid62.o jmptbl_vid63.o \
     68 		jmptbl_vid64.o jmptbl_vid65.o jmptbl_vid66.o jmptbl_vid67.o \
     69 		jmptbl_vid68.o jmptbl_vid69.o jmptbl_vid70.o jmptbl_vid71.o \
     70 		jmptbl_vid72.o
     71 
     72 LIBNDS32_ISR_COMMON_OBJS = \
     73 		excp_isr_ps_nn.o excp_isr_ps_ns.o excp_isr_ps_nr.o \
     74 		excp_isr_sa_nn.o excp_isr_sa_ns.o excp_isr_sa_nr.o \
     75 		intr_isr_ps_nn.o intr_isr_ps_ns.o intr_isr_ps_nr.o \
     76 		intr_isr_sa_nn.o intr_isr_sa_ns.o intr_isr_sa_nr.o \
     77 		reset.o \
     78 		nmih.o \
     79 		wrh.o
     80 
     81 LIBNDS32_ISR_COMPLETE_OBJS = $(LIBNDS32_ISR_VEC_OBJS) $(LIBNDS32_ISR_JMP_OBJS) $(LIBNDS32_ISR_COMMON_OBJS)
     82 
     83 
     84 
     85 # Build vector vid objects for ISR library.
     86 vec_vid%.o: $(srcdir)/config/nds32/isr-library/vec_vid%.S
     87 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@
     88 
     89 
     90 # Build jump table objects for ISR library.
     91 jmptbl_vid%.o: $(srcdir)/config/nds32/isr-library/jmptbl_vid%.S
     92 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@
     93 
     94 
     95 # Build commen objects for ISR library.
     96 excp_isr_ps_nn.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
     97 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_nn.o
     98 
     99 excp_isr_ps_ns.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
    100 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_ns.o
    101 
    102 excp_isr_ps_nr.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
    103 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_nr.o
    104 
    105 excp_isr_sa_nn.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
    106 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_sa_nn.o
    107 
    108 excp_isr_sa_ns.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
    109 	$(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
    110 
    111 excp_isr_sa_nr.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
    112 	$(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
    113 
    114 intr_isr_ps_nn.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
    115 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_nn.o
    116 
    117 intr_isr_ps_ns.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
    118 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_ns.o
    119 
    120 intr_isr_ps_nr.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
    121 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_nr.o
    122 
    123 intr_isr_sa_nn.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
    124 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_sa_nn.o
    125 
    126 intr_isr_sa_ns.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
    127 	$(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
    128 
    129 intr_isr_sa_nr.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
    130 	$(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
    131 
    132 reset.o: $(srcdir)/config/nds32/isr-library/reset.S
    133 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/reset.S -o reset.o
    134 
    135 nmih.o: $(srcdir)/config/nds32/isr-library/nmih.S
    136 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/nmih.S -o nmih.o
    137 
    138 wrh.o: $(srcdir)/config/nds32/isr-library/wrh.S
    139 	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/wrh.S -o wrh.o
    140 
    141 
    142 
    143 # The rule to create libnds32_isr.a file
    144 libnds32_isr.a: $(LIBNDS32_ISR_COMPLETE_OBJS)
    145 	$(AR) rc libnds32_isr.a $(LIBNDS32_ISR_COMPLETE_OBJS)
    146 
    147 
    148 # ------------------------------------------------------------------------
    149