#どう考えても動くはずなのに動かないというバグ、よりも、どう考えても動かないはずなのに動いちゃってるというバグ、の方が難しい。気がする。というか後者はより深いところで大きな勘違いをしているという感じか。
#*** ERROR: Autoloaded symbol file-exists? is not defined in the module gauche.fileutil
#make install-checkすると出る...(FreeBSD 8.2R)
#あ、それ、前のバージョンのlibgauche.soが残ってるんじゃないかな。
#(普通にやって残っちゃうとしたらなんか対策しないとだめだな)
#ほほー
#make install前に古いのを手動で消してみます。HEADをごんごん上げて来てるだけなので、リリースから上げるなら問題ないのかしらん
#Lionだとmake install-checkもすんなり通りますね
#Linuxでも、Jenkinsで回してる自動ビルドが同じことでこけたので、何かしら対策が必要かもしれません。
#% ls -l /usr/local/lib
total 16019
drwxr-xr-x 7 root wheel 7 Aug 6 2011 gauche-0.9/
-rwxr-xr-x 1 root wheel 5547794 Feb 18 17:29 libgauche-0.9.so*
lrwxr-xr-x 1 root wheel 20 Feb 13 10:27 libgauche-0.9.so.0@ -> libgauche-0.9.so.0.2
-rwxr-xr-x 1 root wheel 5065847 Jul 29 2011 libgauche-0.9.so.0.1*
-rwxr-xr-x 1 root wheel 5512005 Feb 13 10:27 libgauche-0.9.so.0.2*
#何か変...
#libgauche-0.9.so.0.2が残るのがおかしいですね。シンボリックリンクを作るスクリプトがおかしいのかな。
#そして全部消してmake installしたら、libgauche-0.9.so.0.2がないと言われた。さっきの原因はこれっぽいですね
#あるいは、0.9.1の頃から営々と/usr/local/libの下を掃除しなかったせいかもしれないですね。
#srcの下にはlibgauche-0.9.so.0.2できてますよね?
#% ls -l src/libgauche-*
-rwxr-xr-x 1 root bizenn 5547794 Feb 18 19:18 src/libgauche-0.9.so*
lrwxr-xr-x 1 bizenn bizenn 20 Feb 18 19:17 src/libgauche-0.9.so.0@ -> libgauche-0.9.so.0.2
-rwxr-xr-x 1 bizenn bizenn 5547794 Feb 18 19:17 src/libgauche-0.9.so.0.2*
lrwxr-xr-x 1 bizenn bizenn 56 Feb 18 19:11 src/libgauche-uvector.so@ -> /usr/home/bizenn/Gauche/ext/uvector/libgauche-uvector.so
#ですが、/usr/local/lib/libgauche* を全部消してからビルドしたものをmake installすると
#/libexec/ld-elf.so.1: Shared object "libgauche-0.9.so.0.2" not found, required by "gosh"
gmake[1]: *** [install] Error 1
gmake[1]: Leaving directory `/usr/home/bizenn/Gauche/src'
gmake: *** [install-pkg] Error 2
#なんかへんだな。うちの環境だとlibgauche-0.9.soもlibgauche-0.9.so.0.2へのシンボリックリンクになる。
#% ls -l /usr/local/lib/libgauche*
-rwxr-xr-x 1 root wheel 5547794 Feb 18 19:18 /usr/local/lib/libgauche-0.9.so*
#コピーされてないっぽい
#ちゃんとMakefileを読むべきかな
#out-of-tree build関連でmakefileいじったから、何かへまったかも。
#ちょっと夕食
#make installでは、通常のinstallコマンドでまずlibgauche-0.9.soをコピーし、最後にmakeverslinkスクリプトでそれをlibgauche-0.9.so.0.2にリネームしてlibgauche-0.9.soからのリンクとする。ただし、makeverslinkスクリプト単独で重複して走らされた時に余計なことをしないように、libgauche-0.9.soが既にリンクなら何もしない。この後者の条件がうまく動いてないのかな。
#だもんでlibgauche-0.9.soをコピーしたところで終わっちゃってる。