iolanguageを/usr/local以外にインストール
アドオンが動いたのを確認した程度なので、不具合が出るかもしれませんが
一応簡単なメモでも。
修正する箇所が少ないので、Makefileを直接修正します。
INSTALL_PREFIX ?= /インストール/したい/ディレクトリ ... DLL_COMMAND := -shared -Wl,-soname="/インストール/したい/ディレクトリ/lib/libiovmall.so"
↑の2行を修正したら、make; make install.
後はio動かして、NullAddonでもUserでも簡単なアドオンが動けば大丈夫でしょう。
2010/05/18 *追記*
久しぶりにやったら↑じゃ動かなかったので書き直し。
... 26: #DLL_COMMAND := -shared -Wl,-soname="libiovmall.so" <- コメントアウトする 27: DLL_COMMAND := -shared -Wl,-soname="/インストール/したい/ディレクトリ/lib/libiovmall.so" <-コメントアウト外す ...
上記のコメントを修正したら
$ make INSTALL_PREFIX=/hoge
$ make install INSTALL_PREFIX=/hoge
でインストール。これで外部ライブラリに影響されないアドオンは動くはず。
(UserとかRangeとか)
ここで注意しておかなきゃならないのは、アンインストール時にも
$ make uninstall INSTALL_PREFIX=/hoge
と、INSTALL_PREFIXを指定してやらなければならない事。
ちなみに未だSGMLは /use/local に決め打ちでインストールされてしまうので、
make する時には実行中の権限には気をつけて。
対処方法は↓で。
2010/01/02 *追記*
あけましておめでとうございます。
今年も何卒よろしくお願い致します。
さて↑の状態で大丈夫だろうと思っていたら、SGMLアドオン辺りが使えなかったりした。
libsgmlのmakefile.inが酷い。
configure && make したものを /usr/local に決め打ちでインストールするようです。
僕は早々に心が折れたので、インストール後に手動でlibsgml関係の移動をしました。
$ mv /usr/local/include/sgml /インストール/したい/ディレクトリ/include $ mv /usr/local/lib/libsgml.* /インストール/したい/ディレクトリ/lib
あとldからlibsgml.soを呼べるようにしないといけないので、
$ cat >> runio.sh << EOF >#!/bin/bash >export LD_LIBRARY_PATH="/インストール/したい/ディレクトリ/lib" >/インストール/したい/ディレクトリ/bin/io $1 >EOF
みたいなスクリプト作って、これにioのソース渡して動かすようにしてます。
Twitterでパッチ書いてくれた方がいるのですが、
僕が公開するのも変な話ですので、気になる方は自分宛に連絡ください。