OCamlの四方山話

メモとか

ツール類

私家ライブラリとか

俺Makefileについて

macOS、Linux、FreeBSDでだいたい動きます。
Windowsのことはもう知らない。

make # コンパイルだけ
make clean # 中間ファイルを削除
make install PREFIX=$(ocamlc -where)/../..
make uninstall PREFIX=$(ocamlc -where)/../..
TARGET  ターゲット環境 デフォルトは $(gcc -dumpmachine)
OCAMLC  ターゲット環境向けに使用するocamlcデフォルトは $TARGET-ocamlc
OCAMLOPTターゲット環境向けに使用するocamloptデフォルトは $TARGET-ocamlopt
BUILDDIR中間ファイルを置く場所デフォルトは $TARGET.noindex
PREFIX  ライブラリの配置場所デフォルトは $($OCAMLC -where)/../..
DESTDIR 別の場所にインストールしたいとき用でPREFIXの前に付加されますデフォルトは空

例えばFreeBSD向けにクロスコンパイラx86-pc-freebsd11-gccとx86-pc-freebsd11-ocamloptが用意してある場合は次のようにクロスコンパイルできます。
(ocamlcは一般にクロスで動作できませんので空を指定します。)

make TARGET=x86-pc-freebsd11 OCAMLC= OCAMLOPT=x86-pc-freebsd11-ocamlopt

古いもの

とても古いです。

↑をまとめてocamldocにかけたもの。……如何にコメントを書いてないかよくわかる。

俺makefileについて

WindowsとOSXで確認してます。作業方針→http://d.hatena.ne.jp/ytqwerty/20080820#p1

make BUILDDIR=... # コンパイルだけ
make clean BUILDDIR=... # 中間ファイルを削除
make install BUILDDIR=... DESTDIR=... # 指定位置に配置
make uninstall DESTDIR=... # 指定位置から削除
  • BUILDDIR …… 中間ファイルを置く場所(default: source/build)
  • DESTDIR …… ライブラリの配置場所 (default: ocamlc -where)
  • INCDIR …… .cmiファイル探索パス(必要な場合のみ)

各種ライブラリをmakeできるようにする作業

とても古いです。

ライブラリの作者様が書いてくださっているconfigure/makefileを捨てて俺makefileを付けてます。