# Configuration fragment for binutils.

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

# (should canonicalize arch name) */

Set archname ARCH_{target_arch}

Set underscore 0

If "{target_canonical}" =~ /sh-hitachi-hms/
	Set underscore 1
End If

Echo '# From mpw-config.in'				 > "{o}"mk.tmp
Echo "ARCHDEFS = -d" {archname}				>> "{o}"mk.tmp
Echo "UNDERSCORE = " {underscore}			>> "{o}"mk.tmp
Echo "BUILD_NLMCONV = "					>> "{o}"mk.tmp
Echo "BUILD_SRCONV = "					>> "{o}"mk.tmp
Echo "SYSINFO_PROG = "					>> "{o}"mk.tmp
Echo "BUILD_DLLTOOL = "					>> "{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
