Commit | Line | Data |
---|---|---|
c906108c SS |
1 | # Mitsubishi Electric Corp. D30V Simulator. |
2 | # Copyright (C) 1997, Free Software Foundation, Inc. | |
3 | # Contributed by Cygnus Support. | |
4 | # | |
5 | # This file is part of GDB, the GNU debugger. | |
6 | # | |
7 | # This program 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 2, or (at your option) | |
10 | # any later version. | |
11 | # | |
12 | # This program 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 along | |
18 | # with this program; if not, write to the Free Software Foundation, Inc., | |
19 | # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
20 | ||
21 | M4= @M4@ | |
22 | ||
23 | ||
24 | ## COMMON_PRE_CONFIG_FRAG | |
25 | ||
26 | # These variables are given default values in COMMON_PRE_CONFIG_FRAG. | |
27 | # We override the ones we need to here. | |
28 | # Not all of these need to be mentioned, only the necessary ones. | |
29 | ||
30 | # List of object files, less common parts. | |
31 | SIM_OBJS = \ | |
32 | $(SIM_NEW_COMMON_OBJS) \ | |
33 | engine.o cpu.o \ | |
34 | s_support.o l_support.o \ | |
35 | s_idecode.o l_idecode.o \ | |
36 | s_semantics.o l_semantics.o \ | |
37 | sim-calls.o itable.o \ | |
38 | sim-hload.o \ | |
39 | sim-hrw.o \ | |
40 | sim-engine.o \ | |
41 | sim-stop.o \ | |
42 | sim-reason.o \ | |
43 | sim-resume.o | |
44 | ||
45 | # List of extra dependencies. | |
46 | # Generally this consists of simulator specific files included by sim-main.h. | |
47 | SIM_EXTRA_DEPS = itable.h s_idecode.h l_idecode.h cpu.h alu.h | |
48 | ||
49 | # List of generators | |
50 | SIM_GEN=tmp-igen | |
51 | ||
52 | # List of extra flags to always pass to $(CC). | |
53 | SIM_EXTRA_CFLAGS = @sim_trapdump@ | |
54 | ||
55 | # List of main object files for `run'. | |
56 | SIM_RUN_OBJS = nrun.o | |
57 | ||
58 | # Dependency of `clean' to clean any extra files. | |
59 | SIM_EXTRA_CLEAN = clean-igen | |
60 | ||
61 | # This selects the d30v newlib/libgloss syscall definitions. | |
62 | NL_TARGET=-DNL_TARGET_d30v | |
63 | ||
64 | ## COMMON_POST_CONFIG_FRAG | |
65 | ||
66 | MAIN_INCLUDE_DEPS = tconfig.h | |
67 | INCLUDE_DEPS = $(MAIN_INCLUDE_DEPS) $(SIM_EXTRA_DEPS) | |
68 | ||
69 | # Rules need to build $(SIM_OBJS), plus whatever else the target wants. | |
70 | ||
71 | # ... target specific rules ... | |
72 | ||
73 | # Filter to eliminate known warnings | |
74 | FILTER = 2>&1 | egrep -v "Discarding instruction|instruction field of type \`compute\' changed to \`cache\'|Instruction format is not 64 bits wide" | |
75 | ||
76 | BUILT_SRC_FROM_IGEN = \ | |
77 | s_icache.h \ | |
78 | s_icache.c \ | |
79 | s_idecode.h \ | |
80 | s_idecode.c \ | |
81 | s_semantics.h \ | |
82 | s_semantics.c \ | |
83 | s_model.h \ | |
84 | s_model.c \ | |
85 | s_support.h \ | |
86 | s_support.c \ | |
87 | l_icache.h \ | |
88 | l_icache.c \ | |
89 | l_idecode.h \ | |
90 | l_idecode.c \ | |
91 | l_semantics.h \ | |
92 | l_semantics.c \ | |
93 | l_model.h \ | |
94 | l_model.c \ | |
95 | l_support.h \ | |
96 | l_support.c \ | |
97 | itable.h itable.c | |
98 | $(BUILT_SRC_FROM_IGEN): tmp-igen | |
99 | # | |
100 | ||
101 | .PHONY: clean-igen | |
102 | clean-igen: | |
103 | rm -f $(BUILT_SRC_FROM_IGEN) | |
104 | rm -f tmp-igen tmp-insns | |
105 | ||
106 | ../igen/igen: | |
107 | cd ../igen && $(MAKE) | |
108 | ||
109 | tmp-igen: $(srcdir)/dc-short $(srcdir)/d30v-insns $(srcdir)/ic-d30v ../igen/igen | |
110 | cd ../igen && $(MAKE) | |
111 | echo "# 1 \"$(srcdir)/d30v-insns\"" > tmp-insns | |
112 | $(M4) < $(srcdir)/d30v-insns >> tmp-insns | |
113 | @echo "Generating short version ..." | |
114 | ../igen/igen \ | |
115 | -G gen-zero-r0 \ | |
116 | -G direct-access \ | |
117 | -G default-nia-minus-one \ | |
118 | -G conditional-issue \ | |
119 | -G verify-slot \ | |
120 | -G field-widths \ | |
121 | -F short,emul \ | |
122 | -B 32 \ | |
123 | -P "s_" \ | |
124 | -o $(srcdir)/dc-short \ | |
125 | -k $(srcdir)/ic-d30v \ | |
126 | -n $(srcdir)/d30v-insns -i tmp-insns \ | |
127 | -n s_icache.h -hc tmp-icache.h \ | |
128 | -n s_icache.c -c tmp-icache.c \ | |
129 | -n s_semantics.h -hs tmp-semantics.h \ | |
130 | -n s_semantics.c -s tmp-semantics.c \ | |
131 | -n s_idecode.h -hd tmp-idecode.h \ | |
132 | -n s_idecode.c -d tmp-idecode.c \ | |
133 | -n s_model.h -hm tmp-model.h \ | |
134 | -n s_model.c -m tmp-model.c \ | |
135 | -n s_support.h -hf tmp-support.h \ | |
136 | -n s_support.c -f tmp-support.c $(FILTER) | |
137 | $(srcdir)/../../move-if-change tmp-icache.h s_icache.h | |
138 | $(srcdir)/../../move-if-change tmp-icache.c s_icache.c | |
139 | $(srcdir)/../../move-if-change tmp-idecode.h s_idecode.h | |
140 | $(srcdir)/../../move-if-change tmp-idecode.c s_idecode.c | |
141 | $(srcdir)/../../move-if-change tmp-semantics.h s_semantics.h | |
142 | $(srcdir)/../../move-if-change tmp-semantics.c s_semantics.c | |
143 | $(srcdir)/../../move-if-change tmp-model.h s_model.h | |
144 | $(srcdir)/../../move-if-change tmp-model.c s_model.c | |
145 | $(srcdir)/../../move-if-change tmp-support.h s_support.h | |
146 | $(srcdir)/../../move-if-change tmp-support.c s_support.c | |
147 | @echo "Generating long version ..." | |
148 | ../igen/igen \ | |
149 | -G gen-zero-r0 \ | |
150 | -G direct-access \ | |
151 | -G default-nia-minus-one \ | |
152 | -G conditional-issue \ | |
153 | -G field-widths \ | |
154 | -F long,emul \ | |
155 | -B 64 \ | |
156 | -P "l_" \ | |
157 | -o $(srcdir)/dc-short \ | |
158 | -k $(srcdir)/ic-d30v \ | |
159 | -i tmp-insns \ | |
160 | -n l_icache.h -hc tmp-icache.h \ | |
161 | -n l_icache.c -c tmp-icache.c \ | |
162 | -n l_semantics.h -hs tmp-semantics.h \ | |
163 | -n l_semantics.c -s tmp-semantics.c \ | |
164 | -n l_idecode.h -hd tmp-idecode.h \ | |
165 | -n l_idecode.c -d tmp-idecode.c \ | |
166 | -n l_model.h -hm tmp-model.h \ | |
167 | -n l_model.c -m tmp-model.c \ | |
168 | -n l_support.h -hf tmp-support.h \ | |
169 | -n l_support.c -f tmp-support.c $(FILTER) | |
170 | $(srcdir)/../../move-if-change tmp-icache.h l_icache.h | |
171 | $(srcdir)/../../move-if-change tmp-icache.c l_icache.c | |
172 | $(srcdir)/../../move-if-change tmp-idecode.h l_idecode.h | |
173 | $(srcdir)/../../move-if-change tmp-idecode.c l_idecode.c | |
174 | $(srcdir)/../../move-if-change tmp-semantics.h l_semantics.h | |
175 | $(srcdir)/../../move-if-change tmp-semantics.c l_semantics.c | |
176 | $(srcdir)/../../move-if-change tmp-model.h l_model.h | |
177 | $(srcdir)/../../move-if-change tmp-model.c l_model.c | |
178 | $(srcdir)/../../move-if-change tmp-support.h l_support.h | |
179 | $(srcdir)/../../move-if-change tmp-support.c l_support.c | |
180 | @echo "Generating instruction database ..." | |
181 | ../igen/igen \ | |
182 | -G field-widths \ | |
183 | -F short,long,emul \ | |
184 | -B 64 \ | |
185 | -o $(srcdir)/dc-short \ | |
186 | -k $(srcdir)/ic-d30v \ | |
187 | -i tmp-insns \ | |
188 | -n itable.h -ht tmp-itable.h \ | |
189 | -n itable.c -t tmp-itable.c $(FILTER) | |
190 | $(srcdir)/../../move-if-change tmp-itable.h itable.h | |
191 | $(srcdir)/../../move-if-change tmp-itable.c itable.c | |
192 | touch tmp-igen | |
193 | ||
194 | ENGINE_H = \ | |
195 | sim-main.h \ | |
196 | $(srcdir)/../common/sim-basics.h \ | |
197 | config.h \ | |
198 | $(srcdir)/../common/sim-config.h \ | |
199 | $(srcdir)/../common/sim-inline.h \ | |
200 | $(srcdir)/../common/sim-types.h \ | |
201 | $(srcdir)/../common/sim-bits.h \ | |
202 | $(srcdir)/../common/sim-endian.h \ | |
203 | itable.h \ | |
204 | l_idecode.h s_idecode.h \ | |
205 | cpu.h \ | |
206 | alu.h \ | |
207 | $(srcdir)/../common/sim-alu.h \ | |
208 | $(srcdir)/../common/sim-core.h \ | |
209 | $(srcdir)/../common/sim-events.h \ | |
210 | ||
211 | engine.o: engine.c $(ENGINE_H) | |
212 | sim-calls.o: sim-calls.c $(ENGINE_H) $(srcdir)/../common/sim-utils.h $(srcdir)/../common/sim-options.h | |
213 | cpu.o: cpu.c $(ENGINE_H) | |
214 | s_support.o: s_support.c $(ENGINE_H) | |
215 | l_support.o: l_support.c $(ENGINE_H) | |
216 | s_semantics.o: s_semantics.c $(ENGINE_H) | |
217 | l_semantics.o: l_semantics.c $(ENGINE_H) |