Gauche > Archives > 2010/01/16

2010/01/16 02:11:36 UTC(び)
#
#!/bin/sh
# Helper script to handle building libgauche.dylib on MacOSX
# Assumes $TARGETLIB is set by the caller.
CCLD=$1
shift
if echo "$*" | grep dynamiclib > /dev/null 2>&1 ; then
  libname=`echo "$*" | sed -n 's/.*-o  *\(libgauche-[0-9.]*\.dylib\).*/\1/p'`
  $CCLD -install_name ${TARGETLIB}/${libname} "$@"
else
  $CCLD "$@"
fi
#
こうしたら動きました
#
ただ、本当は-install_nameをどうするかちゃんと検討した方がいいかも
#
つまり、libgauche-0.9.1になった時、libgauche-0.9.x ならライブラリとして互換性があるのか、just 0.9.1でなければだめなのか、とか
#
install_nameは*.dylib自体につく属性なので
#
1.0に到達するまでは、justでいいのかな
#
--- src/link-dylib	(revision 7012)
+++ src/link-dylib	(working copy)
@@ -4,7 +4,8 @@
 CCLD=$1
 shift
 if echo "$*" | grep dynamiclib > /dev/null 2>&1 ; then
-  $CCLD -install_name ${TARGETLIB}/libgauche.dylib "$@"
+  libname=`echo "$*" | sed -n 's/.*-o  *\(libgauche-[0-9.]*\.dylib\).*/\1/p'`
+  $CCLD -install_name ${TARGETLIB}/${libname} "$@"
 else
   $CCLD "$@"
 fi
2010/01/16 02:20:52 UTCshiro
#
libgauche-x.y.dylibのx.yはAPI versionで、基本的にmicro versionに対しては不変です。つまり、1.0になるまでの0.9.xでは常にライブラリ名はlibgauche-0.9.dylibで、ABI互換性も保たれます。
#
(ただ、もしかすると1.0のプレリリース的に0.9.99みたいなのを出すかもしれなくて、そいういう時は例外的にABI versionを先行して1.0にあげるかもしれません。つまりlibgauche-1.0.dylibになる)
#
2つ上の文 s/API version/ABI version/
2010/01/16 02:36:13 UTC(び)
#
了解です
2010/01/16 03:08:34 UTCshiro
#
rev7014に反映しました。ご確認ください>(び)
2010/01/16 06:25:26 UTC(び)
#
make checkは通りましたが、make install-checkすると
#
Testing records ...                                              gosh: "error": Compile Error: cannot find file "gauche/record" in *load-path* ("/Users/bizenn/lib/gauche" "/usr/local/share/gauche/site/lib" "/usr/local/share/gauche/0.9.1_pre1/lib" "/usr/local/share/gauche/0.9/lib")
"./test-record.scm":4:(use gauche.record)
#
すいませんちょっとでかけますので、続きがあれば6時間後になります
2010/01/16 07:19:16 UTCshiro
#
あっそっちは私のミスです
#
新しく増えたファイルをinstallしてなかった。rev7015で直しました。
2010/01/16 12:57:43 UTC(び)
#
r7015でinstall-checkまで通りました
2010/01/16 13:07:06 UTCshiro
#
まはろ〜