# The following works for many configurations, though not all.
Set obj_format `echo {target_canonical} | sed -e 's/.*-.*-//'`
+Set target_os `echo {target_canonical} | sed -e 's/.*-.*-//'`
Set bfd_gas no
Set EXTRA_OBJECTS ""
+# Default emulation.
+
+Set em generic
+
If "{target_canonical}" =~ /m68k-apple-macos/
Set obj_format "coff"
Set TDEFINES '-d M68KCOFF'
Set EXTRA_OBJECTS '"{o}"m68k-parse.c.o'
+
Else If "{target_canonical}" =~ /powerpc-apple-macos/
Set obj_format "coff"
Set bfd_gas yes
-Else If "{target_canonical}" =~ /i386-unknown-go32/
+ Set em macos
+
+Else If "{target_canonical}" =~ /i386-\Option-x-go32/
Set obj_format "coff"
Set TDEFINES '-d I386COFF'
-Else If "{target_canonical}" =~ /m68k-unknown-coff/
+
+Else If "{target_canonical}" =~ /m68k-\Option-x-coff/
Set TDEFINES '-d M68KCOFF'
+
Else If "{target_canonical}" =~ /mips-idt-ecoff/
Set bfd_gas yes
- Set TDEFINES '-d TARGET_BYTES_BIG_ENDIAN'
-Else If "{target_canonical}" =~ /sh-hitachi-hms/
+ Set TDEFINES '-d TARGET_BYTES_BIG_ENDIAN=1'
+
+Else If "{target_canonical}" =~ /mips-\Option-x-\Option-x/
+ # Assume other OSes etc use ELF
+ Set obj_format "elf"
+ Set bfd_gas yes
+ Set TDEFINES '-d TARGET_BYTES_BIG_ENDIAN=1'
+ forward-include "{srcroot}"bfd:elf-bfd.h 'bfd/elf-bfd.h'
+
+Else If "{target_canonical}" =~ /sh-\Option-x-hms/
Set obj_format "coff"
forward-include "{srcroot}"opcodes:sh-opc.h 'opcodes/sh-opc.h'
End If
forward-include "{srcdir}"config:obj-{obj_format}.c obj-format.c
forward-include "{srcdir}"config:obj-{obj_format}.h obj-format.h
-# Default emulation.
-
-forward-include "{srcdir}"config:te-generic.h targ-env.h
+forward-include "{srcdir}"config:te-{em}.h targ-env.h
# Special cases for float handling.
Echo -n '#define TARGET_CPU "' >> "{o}"conf.new
Echo -n "{target_cpu}" >> "{o}"conf.new
Echo '"' >> "{o}"conf.new
+Echo -n '#define TARGET_OS "' >> "{o}"conf.new
+Echo -n "{target_os}" >> "{o}"conf.new
+Echo '"' >> "{o}"conf.new
Echo -n '#define TARGET_ALIAS "' >> "{o}"conf.new
Echo -n "{target_alias}" >> "{o}"conf.new
Echo '"' >> "{o}"conf.new