+ @echo >> $@
+ @echo 'import Distribution.System' >> $@
+ @echo >> $@
+ @echo '#include "ghc_boot_platform.h"' >> $@
+ @echo >> $@
+ @echo 'cBuildPlatformString :: String' >> $@
+ @echo 'cBuildPlatformString = BuildPlatform_NAME' >> $@
+ @echo 'cHostPlatformString :: String' >> $@
+ @echo 'cHostPlatformString = HostPlatform_NAME' >> $@
+ @echo 'cTargetPlatformString :: String' >> $@
+ @echo 'cTargetPlatformString = TargetPlatform_NAME' >> $@
+ @echo >> $@
+# Sync this with checkArch in configure.ac
+ @echo 'cTargetArch :: Arch' >> $@
+ @echo '#if i386_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = I386' >> $@
+ @echo '#elif x86_64_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = X86_64' >> $@
+ @echo '#elif powerpc_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = PPC' >> $@
+ @echo '#elif powerpc64_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = PPC64' >> $@
+ @echo '#elif sparc_TARGET_ARCH || sparc64_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = Sparc' >> $@
+ @echo '#elif arm_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = Arm' >> $@
+ @echo '#elif mips_TARGET_ARCH || mipseb_TARGET_ARCH || mipsel_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = Mips' >> $@
+ @echo '#elif 0' >> $@
+ @echo 'cTargetArch = SH' >> $@
+ @echo '#elif ia64_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = IA64' >> $@
+ @echo '#elif s390_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = S390' >> $@
+ @echo '#elif alpha_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = Alpha' >> $@
+ @echo '#elif hppa_TARGET_ARCH || hppa1_1_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = Hppa' >> $@
+ @echo '#elif rs6000_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = Rs6000' >> $@
+ @echo '#elif m68k_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = M68k' >> $@
+ @echo '#elif vax_TARGET_ARCH' >> $@
+ @echo 'cTargetArch = Vax' >> $@
+ @echo '#else' >> $@
+ @echo '#error Unknown target arch' >> $@
+ @echo '#endif' >> $@
+ @echo >> $@