opam install z3 が "clang: error: unsupported option '-fopenmp'" で落ちる

解決策

ocamlc, ocamlopt の -cc オプションで clang の代わりに gcc を指定させる.
バッドノウハウだが, ocamlc, ocamlopt, ocamlfind を wrap する.

前提

  • gcc にパスが通っている
  • ocmalfind がinstallされている

コマンドを理解してから使ってください

ocamlcのwrap用sh
cc=`which gcc`

dir="$(dirname $(which ocamlc))"

if [ ! -e $dir/ocamlc_ -a -e $dir/ocamlc ]; then
  mv "$dir/ocamlc" "$dir/ocamlc_"
fi

if [ -e $dir/ocamlc_ ]; then
  echo "#\!/bin/sh
\`dirname \$0\`/ocamlc_ \"\$@\" -cc \"$cc\"
" > "$dir/ocamlc"
  chmod 755 "$dir/ocamlc"
fi
ocamlfindのwrap用sh
cc=`which gcc`

dir="$(dirname $(which ocamlfind))"

if [ ! -e $dir/ocamlfind_ -a -e $dir/ocamlfind ]; then
  mv "$dir/ocamlfind" "$dir/ocamlfind_"
fi

if [ -e $dir/ocamlfind_ ]; then
  echo "#\!/bin/sh

if [ \"\$1\" = \"ocamlc\" ] || [ \"$1\" = \"ocamlopt\" ]; then
  \`dirname \$0\`/ocamlfind_ \"\$@\" -cc \"$cc\"
else
  \`dirname \$0\`/ocamlfind_ \"\$@\"
fi" > "$dir/ocamlfind"
  chmod 755 $dir/ocamlfind
fi