case "${host}" in
  rs6000-ibm-aix3.1 | rs6000-ibm-aix)
                        frag=mh-aix ;;
  *-*-cxux7*)		frag=mh-cxux7 ;;
  *-*-freebsd2.1.*)	frag=mh-fbsd21 ;;
  *-*-freebsd2.2.[012])	frag=mh-fbsd21 ;;
  i370-*-opened*)       frag=mh-openedition ;;
  i[345]86-*-windows*)	frag=mh-windows ;;
  *-*-beos*)		frag=mh-beos ;;
esac

frags=$frag

# If they didn't specify --enable-shared, don't generate shared libs.
case "${enable_shared}" in
  yes) shared=yes ;;
  no) shared=no ;;
  "") shared=no ;;
  *) shared=yes ;;
esac
if [ "${shared}" = "yes" ]; then
  case "${host}" in
    *-*-cygwin*)	;;
    alpha*-*-linux*)	frags="${frags} ../../config/mh-elfalphapic" ;;
    arm*-*-*)		frags="${frags} ../../config/mh-armpic" ;;
    hppa*-*-*)		frags="${frags} ../../config/mh-papic" ;;
    i[3456]86-*-*)	frags="${frags} ../../config/mh-x86pic" ;;
    powerpc*-*-aix*)	;;
    powerpc*-*-*)	frags="${frags} ../../config/mh-ppcpic" ;;
    sparc*-*-*)		frags="${frags} ../../config/mh-sparcpic" ;;
    *-*-*)		frags="${frags} ../../config/mh-${host_cpu}pic" ;;
  esac
fi

echo "# Warning: this fragment is automatically generated" > temp-frag

for frag in ${frags}; do
  case ${frag} in
    ../* )
      if [ ${srcdir} = . ]; then
	[ -n "${with_target_subdir}" ] && frag=../${frag}
	[ -n "${with_multisrctop}" ] && frag=${with_multisrctop}${frag}
      fi
      ;;
  esac
  frag=${srcdir}/${xsrcdir}config/$frag
  if [ -f ${frag} ]; then
    echo "Appending ${frag} to xhost-mkfrag"
    echo "# Following fragment copied from ${frag}" >> temp-frag
    cat ${frag} >> temp-frag
  fi
done

# record if we want to build shared libs.
if [ "${shared}" = "yes" ]; then
  echo enable_shared = yes >> temp-frag
else
  echo enable_shared = no >> temp-frag
fi

frag=xhost-mkfrag
${CONFIG_SHELL-/bin/sh} ${libiberty_topdir}/move-if-change temp-frag xhost-mkfrag
