# Configuration fragment for opcodes.

Set target_arch `echo {target_canonical} | sed -e 's/-.*-.*//'`

Set archname ARCH_{target_arch}

If "{target_arch}" =~ /m68k/
	Set BFD_MACHINES  '"{o}"m68k-dis.c.o "{o}"m68k-opc.c.o'
Else If "{target_arch}" =~ /powerpc/
	Set BFD_MACHINES  '"{o}"ppc-dis.c.o "{o}"ppc-opc.c.o'
Else If "{target_arch}" =~ /i386/
	Set BFD_MACHINES  '"{o}"i386-dis.c.o'
Else If "{target_arch}" =~ /mips/
	Set BFD_MACHINES  '"{o}"mips-dis.c.o "{o}"mips-opc.c.o'
Else If "{target_arch}" =~ /sh/
	Set BFD_MACHINES  '"{o}"sh-dis.c.o'
End If

Echo '# Start from mpw-config.in'			 > "{o}"mk.tmp
Echo "BFD_MACHINES = " {BFD_MACHINES}			>> "{o}"mk.tmp
Echo "ARCHDEFS = -d" {archname}				>> "{o}"mk.tmp
Echo '# End from mpw-config.in'				>> "{o}"mk.tmp

Echo '/* config.h.  Generated by mpw-configure.  */'	 > "{o}"config.new
Echo '#include "mpw.h"'		 			>> "{o}"config.new

MoveIfChange "{o}"config.new "{o}"config.h
