xref: /netbsd-src/external/gpl3/gdb.old/dist/sim/mips/Makefile.in (revision 2dd295436a0082eb4f8d294f4aa73c223413d0f2)
1#    Makefile template for Configure for the MIPS simulator.
2#    Written by Cygnus Support.
3
4SHELL = @SHELL@
5
6## COMMON_PRE_CONFIG_FRAG
7
8srcdir=@srcdir@
9srcroot=$(srcdir)/../../
10
11# Object files created by various simulator generators.
12
13
14SIM_IGEN_OBJ = \
15	support.o \
16	itable.o \
17	semantics.o \
18	idecode.o \
19	icache.o \
20	@mips_igen_engine@ \
21	irun.o \
22
23
24SIM_M16_OBJ = \
25	m16_support.o \
26	m16_semantics.o \
27	m16_idecode.o \
28	m16_icache.o \
29	\
30	m32_support.o \
31	m32_semantics.o \
32	m32_idecode.o \
33	m32_icache.o \
34	\
35	itable.o \
36	m16run.o \
37
38SIM_MICROMIPS_OBJ = \
39	micromips16_support.o \
40	micromips16_semantics.o \
41	micromips16_idecode.o \
42	micromips16_icache.o \
43	\
44	micromips32_support.o \
45	micromips32_semantics.o \
46	micromips32_idecode.o \
47	micromips32_icache.o \
48	\
49	micromips_m32_support.o \
50	micromips_m32_semantics.o \
51	micromips_m32_idecode.o \
52	micromips_m32_icache.o \
53	\
54	itable.o \
55	micromipsrun.o \
56
57
58SIM_MULTI_OBJ = @sim_multi_obj@ \
59		itable.o \
60		multi-run.o \
61
62MIPS_EXTRA_LIBS = @mips_extra_libs@
63
64SIM_OBJS = \
65	interp.o \
66	$(SIM_@sim_gen@_OBJ) \
67	$(SIM_NEW_COMMON_OBJS) \
68	cp1.o \
69	mdmx.o \
70	dsp.o \
71	sim-main.o \
72	sim-resume.o \
73
74
75# List of flags to always pass to $(CC).
76SIM_SUBTARGET=@SIM_SUBTARGET@
77SIM_EXTRA_CFLAGS = $(SIM_SUBTARGET)
78
79SIM_EXTRA_CLEAN = clean-extra
80SIM_EXTRA_DISTCLEAN = distclean-extra
81
82SIM_EXTRA_ALL = $(SIM_@sim_gen@_ALL)
83
84SIM_EXTRA_LIBS = $(MIPS_EXTRA_LIBS)
85
86
87## COMMON_POST_CONFIG_FRAG
88
89interp.o: $(srcdir)/interp.c config.h sim-main.h itable.h
90
91m16run.o: sim-main.h m16_idecode.h m32_idecode.h m16run.c $(SIM_EXTRA_DEPS)
92
93micromipsrun.o: sim-main.h micromips16_idecode.h micromips32_idecode.h \
94		micromips_m32_idecode.h micromipsrun.c $(SIM_EXTRA_DEPS)
95
96multi-run.o: multi-include.h tmp-mach-multi
97
98../igen/igen:
99	cd ../igen && $(MAKE)
100
101IGEN_TRACE= # -G omit-line-numbers # -G trace-rule-selection -G trace-rule-rejection -G trace-entries # -G trace-all
102IGEN_INSN=$(srcdir)/mips.igen
103IGEN_DC=$(srcdir)/mips.dc
104M16_DC=$(srcdir)/m16.dc
105MICROMIPS32_DC=$(srcdir)/micromips.dc
106MICROMIPS16_DC=$(srcdir)/micromips16.dc
107IGEN_INCLUDE=\
108	$(srcdir)/micromipsdsp.igen \
109	$(srcdir)/micromips.igen \
110	$(srcdir)/m16.igen \
111	$(srcdir)/m16e.igen \
112	$(srcdir)/mdmx.igen \
113	$(srcdir)/mips3d.igen \
114	$(srcdir)/sb1.igen \
115	$(srcdir)/tx.igen \
116	$(srcdir)/vr.igen \
117	$(srcdir)/dsp.igen \
118	$(srcdir)/dsp2.igen \
119	$(srcdir)/mips3264r2.igen \
120
121# NB:	Since these can be built by a number of generators, care
122#	must be taken to ensure that they are only dependant on
123#	one of those generators.
124BUILT_SRC_FROM_GEN = \
125	itable.h \
126	itable.c \
127
128SIM_IGEN_ALL = tmp-igen
129SIM_M16_ALL = tmp-m16
130SIM_MICROMIPS_ALL = tmp-micromips
131SIM_MULTI_ALL = tmp-multi
132
133$(BUILT_SRC_FROM_GEN): $(SIM_@sim_gen@_ALL)
134
135
136
137BUILT_SRC_FROM_IGEN = \
138	icache.h \
139	icache.c \
140	idecode.h \
141	idecode.c \
142	semantics.h \
143	semantics.c \
144	model.h \
145	model.c \
146	support.h \
147	support.c \
148	engine.h \
149	engine.c \
150	irun.c \
151
152$(BUILT_SRC_FROM_IGEN): tmp-igen
153
154tmp-igen: $(IGEN_INSN) $(IGEN_DC) ../igen/igen $(IGEN_INCLUDE)
155#	cd ../igen && $(MAKE)
156	../igen/igen \
157		$(IGEN_TRACE) \
158		-I $(srcdir) \
159		-Werror \
160		-Wnodiscard \
161		@sim_igen_flags@ \
162		-G gen-direct-access \
163		-G gen-zero-r0 \
164		-B 32 \
165		-H 31 \
166		-i $(IGEN_INSN) \
167		-o $(IGEN_DC) \
168		-x \
169		-n icache.h    -hc tmp-icache.h \
170		-n icache.c    -c  tmp-icache.c \
171		-n semantics.h -hs tmp-semantics.h \
172		-n semantics.c -s  tmp-semantics.c \
173		-n idecode.h   -hd tmp-idecode.h \
174		-n idecode.c   -d  tmp-idecode.c \
175		-n model.h     -hm tmp-model.h \
176		-n model.c     -m  tmp-model.c \
177		-n support.h   -hf tmp-support.h \
178		-n support.c   -f  tmp-support.c \
179		-n itable.h    -ht tmp-itable.h \
180		-n itable.c    -t  tmp-itable.c \
181		-n engine.h    -he tmp-engine.h \
182		-n engine.c    -e  tmp-engine.c \
183		-n irun.c      -r  tmp-irun.c
184	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.h icache.h
185	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.c icache.c
186	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h idecode.h
187	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c idecode.c
188	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h semantics.h
189	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c semantics.c
190	$(SHELL) $(srcdir)/../../move-if-change tmp-model.h model.h
191	$(SHELL) $(srcdir)/../../move-if-change tmp-model.c model.c
192	$(SHELL) $(srcdir)/../../move-if-change tmp-support.h support.h
193	$(SHELL) $(srcdir)/../../move-if-change tmp-support.c support.c
194	$(SHELL) $(srcdir)/../../move-if-change tmp-itable.h itable.h
195	$(SHELL) $(srcdir)/../../move-if-change tmp-itable.c itable.c
196	$(SHELL) $(srcdir)/../../move-if-change tmp-engine.h engine.h
197	$(SHELL) $(srcdir)/../../move-if-change tmp-engine.c engine.c
198	$(SHELL) $(srcdir)/../../move-if-change tmp-irun.c irun.c
199	touch tmp-igen
200
201BUILT_SRC_FROM_M16 = \
202	m16_icache.h \
203	m16_icache.c \
204	m16_idecode.h \
205	m16_idecode.c \
206	m16_semantics.h \
207	m16_semantics.c \
208	m16_model.h \
209	m16_model.c \
210	m16_support.h \
211	m16_support.c \
212	\
213	m32_icache.h \
214	m32_icache.c \
215	m32_idecode.h \
216	m32_idecode.c \
217	m32_semantics.h \
218	m32_semantics.c \
219	m32_model.h \
220	m32_model.c \
221	m32_support.h \
222	m32_support.c \
223
224$(BUILT_SRC_FROM_M16): tmp-m16
225
226tmp-m16: $(IGEN_INSN) $(IGEN_DC) ../igen/igen $(IGEN_INCLUDE)
227	cd ../igen && $(MAKE)
228	../igen/igen \
229		$(IGEN_TRACE) \
230		-I $(srcdir) \
231		-Werror \
232		-Wnodiscard \
233		@sim_m16_flags@ \
234		-G gen-direct-access \
235		-G gen-zero-r0 \
236		-B 16 \
237		-H 15 \
238		-i $(IGEN_INSN) \
239		-o $(M16_DC) \
240		-P m16_ \
241		-x \
242		-n m16_icache.h    -hc tmp-icache.h \
243		-n m16_icache.c    -c  tmp-icache.c \
244		-n m16_semantics.h -hs tmp-semantics.h \
245		-n m16_semantics.c -s  tmp-semantics.c \
246		-n m16_idecode.h   -hd tmp-idecode.h \
247		-n m16_idecode.c   -d  tmp-idecode.c \
248		-n m16_model.h     -hm tmp-model.h \
249		-n m16_model.c     -m  tmp-model.c \
250		-n m16_support.h   -hf tmp-support.h \
251		-n m16_support.c   -f  tmp-support.c \
252		#
253	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.h m16_icache.h
254	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.c m16_icache.c
255	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h m16_idecode.h
256	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c m16_idecode.c
257	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h m16_semantics.h
258	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c m16_semantics.c
259	$(SHELL) $(srcdir)/../../move-if-change tmp-model.h m16_model.h
260	$(SHELL) $(srcdir)/../../move-if-change tmp-model.c m16_model.c
261	$(SHELL) $(srcdir)/../../move-if-change tmp-support.h m16_support.h
262	$(SHELL) $(srcdir)/../../move-if-change tmp-support.c m16_support.c
263	../igen/igen \
264		$(IGEN_TRACE) \
265		-I $(srcdir) \
266		-Werror \
267		-Wnodiscard \
268		@sim_igen_flags@ \
269		-G gen-direct-access \
270		-G gen-zero-r0 \
271		-B 32 \
272		-H 31 \
273		-i $(IGEN_INSN) \
274		-o $(IGEN_DC) \
275		-P m32_ \
276		-x \
277		-n m32_icache.h    -hc tmp-icache.h \
278		-n m32_icache.c    -c  tmp-icache.c \
279		-n m32_semantics.h -hs tmp-semantics.h \
280		-n m32_semantics.c -s  tmp-semantics.c \
281		-n m32_idecode.h   -hd tmp-idecode.h \
282		-n m32_idecode.c   -d  tmp-idecode.c \
283		-n m32_model.h     -hm tmp-model.h \
284		-n m32_model.c     -m  tmp-model.c \
285		-n m32_support.h   -hf tmp-support.h \
286		-n m32_support.c   -f  tmp-support.c \
287		#
288	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.h m32_icache.h
289	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.c m32_icache.c
290	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h m32_idecode.h
291	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c m32_idecode.c
292	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h \
293						m32_semantics.h
294	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c \
295						m32_semantics.c
296	$(SHELL) $(srcdir)/../../move-if-change tmp-model.h m32_model.h
297	$(SHELL) $(srcdir)/../../move-if-change tmp-model.c m32_model.c
298	$(SHELL) $(srcdir)/../../move-if-change tmp-support.h m32_support.h
299	$(SHELL) $(srcdir)/../../move-if-change tmp-support.c m32_support.c
300	../igen/igen \
301		$(IGEN_TRACE) \
302		-I $(srcdir) \
303		-Werror \
304		-Wnodiscard \
305		-Wnowidth \
306		@sim_igen_flags@ @sim_m16_flags@ \
307		-G gen-direct-access \
308		-G gen-zero-r0 \
309		-i $(IGEN_INSN) \
310		-n itable.h    -ht tmp-itable.h \
311		-n itable.c    -t  tmp-itable.c \
312		#
313	$(SHELL) $(srcdir)/../../move-if-change tmp-itable.h itable.h
314	$(SHELL) $(srcdir)/../../move-if-change tmp-itable.c itable.c
315	touch tmp-m16
316
317BUILT_SRC_FROM_MICROMIPS = \
318	micromips16_icache.h \
319	micromips16_icache.c \
320	micromips16_idecode.h \
321	micromips16_idecode.c \
322	micromips16_semantics.h \
323	micromips16_semantics.c \
324	micromips16_model.h \
325	micromips16_model.c \
326	micromips16_support.h \
327	micromips16_support.c \
328	\
329	micromips32_icache.h \
330	micromips32_icache.c \
331	micromips32_idecode.h \
332	micromips32_idecode.c \
333	micromips32_semantics.h \
334	micromips32_semantics.c \
335	micromips32_model.h \
336	micromips32_model.c \
337	micromips32_support.h \
338	micromips32_support.c \
339	\
340	micromips_m32_icache.h \
341	micromips_m32_icache.c \
342	micromips_m32_idecode.h \
343	micromips_m32_idecode.c \
344	micromips_m32_semantics.h \
345	micromips_m32_semantics.c \
346	micromips_m32_model.h \
347	micromips_m32_model.c \
348	micromips_m32_support.h \
349	micromips_m32_support.c \
350
351$(BUILT_SRC_FROM_MICROMIPS): tmp-micromips
352
353tmp-micromips: $(IGEN_INSN) $(IGEN_DC) ../igen/igen $(IGEN_INCLUDE)
354	cd ../igen && $(MAKE)
355	../igen/igen \
356		$(IGEN_TRACE) \
357		-I $(srcdir) \
358		-Werror \
359		-Wnodiscard \
360		@sim_micromips16_flags@ \
361		-G gen-direct-access \
362		-G gen-zero-r0 \
363		-B 16 \
364		-H 15 \
365		-i $(IGEN_INSN) \
366		-o $(MICROMIPS16_DC) \
367		-P micromips16_ \
368		-x \
369		-n micromips16_icache.h    -hc tmp-icache.h \
370		-n micromips16_icache.c    -c  tmp-icache.c \
371		-n micromips16_semantics.h -hs tmp-semantics.h \
372		-n micromips16_semantics.c -s  tmp-semantics.c \
373		-n micromips16_idecode.h   -hd tmp-idecode.h \
374		-n micromips16_idecode.c   -d  tmp-idecode.c \
375		-n micromips16_model.h     -hm tmp-model.h \
376		-n micromips16_model.c     -m  tmp-model.c \
377		-n micromips16_support.h   -hf tmp-support.h \
378		-n micromips16_support.c   -f  tmp-support.c \
379		#
380	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.h \
381						micromips16_icache.h
382	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.c \
383						micromips16_icache.c
384	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h \
385						micromips16_idecode.h
386	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c \
387						micromips16_idecode.c
388	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h \
389						micromips16_semantics.h
390	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c \
391						micromips16_semantics.c
392	$(SHELL) $(srcdir)/../../move-if-change tmp-model.h \
393						micromips16_model.h
394	$(SHELL) $(srcdir)/../../move-if-change tmp-model.c \
395						micromips16_model.c
396	$(SHELL) $(srcdir)/../../move-if-change tmp-support.h \
397						micromips16_support.h
398	$(SHELL) $(srcdir)/../../move-if-change tmp-support.c \
399						micromips16_support.c
400	cd ../igen && $(MAKE)
401	../igen/igen \
402		$(IGEN_TRACE) \
403		-I $(srcdir) \
404		-Werror \
405		-Wnodiscard \
406		@sim_micromips_flags@ \
407		-G gen-direct-access \
408		-G gen-zero-r0 \
409		-B 32 \
410		-H 31 \
411		-i $(IGEN_INSN) \
412		-o $(MICROMIPS32_DC) \
413		-P micromips32_ \
414		-x \
415		-n micromips32_icache.h    -hc tmp-icache.h \
416		-n micromips32_icache.c    -c  tmp-icache.c \
417		-n micromips32_semantics.h -hs tmp-semantics.h \
418		-n micromips32_semantics.c -s  tmp-semantics.c \
419		-n micromips32_idecode.h   -hd tmp-idecode.h \
420		-n micromips32_idecode.c   -d  tmp-idecode.c \
421		-n micromips32_model.h     -hm tmp-model.h \
422		-n micromips32_model.c     -m  tmp-model.c \
423		-n micromips32_support.h   -hf tmp-support.h \
424		-n micromips32_support.c   -f  tmp-support.c \
425		#
426	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.h \
427						micromips32_icache.h
428	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.c \
429						micromips32_icache.c
430	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h  \
431						micromips32_idecode.h
432	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c \
433						micromips32_idecode.c
434	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h \
435						micromips32_semantics.h
436	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c \
437						micromips32_semantics.c
438	$(SHELL) $(srcdir)/../../move-if-change tmp-model.h \
439						micromips32_model.h
440	$(SHELL) $(srcdir)/../../move-if-change tmp-model.c  \
441						micromips32_model.c
442	$(SHELL) $(srcdir)/../../move-if-change tmp-support.h \
443						micromips32_support.h
444	$(SHELL) $(srcdir)/../../move-if-change tmp-support.c \
445						micromips32_support.c
446	../igen/igen \
447		$(IGEN_TRACE) \
448		-I $(srcdir) \
449		-Werror \
450		-Wnodiscard \
451		@sim_igen_flags@ \
452		-G gen-direct-access \
453		-G gen-zero-r0 \
454		-B 32 \
455		-H 31 \
456		-i $(IGEN_INSN) \
457		-o $(IGEN_DC) \
458		-P micromips_m32_ \
459		-x \
460		-n micromips_m32_icache.h    -hc tmp-icache.h \
461		-n micromips_m32_icache.c    -c  tmp-icache.c \
462		-n micromips_m32_semantics.h -hs tmp-semantics.h \
463		-n micromips_m32_semantics.c -s  tmp-semantics.c \
464		-n micromips_m32_idecode.h   -hd tmp-idecode.h \
465		-n micromips_m32_idecode.c   -d  tmp-idecode.c \
466		-n micromips_m32_model.h     -hm tmp-model.h \
467		-n micromips_m32_model.c     -m  tmp-model.c \
468		-n micromips_m32_support.h   -hf tmp-support.h \
469		-n micromips_m32_support.c   -f  tmp-support.c \
470		#
471	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.h \
472						micromips_m32_icache.h
473	$(SHELL) $(srcdir)/../../move-if-change tmp-icache.c \
474						micromips_m32_icache.c
475	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h \
476						micromips_m32_idecode.h
477	$(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c \
478						micromips_m32_idecode.c
479	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h \
480						micromips_m32_semantics.h
481	$(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c \
482						micromips_m32_semantics.c
483	$(SHELL) $(srcdir)/../../move-if-change tmp-model.h \
484						micromips_m32_model.h
485	$(SHELL) $(srcdir)/../../move-if-change tmp-model.c \
486						micromips_m32_model.c
487	$(SHELL) $(srcdir)/../../move-if-change tmp-support.h \
488						micromips_m32_support.h
489	$(SHELL) $(srcdir)/../../move-if-change tmp-support.c \
490						micromips_m32_support.c
491	../igen/igen \
492		$(IGEN_TRACE) \
493		-I $(srcdir) \
494		-Werror \
495		-Wnodiscard \
496		-Wnowidth \
497		@sim_igen_flags@ @sim_micromips_flags@ @sim_micromips16_flags@\
498		-G gen-direct-access \
499		-G gen-zero-r0 \
500		-i $(IGEN_INSN) \
501		-n itable.h    -ht tmp-itable.h \
502		-n itable.c    -t  tmp-itable.c \
503		#
504	$(SHELL) $(srcdir)/../../move-if-change tmp-itable.h itable.h
505	$(SHELL) $(srcdir)/../../move-if-change tmp-itable.c itable.c
506	touch tmp-micromips
507
508BUILT_SRC_FROM_MULTI = @sim_multi_src@
509SIM_MULTI_IGEN_CONFIGS = @sim_multi_igen_configs@
510
511$(BUILT_SRC_FROM_MULTI): tmp-multi
512tmp-multi: tmp-mach-multi tmp-itable-multi tmp-run-multi targ-vals.h
513tmp-mach-multi: $(IGEN_INSN) $(IGEN_DC) ../igen/igen $(IGEN_INCLUDE)
514	for t in $(SIM_MULTI_IGEN_CONFIGS); do \
515	  p=`echo $${t} | sed -e 's/:.*//'` ; \
516	  m=`echo $${t} | sed -e 's/.*:\(.*\):.*/\1/'` ; \
517	  f=`echo $${t} | sed -e 's/.*://'` ; \
518	  case $${p} in \
519	    micromips16*) e="-B 16 -H 15 -o $(MICROMIPS16_DC) -F 16" ;; \
520	    micromips32* | micromips64*) \
521		e="-B 32 -H 31 -o $(MICROMIPS32_DC) -F $${f}" ;; \
522	    micromips_m32*) \
523		e="-B 32 -H 31 -o $(IGEN_DC) -F $${f}"; \
524		m="mips32r2,mips3d,mdmx,dsp,dsp2,smartmips" ;; \
525	    micromips_m64*) \
526		e="-B 32 -H 31 -o $(IGEN_DC) -F $${f}"; \
527		m="mips64r2,mips3d,mdmx,dsp,dsp2,smartmips" ;; \
528	    m16*) e="-B 16 -H 15 -o $(M16_DC) -F 16" ;; \
529	    *) e="-B 32 -H 31 -o $(IGEN_DC) -F $${f}" ;; \
530	  esac; \
531	  ../igen/igen \
532		$(IGEN_TRACE) \
533		$${e} \
534		-I $(srcdir) \
535		-Werror \
536		-Wnodiscard \
537		-N 0 \
538		-M $${m} \
539		-G gen-direct-access \
540		-G gen-zero-r0 \
541		-i $(IGEN_INSN) \
542		-P $${p}_ \
543		-x \
544		-n $${p}_icache.h    -hc tmp-icache.h \
545		-n $${p}_icache.c    -c  tmp-icache.c \
546		-n $${p}_semantics.h -hs tmp-semantics.h \
547		-n $${p}_semantics.c -s  tmp-semantics.c \
548		-n $${p}_idecode.h   -hd tmp-idecode.h \
549		-n $${p}_idecode.c   -d  tmp-idecode.c \
550		-n $${p}_model.h     -hm tmp-model.h \
551		-n $${p}_model.c     -m  tmp-model.c \
552		-n $${p}_support.h   -hf tmp-support.h \
553		-n $${p}_support.c   -f  tmp-support.c \
554		-n $${p}_engine.h    -he tmp-engine.h \
555		-n $${p}_engine.c    -e  tmp-engine.c \
556	  || exit; \
557	  $(SHELL) $(srcdir)/../../move-if-change tmp-icache.h \
558						  $${p}_icache.h ; \
559	  $(SHELL) $(srcdir)/../../move-if-change tmp-icache.c \
560						  $${p}_icache.c ; \
561	  $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h \
562						  $${p}_idecode.h ; \
563	  $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c \
564						  $${p}_idecode.c ; \
565	  $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h \
566						  $${p}_semantics.h ; \
567	  $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c \
568						  $${p}_semantics.c ; \
569	  $(SHELL) $(srcdir)/../../move-if-change tmp-model.h \
570						  $${p}_model.h ; \
571	  $(SHELL) $(srcdir)/../../move-if-change tmp-model.c \
572						  $${p}_model.c ; \
573	  $(SHELL) $(srcdir)/../../move-if-change tmp-support.h \
574						  $${p}_support.h ; \
575	  $(SHELL) $(srcdir)/../../move-if-change tmp-support.c \
576						  $${p}_support.c ; \
577	  $(SHELL) $(srcdir)/../../move-if-change tmp-engine.h \
578						  $${p}_engine.h ; \
579	  $(SHELL) $(srcdir)/../../move-if-change tmp-engine.c \
580						  $${p}_engine.c ; \
581	done
582	touch tmp-mach-multi
583tmp-itable-multi: $(IGEN_INSN) $(IGEN_DC) ../igen/igen $(IGEN_INCLUDE)
584	../igen/igen \
585		$(IGEN_TRACE) \
586		-I $(srcdir) \
587		-Werror \
588		-Wnodiscard \
589		-Wnowidth \
590		-N 0 \
591		@sim_multi_flags@ \
592		-G gen-direct-access \
593		-G gen-zero-r0 \
594		-i $(IGEN_INSN) \
595		-n itable.h    -ht tmp-itable.h \
596		-n itable.c    -t  tmp-itable.c \
597		#
598	$(SHELL) $(srcdir)/../../move-if-change tmp-itable.h itable.h
599	$(SHELL) $(srcdir)/../../move-if-change tmp-itable.c itable.c
600	touch tmp-itable-multi
601tmp-run-multi: $(srcdir)/m16run.c $(srcdir)/micromipsrun.c
602	for t in $(SIM_MULTI_IGEN_CONFIGS); do \
603	  case $${t} in \
604	    m16*) \
605	      m=`echo $${t} | sed -e 's/^m16//' -e 's/:.*//'`; \
606	      sed <  $(srcdir)/m16run.c > tmp-run \
607		    -e "s/^sim_/m16$${m}_/" \
608		    -e "s/m16_/m16$${m}_/" \
609		    -e "s/m32_/m32$${m}_/" ; \
610	      $(SHELL) $(srcdir)/../../move-if-change tmp-run \
611						      m16$${m}_run.c ; \
612            ;;\
613	    micromips32*) \
614	      m=`echo $${t} | sed -e 's/^micromips32//' -e 's/:.*//'`; \
615	      sed <  $(srcdir)/micromipsrun.c > tmp-run \
616		    -e "s/^sim_/micromips32$${m}_/" \
617		    -e "s/micromips16_/micromips16$${m}_/" \
618		    -e "s/micromips32_/micromips32$${m}_/" \
619		    -e "s/m32_/m32$${m}_/" ; \
620	      $(SHELL) $(srcdir)/../../move-if-change tmp-run \
621						      micromips$${m}_run.c ; \
622             ;;\
623	    micromips64*) \
624	      m=`echo $${t} | sed -e 's/^micromips64//' -e 's/:.*//'`; \
625	      sed <  $(srcdir)/micromipsrun.c > tmp-run \
626		    -e "s/^sim_/micromips64$${m}_/" \
627		    -e "s/micromips16_/micromips16$${m}_/" \
628		    -e "s/micromips32_/micromips64$${m}_/" \
629		    -e "s/m32_/m64$${m}_/" ; \
630	      $(SHELL) $(srcdir)/../../move-if-change tmp-run \
631						      micromips$${m}_run.c ; \
632             ;;\
633	  esac \
634	done
635	touch tmp-run-multi
636
637clean-extra:
638	rm -f $(BUILT_SRC_FROM_GEN)
639	rm -f $(BUILT_SRC_FROM_IGEN)
640	rm -f $(BUILT_SRC_FROM_M16)
641	rm -f $(BUILT_SRC_FROM_MICROMIPS)
642	rm -f $(BUILT_SRC_FROM_MULTI)
643	rm -f tmp-*
644	rm -f micromips16*.o micromips32*.o m16*.o m32*.o itable*.o
645
646distclean-extra:
647	rm -f multi-include.h multi-run.c
648