1#! /bin/sh
2
3# set -x
4
5: ${LN_S:="ln -s"}
6
7# rm -f Makefile Makefile.md README.md qtmd.h qtmdb.s qtmdc.c qtmds.s configuration
8rm -f qtmdc.c qtmds.s configuration
9
10case $1 in
11	axp*)
12		: "DEC AXP"
13		case $1 in
14			axp-osf1*)
15				: "Compile using /bin/cc under OSF 1.x."
16#				${LN_S} md/axp.1.Makefile Makefile.md
17				;;
18			axp-osf2*)
19				: "Compile using /bin/cc under OSF 2.x."
20#				${LN_S} md/axp.1.Makefile Makefile.md
21				;;
22			*)
23				: "Compile using GNU CC."
24#				${LN_S} md/axp.Makefile Makefile.md
25				;;
26		esac
27
28#		${LN_S} md/axp.h qtmd.h
29		${LN_S} md/axp.c qtmdc.c
30		${LN_S} md/axp.s qtmds.s
31#		${LN_S} md/axp_b.s qtmdb.s
32#		${LN_S} md/axp.README README.md
33		iter_init=1000000000
34		iter_runone=10000000
35		iter_blockint=10000000
36		iter_blockfloat=10000000
37		iter_vainit0=10000000
38		iter_vainit2=10000000
39		iter_vainit4=10000000
40		iter_vainit8=10000000
41		iter_vastart0=10000000
42		iter_vastart2=10000000
43		iter_vastart4=10000000
44		iter_vastart8=10000000
45		iter_bench_call_reg=10000000
46		iter_bench_call_imm=10000000
47		iter_bench_add=100000000
48		iter_bench_load=100000000
49		;;
50
51       hppa*)
52		: "HP's PA-RISC 1.1 processors."
53
54		case $1 in
55			hppa-cnx-spp*)
56				: "Convex SPP (PA-RISC 1.1 processors)."
57#				${LN_S} md/hppa-cnx.Makefile Makefile.md
58				;;
59			*)
60#				${LN_S} md/hppa.Makefile Makefile.md
61				;;
62		esac
63
64#		${LN_S} md/hppa.h qtmd.h
65#		${LN_S} md/null.c qtmdc.c
66		${LN_S} md/hppa.s qtmds.s
67#		${LN_S} md/hppa_b.s qtmdb.s
68		iter_init=10000000
69		iter_runone=1000000
70		iter_blockint=1000000
71		iter_blockfloat=1000000
72		iter_vainit0=1000000
73		iter_vainit2=1000000
74		iter_vainit4=1000000
75		iter_vainit8=1000000
76		iter_vastart0=1000000
77		iter_vastart2=1000000
78		iter_vastart4=1000000
79		iter_vastart8=1000000
80		iter_bench_call_reg=10000000
81		iter_bench_call_imm=10000000
82		iter_bench_add=100000000
83		iter_bench_load=100000000
84		;;
85
86	x86_64*)
87		case $1 in
88			iX86-ss*)
89				: "Assembler comments '//'"
90				sed 's/\/\*/\/\//' < md/i386_64.s > qtmds.s
91				;;
92				
93			*)
94				${LN_S} md/iX86_64.s qtmds.s
95				;;
96		esac
97		: "Intel X386 64-bit and compatibles"
98#		${LN_S} md/null.c qtmdc.c
99		iter_init=10000000
100		iter_runone=1000000
101		iter_blockint=1000000
102		iter_blockfloat=1000000
103		iter_vainit0=1000000
104		iter_vainit2=1000000
105		iter_vainit4=1000000
106		iter_vainit8=1000000
107		iter_vastart0=1000000
108		iter_vastart2=1000000
109		iter_vastart4=1000000
110		iter_vastart8=1000000
111		iter_bench_call_reg=1000000
112		iter_bench_call_imm=1000000
113		iter_bench_add=100000000
114		iter_bench_load=10000000
115		;;
116
117    iX86*)
118        case $1 in
119            iX86-ss*)
120                : "Assembler comments '//'"
121                sed 's/\/\*/\/\//' < md/i386.s > qtmds.s
122#               sed 's/\/\*/\/\//' < md/i386_b.s > qtmdb.s
123                ;;
124                
125            *)
126                ${LN_S} md/i386.s qtmds.s
127#               ${LN_S} md/i386_b.s qtmdb.s
128                ;;
129        esac
130        : "Intel 80386 and compatibles (not '286...)"
131#       ${LN_S} md/default.Makefile Makefile.md
132#       ${LN_S} md/i386.h qtmd.h
133#       ${LN_S} md/null.c qtmdc.c
134#       ${LN_S} md/i386.README README.md
135        iter_init=10000000
136        iter_runone=1000000
137        iter_blockint=1000000
138        iter_blockfloat=1000000
139        iter_vainit0=1000000
140        iter_vainit2=1000000
141        iter_vainit4=1000000
142        iter_vainit8=1000000
143        iter_vastart0=1000000
144        iter_vastart2=1000000
145        iter_vastart4=1000000
146        iter_vastart8=1000000
147        iter_bench_call_reg=1000000
148        iter_bench_call_imm=1000000
149        iter_bench_add=100000000
150        iter_bench_load=10000000
151        ;;
152
153
154	m68k)
155		: "Motorola 68000 family -- incomplete!"
156#		${LN_S} md/default.Makefile Makefile.md
157#		${LN_S} md/m68k.h qtmd.h
158#		${LN_S} md/null.c qtmdc.c
159		${LN_S} md/m68k.s qtmds.s
160#		${LN_S} md/m68k_b.s qtmdb.s
161#		${LN_S} md/null.README README.md
162		;;
163
164	m88k)
165		: "Motorola 88000 family"
166#		${LN_S} md/m88k.Makefile Makefile.md
167#		${LN_S} md/m88k.h qtmd.h
168		${LN_S} md/m88k.c qtmdc.c
169		${LN_S} md/m88k.s qtmds.s
170#		${LN_S} md/m88k_b.s qtmdb.s
171#		${LN_S} md/null.README README.md
172		iter_init=1000000
173		iter_runone=100000
174		iter_blockint=100000
175		iter_blockfloat=100000
176		iter_vainit0=100000
177		iter_vainit2=100000
178		iter_vainit4=100000
179		iter_vainit8=100000
180		iter_vastart0=100000
181		iter_vastart2=100000
182		iter_vastart4=100000
183		iter_vastart8=100000
184		iter_bench_call_reg=100000000
185		iter_bench_call_imm=100000000
186		iter_bench_add=1000000000
187		iter_bench_load=100000000
188		;;
189
190	mips*)
191		: "MIPS R2000 and R3000."
192
193		case $1 in
194			mips-irix5*)
195				: "Silicon Graphics Irix with dynamic linking"
196				: "Use mips for irix4."
197				${LN_S} md/mips-irix5.s qtmds.s
198				;;
199			*)
200				${LN_S} md/mips.s qtmds.s
201				;;
202		esac
203
204#		${LN_S} md/default.Makefile Makefile.md
205#		${LN_S} md/mips.h qtmd.h
206#		${LN_S} md/null.c qtmdc.c
207#		${LN_S} md/mips_b.s qtmdb.s
208#		${LN_S} md/null.README README.md
209		iter_init=10000000
210		iter_runone=10000000
211		iter_blockint=10000000
212		iter_blockfloat=10000000
213		iter_vainit0=1000000
214		iter_vainit2=1000000
215		iter_vainit4=1000000
216		iter_vainit8=1000000
217		iter_vastart0=1000000
218		iter_vastart2=1000000
219		iter_vastart4=1000000
220		iter_vastart8=1000000
221		iter_bench_call_reg=100000000
222		iter_bench_call_imm=100000000
223		iter_bench_add=1000000000
224		iter_bench_load=100000000
225		;;
226
227	sparc*)
228		: "SPARC processors"
229		case $1 in
230			sparc-os2*)
231				sed 's/_qt_/qt_/' md/sparc.s > qtmds.s
232#				sed 's/_b_/b_/' md/sparc_b.s > qtmdb.s
233#				${LN_S} md/solaris.README README.md
234				;;
235			*)
236				${LN_S} md/sparc.s qtmds.s
237#				${LN_S} md/sparc_b.s qtmdb.s
238#				${LN_S} md/null.README README.md
239				;;
240		esac
241
242 		${LN_S} md/default.Makefile Makefile.md
243#		${LN_S} md/sparc.h qtmd.h
244#		${LN_S} md/null.c qtmdc.c
245		iter_init=10000000
246		iter_runone=1000000
247		iter_blockint=1000000
248		iter_blockfloat=1000000
249		iter_vainit0=1000000
250		iter_vainit2=1000000
251		iter_vainit4=1000000
252		iter_vainit8=1000000
253		iter_vastart0=1000000
254		iter_vastart2=1000000
255		iter_vastart4=1000000
256		iter_vastart8=1000000
257		iter_bench_call_reg=10000000
258		iter_bench_call_imm=10000000
259		iter_bench_add=100000000
260		iter_bench_load=100000000
261		;;
262
263	vax*)
264		: "DEC VAX processors."
265#		${LN_S} md/default.Makefile Makefile.md
266#		${LN_S} md/vax.h qtmd.h
267#		${LN_S} md/null.c qtmdc.c
268		${LN_S} md/vax.s qtmds.s
269#		${LN_S} md/vax_b.s qtmdb.s
270#		${LN_S} md/null.README README.md
271		iter_init=1000000
272		iter_runone=100000
273		iter_blockint=100000
274		iter_blockfloat=100000
275		iter_vainit0=100000
276		iter_vainit2=100000
277		iter_vainit4=100000
278		iter_vainit8=100000
279		iter_vastart0=100000
280		iter_vastart2=100000
281		iter_vastart4=100000
282		iter_vastart8=100000
283		iter_bench_call_reg=10000000
284		iter_bench_call_imm=10000000
285		iter_bench_add=10000000
286		iter_bench_load=1000000
287		;;
288
289	ksr1)
290		: "Kendall Square Research model KSR-1."
291		: "Varargs is not currently supported."
292#		${LN_S} md/ksr1.Makefile Makefile.md
293#		${LN_S} md/ksr1.h qtmd.h
294#		${LN_S} md/null.c qtmdc.c
295		${LN_S} md/ksr1.s qtmds.s
296#		${LN_S} md/ksr1_b.s qtmdb.s
297#		${LN_S} md/null.README README.md
298		iter_init=1000000
299		iter_runone=100000
300		iter_blockint=100000
301		iter_blockfloat=100000
302		iter_vainit0=100000
303		iter_vainit2=100000
304		iter_vainit4=100000
305		iter_vainit8=100000
306		iter_vastart0=100000
307		iter_vastart2=100000
308		iter_vastart4=100000
309		iter_vastart8=100000
310		iter_bench_call_reg=10000000
311		iter_bench_call_imm=10000000
312		iter_bench_add=10000000
313		iter_bench_load=1000000
314		;;
315
316    powerpc*)
317        : "PowerPC IBM/Motorola processors."
318
319        case $1 in
320			powerpc-apple-macosx*)
321				: "PowerPC using Mach Application Binary Interface"
322                : "NOTICE: Darwin assembler syntax is used:"
323                : "  (i.e. registers are named rx not %rx)"
324                ${LN_S} md/default.Makefile Makefile.md
325#               ${LN_S} md/powerpc_mach.h qtmd.h
326                ${LN_S} md/powerpc_mach.s qtmds.s
327                ;;
328            powerpc-linux*)
329                : "PowerPC using System V Application Binary Interface"
330                : "  (e.g. LinuxPPC)"
331                : "Use powerpc-darwin for MacOS X and other systems based on Mac
332h ABI"
333#               ${LN_S} md/powerpc_sys5.h qtmd.h
334                ${LN_S} md/powerpc_sys5.s qtmds.s
335                ;;
336            *)
337                echo "Unknown configuration"
338                echo "See md/powerpc.README for documentation"
339                echo "Use powerpc-darwin for MacOS X and other systems based on
340Mach ABI"
341                echo "Use powerpc-linux for Linux and other systems based on Sys
342tem V ABI"
343                exit 1
344                ;;
345
346        esac
347
348        ${LN_S} md/powerpc.c qtmdc.c
349        ${LN_S} md/powerpc.README README.md
350        ;;
351
352
353	pthreads*)
354		: Posix thread support rather than Quick threads.
355#		${LN_S} md/hppa.h qtmd.h
356#		${LN_S} md/null.c qtmdc.c
357#		${LN_S} md/null.s qtmds.s
358#		${LN_S} md/hppa_b.s qtmdb.s
359#		cp md/pthreads.Makefile Makefile
360		exit 0
361		;;
362
363	clean)
364		: Deconfigure
365		exit 0
366		;;
367
368	*)
369		echo "Unknown configuration"
370		exit 1
371		;;
372esac
373
374# cat Makefile.md Makefile.base > Makefile
375
376echo set config_machine=$1 >> configuration
377echo set config_init=$iter_init >> configuration
378echo set config_runone=$iter_runone >> configuration
379echo set config_blockint=$iter_blockint >> configuration
380echo set config_blockfloat=$iter_blockfloat >> configuration
381echo set config_vainit0=$iter_vainit0 >> configuration
382echo set config_vainit2=$iter_vainit2 >> configuration
383echo set config_vainit4=$iter_vainit4 >> configuration
384echo set config_vainit8=$iter_vainit8 >> configuration
385echo set config_vastart0=$iter_vastart0 >> configuration
386echo set config_vastart2=$iter_vastart2 >> configuration
387echo set config_vastart4=$iter_vastart4 >> configuration
388echo set config_vastart8=$iter_vastart8 >> configuration
389echo set config_bcall_reg=$iter_bench_call_reg >> configuration
390echo set config_bcall_imm=$iter_bench_call_imm >> configuration
391echo set config_b_add=$iter_bench_add >> configuration
392echo set config_b_load=$iter_bench_load >> configuration
393