]>
Commit | Line | Data |
---|---|---|
ad41bd84 JM |
1 | # Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
2 | # 2003, 2004, 2006, 2008, 2009 Free Software Foundation, Inc. | |
3 | # | |
4 | # This file is part of GCC. | |
5 | # | |
6 | # GCC is free software; you can redistribute it and/or modify | |
7 | # it under the terms of the GNU General Public License as published by | |
8 | # the Free Software Foundation; either version 3, or (at your option) | |
9 | # any later version. | |
10 | # | |
11 | # GCC is distributed in the hope that it will be useful, | |
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | # GNU General Public License for more details. | |
15 | # | |
16 | # You should have received a copy of the GNU General Public License | |
17 | # along with GCC; see the file COPYING3. If not see | |
18 | # <http://www.gnu.org/licenses/>. | |
19 | ||
e980df8e TT |
20 | sh-c.o: $(srcdir)/config/sh/sh-c.c \ |
21 | $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(TM_H) $(TM_P_H) coretypes.h | |
22 | $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/sh/sh-c.c | |
a6ab9fc0 | 23 | |
c3898ccd | 24 | LIB1ASMSRC = sh/lib1funcs.asm |
70128ad9 AO |
25 | LIB1ASMFUNCS = _ashiftrt _ashiftrt_n _ashiftlt _lshiftrt _movmem \ |
26 | _movmem_i4 _mulsi3 _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \ | |
31b6f0ae | 27 | _div_table _udiv_qrnnd_16 \ |
1951818c | 28 | $(LIB1ASMFUNCS_CACHE) |
dc557046 | 29 | LIB1ASMFUNCS_CACHE = _ic_invalidate _ic_invalidate_array |
1951818c | 30 | |
c91fba50 JL |
31 | # We want fine grained libraries, so use the new code to build the |
32 | # floating point emulation libraries. | |
33 | FPBIT = fp-bit.c | |
34 | DPBIT = dp-bit.c | |
c3898ccd SC |
35 | |
36 | dp-bit.c: $(srcdir)/config/fp-bit.c | |
b0c312a9 SC |
37 | echo '#ifdef __LITTLE_ENDIAN__' > dp-bit.c |
38 | echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c | |
39 | echo '#endif' >> dp-bit.c | |
40 | cat $(srcdir)/config/fp-bit.c >> dp-bit.c | |
41 | ||
c3898ccd SC |
42 | fp-bit.c: $(srcdir)/config/fp-bit.c |
43 | echo '#define FLOAT' > fp-bit.c | |
b0c312a9 SC |
44 | echo '#ifdef __LITTLE_ENDIAN__' >> fp-bit.c |
45 | echo '#define FLOAT_BIT_ORDER_MISMATCH' >>fp-bit.c | |
46 | echo '#endif' >> fp-bit.c | |
c3898ccd | 47 | cat $(srcdir)/config/fp-bit.c >> fp-bit.c |
bc45ade3 | 48 | |
aca600aa AS |
49 | DEFAULT_ENDIAN = $(word 1,$(TM_ENDIAN_CONFIG)) |
50 | OTHER_ENDIAN = $(word 2,$(TM_ENDIAN_CONFIG)) | |
da28a3b9 | 51 | |
aca600aa | 52 | MULTILIB_OPTIONS= $(OTHER_ENDIAN) $(TM_MULTILIB_CONFIG) |
1979c66c | 53 | MULTILIB_DIRNAMES= |
157371cf AO |
54 | |
55 | # The separate entries for m2a-nofpu and m2a-single-only with | |
56 | # duplicate base libraries are there to make sure we don't ever use an | |
57 | # m4* multilib for m2a or vice-versa; they are not compatible. This | |
58 | # is why sh2a and sh2a-single need their own multilibs. | |
da28a3b9 JR |
59 | MULTILIB_MATCHES = $(shell \ |
60 | multilibs="$(MULTILIB_OPTIONS)" ; \ | |
78d310c2 R |
61 | for abi in m1,m2,m3,m4-nofpu,m4-100-nofpu,m4-200-nofpu,m4-400,m4-500,m4-340,m4-300-nofpu,m4al,m4a-nofpu \ |
62 | m1,m2,m2a-nofpu \ | |
63 | m2e,m3e,m4-single-only,m4-100-single-only,m4-200-single-only,m4-300-single-only,m4a-single-only \ | |
25e651ca | 64 | m2e,m2a-single-only \ |
78d310c2 R |
65 | m4-single,m4-100-single,m4-200-single,m4-300-single,m4a-single \ |
66 | m4,m4-100,m4-200,m4-300,m4a \ | |
da28a3b9 JR |
67 | m5-32media,m5-compact,m5-32media \ |
68 | m5-32media-nofpu,m5-compact-nofpu,m5-32media-nofpu; do \ | |
69 | subst= ; \ | |
70 | for lib in `echo $$abi|tr , ' '` ; do \ | |
71 | if test "`echo $$multilibs|sed s/$$lib//`" != "$$multilibs"; then \ | |
72 | subst=$$lib ; \ | |
73 | elif test x$$subst != x ; then \ | |
74 | echo $$subst=$$lib ; \ | |
75 | fi \ | |
76 | done \ | |
77 | done) | |
78 | ||
79 | # SH1 only supports big endian. | |
aca600aa AS |
80 | MULTILIB_EXCEPTIONS = ml/m1 ml/m2a* $(TM_MULTILIB_EXCEPTIONS_CONFIG) |
81 | ||
82 | MULTILIB_OSDIRNAMES = \ | |
83 | $(OTHER_ENDIAN)=!$(OTHER_ENDIAN) \ | |
84 | m1=!m1 $(OTHER_ENDIAN)/m1=!$(OTHER_ENDIAN)/m1 \ | |
85 | m2a=!m2a $(OTHER_ENDIAN)/m2a=!$(OTHER_ENDIAN)/m2a \ | |
86 | m2a-nofpu=!m2a-nofpu $(OTHER_ENDIAN)/m2a-nofpu=!$(OTHER_ENDIAN)/m2a-nofpu \ | |
87 | m2a-single-only=!m2a-single-only $(OTHER_ENDIAN)/m2a-single-only=!$(OTHER_ENDIAN)/m2a-single-only \ | |
88 | m2a-single=!m2a-single $(OTHER_ENDIAN)/m2a-single=!$(OTHER_ENDIAN)/m2a-single \ | |
89 | m2e=!m2e $(OTHER_ENDIAN)/m2e=!$(OTHER_ENDIAN)/m2e \ | |
90 | m2=!m2 $(OTHER_ENDIAN)/m2=!$(OTHER_ENDIAN)/m2 \ | |
91 | m3e=!m3e $(OTHER_ENDIAN)/m3e=!$(OTHER_ENDIAN)/m3e \ | |
92 | m3=!m3 $(OTHER_ENDIAN)/m3=!$(OTHER_ENDIAN)/m3 \ | |
93 | m4-nofpu=!m4-nofpu $(OTHER_ENDIAN)/m4-nofpu=!$(OTHER_ENDIAN)/m4-nofpu \ | |
94 | m4-single-only=!m4-single-only $(OTHER_ENDIAN)/m4-single-only=!$(OTHER_ENDIAN)/m4-single-only \ | |
95 | m4-single=!m4-single $(OTHER_ENDIAN)/m4-single=!$(OTHER_ENDIAN)/m4-single \ | |
96 | m4=!m4 $(OTHER_ENDIAN)/m4=!$(OTHER_ENDIAN)/m4 \ | |
97 | m4a-nofpu=!m4a-nofpu $(OTHER_ENDIAN)/m4a-nofpu=!$(OTHER_ENDIAN)/m4a-nofpu \ | |
98 | m4a-single-only=!m4a-single-only $(OTHER_ENDIAN)/m4a-single-only=!$(OTHER_ENDIAN)/m4a-single-only \ | |
99 | m4a-single=!m4a-single $(OTHER_ENDIAN)/m4a-single=!$(OTHER_ENDIAN)/m4a-single \ | |
100 | m4a=!m4a $(OTHER_ENDIAN)/m4a=!$(OTHER_ENDIAN)/m4a \ | |
101 | m4al=!m4al $(OTHER_ENDIAN)/m4al=!$(OTHER_ENDIAN)/m4al \ | |
102 | m5-32media=!m5-32media $(OTHER_ENDIAN)/m5-32media=!$(OTHER_ENDIAN)/m5-32media \ | |
103 | m5-32media-nofpu=!m5-32media-nofpu $(OTHER_ENDIAN)/m5-32media-nofpu=!$(OTHER_ENDIAN)/m5-32media-nofpu \ | |
104 | m5-compact=!m5-compact $(OTHER_ENDIAN)/m5-compact=!$(OTHER_ENDIAN)/m5-compact \ | |
105 | m5-compact-nofpu=!m5-compact-nofpu $(OTHER_ENDIAN)/m5-compact-nofpu=!$(OTHER_ENDIAN)/m5-compact-nofpu \ | |
106 | m5-64media=!m5-64media $(OTHER_ENDIAN)/m5-64media=!$(OTHER_ENDIAN)/m5-64media \ | |
107 | m5-64media-nofpu=!m5-64media-nofpu $(OTHER_ENDIAN)/m5-64media-nofpu=!$(OTHER_ENDIAN)/m5-64media-nofpu | |
00f8ff66 SC |
108 | |
109 | LIBGCC = stmp-multilib | |
110 | INSTALL_LIBGCC = install-multilib | |
1a66cd67 AO |
111 | |
112 | $(T)crt1.o: $(srcdir)/config/sh/crt1.asm $(GCC_PASSES) | |
113 | $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crt1.o -x assembler-with-cpp $(srcdir)/config/sh/crt1.asm | |
114 | $(T)crti.o: $(srcdir)/config/sh/crti.asm $(GCC_PASSES) | |
115 | $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/sh/crti.asm | |
116 | $(T)crtn.o: $(srcdir)/config/sh/crtn.asm $(GCC_PASSES) | |
117 | $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/sh/crtn.asm | |
118 | ||
e2500fed GK |
119 | $(out_object_file): gt-sh.h |
120 | gt-sh.h : s-gtype ; @true | |
121 | ||
395a451c AO |
122 | # These are not suitable for COFF. |
123 | # EXTRA_MULTILIB_PARTS= crt1.o crti.o crtn.o crtbegin.o crtend.o | |
157371cf | 124 | |
25e651ca AS |
125 | IC_EXTRA_PARTS= libic_invalidate_array_4-100.a libic_invalidate_array_4-200.a \ |
126 | libic_invalidate_array_4a.a | |
78d310c2 | 127 | OPT_EXTRA_PARTS= libgcc-Os-4-200.a libgcc-4-300.a |
3f1d3526 | 128 | EXTRA_MULTILIB_PARTS= $(IC_EXTRA_PARTS) $(OPT_EXTRA_PARTS) |
25e651ca AS |
129 | |
130 | $(T)ic_invalidate_array_4-100.o: $(srcdir)/config/sh/lib1funcs.asm $(GCC_PASSES) | |
131 | $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)ic_invalidate_array_4-100.o -DL_ic_invalidate_array -DWAYS=1 -DWAY_SIZE=0x2000 -x assembler-with-cpp $(srcdir)/config/sh/lib1funcs.asm | |
132 | $(T)libic_invalidate_array_4-100.a: $(T)ic_invalidate_array_4-100.o $(GCC_PASSES) | |
575066d2 | 133 | $(AR_CREATE_FOR_TARGET) $(T)libic_invalidate_array_4-100.a $(T)ic_invalidate_array_4-100.o |
25e651ca AS |
134 | |
135 | $(T)ic_invalidate_array_4-200.o: $(srcdir)/config/sh/lib1funcs.asm $(GCC_PASSES) | |
136 | $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)ic_invalidate_array_4-200.o -DL_ic_invalidate_array -DWAYS=2 -DWAY_SIZE=0x2000 -x assembler-with-cpp $(srcdir)/config/sh/lib1funcs.asm | |
137 | $(T)libic_invalidate_array_4-200.a: $(T)ic_invalidate_array_4-200.o $(GCC_PASSES) | |
575066d2 | 138 | $(AR_CREATE_FOR_TARGET) $(T)libic_invalidate_array_4-200.a $(T)ic_invalidate_array_4-200.o |
25e651ca AS |
139 | |
140 | $(T)ic_invalidate_array_4a.o: $(srcdir)/config/sh/lib1funcs.asm $(GCC_PASSES) | |
141 | $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)ic_invalidate_array_4a.o -DL_ic_invalidate_array -D__FORCE_SH4A__ -x assembler-with-cpp $(srcdir)/config/sh/lib1funcs.asm | |
142 | $(T)libic_invalidate_array_4a.a: $(T)ic_invalidate_array_4a.o $(GCC_PASSES) | |
575066d2 | 143 | $(AR_CREATE_FOR_TARGET) $(T)libic_invalidate_array_4a.a $(T)ic_invalidate_array_4a.o |
25e651ca | 144 | |
3f1d3526 R |
145 | $(T)sdivsi3_i4i-Os-4-200.o: $(srcdir)/config/sh/lib1funcs-Os-4-200.asm $(GCC_PASSES) |
146 | $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $@ -DL_sdivsi3_i4i -x assembler-with-cpp $< | |
147 | $(T)udivsi3_i4i-Os-4-200.o: $(srcdir)/config/sh/lib1funcs-Os-4-200.asm $(GCC_PASSES) | |
148 | $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $@ -DL_udivsi3_i4i -x assembler-with-cpp $< | |
31b6f0ae | 149 | $(T)unwind-dw2-Os-4-200.o: $(srcdir)/unwind-dw2.c $(srcdir)/unwind-generic.h unwind-pe.h unwind.inc unwind-dw2-fde.h unwind-dw2.h $(CONFIG_H) coretypes.h $(TM_H) $(MACHMODE_H) longlong.h config.status stmp-int-hdrs tsystem.h $(GCC_PASSES) |
397979fa | 150 | $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) $(LIBGCC2_CFLAGS) $(INCLUDES) $(vis_hide) -fexceptions -Os -c -o $@ $< |
31b6f0ae R |
151 | OBJS_Os_4_200=$(T)sdivsi3_i4i-Os-4-200.o $(T)udivsi3_i4i-Os-4-200.o $(T)unwind-dw2-Os-4-200.o |
152 | $(T)libgcc-Os-4-200.a: $(OBJS_Os_4_200) $(GCC_PASSES) | |
153 | $(AR_CREATE_FOR_TARGET) $@ $(OBJS_Os_4_200) | |
3f1d3526 | 154 | |
78d310c2 R |
155 | $(T)div_table-4-300.o: $(srcdir)/config/sh/lib1funcs-4-300.asm $(GCC_PASSES) |
156 | $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $@ -DL_div_table -x assembler-with-cpp $< | |
157 | ||
158 | $(T)libgcc-4-300.a: $(T)div_table-4-300.o $(GCC_PASSES) | |
159 | $(AR_CREATE_FOR_TARGET) $@ $(T)div_table-4-300.o | |
160 | ||
157371cf AO |
161 | # Local Variables: |
162 | # mode: Makefile | |
163 | # End: |