case "${host}" in
  rs6000-ibm-aix3.1 | rs6000-ibm-aix)
                        frag=mh-aix ;;
  *-*-cxux7*)		frag=mh-cxux7 ;;
  *-*-freebsd2.1.*)	frag=mh-fbsd21 ;;
  *-*-freebsd2.2.*)	frag=mh-fbsd21 ;;
  i[345]86-*-windows*)	frag=mh-windows ;;
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
    *-*-cygwin32*) ;;
    hppa*-*-*)	   frags="${frags} ../../config/mh-papic" ;;
    i[3456]86-*-*) frags="${frags} ../../config/mh-x86pic" ;;
    *-*-*)	   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} ${libiberty_topdir}/move-if-change temp-frag xhost-mkfrag
