以前弊社の技術 blog の DoRuby でMacOSX の sed に気をつけろという記事を書いたのですが、今日 vimperator の Makefile がいろいろ酷い感じになっていたので修正したのを気に coreutils の方も気になりだしました。
たぶん、 Linux とかしか使ってない人は GNU style なものばかり使ってしまうのですが、そこらへんを Makefile でやられてしまうと Mac OS X ユーザが即死するというオチになってしまっています。
具体的には cp コマンドすら互換性がない状態です。そりゃ BSD style だから当たり前なんだけど、結構きっついのです。
なので、こんな風に書き換えてあげると幸せになります。
CP = cp ... $(CP) -Lr --parents hoge -t fuga
これで cp を Mac OS X の MacPorts の gcp で実行するにはこんな感じになります。
$ make CP=gcp
動作させるにはもちろん MacPorts などで coreutils を入れておく必要があります。他のパッケージシステムが coreutils のやつをどうやってエイリアスしているのかはわかりませんが、たぶん似たようなものがあるのだろうと思います。
とりあえず、 vimperator の方は ML にパッチを送ったので、いろいろ参考になるかもしれません。