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" ;;
    *-*-*)		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
