From: Kenta MURATA Date: 2002-10-20T03:33:55+09:00 Subject: [ruby-dev:18542] ruby.m4 --Multipart_Sun_Oct_20_03:32:55_2002-1 Content-Type: text/plain; charset=ISO-2022-JP むらけんです. configure.in で ruby の存在を検証するための m4 マクロ定義を書 きました.使い方は,いたって一般的で AM_CHECK_RUBY(1.6.4, [...], [...]) というやつです.これで,ruby が見付からない場合はエラーを吐き ます.見付かった場合は,次の make 変数を定義します (カッコ内は 変数の中身の元). ruby_libdir (Config::CONFIG['rubylibdir']) ruby_archdir (Config::CONFIG['archdir']) ruby_sitelibdir (Config::CONFIG['sitelibdir']) ruby_sitearchdir (Config::CONFIG['sitearchdir']) RUBY_CFLAGS (Config::CONFIG['CCDLFLAGS'] と Config::CONFIG['CFLAGS'] と "-I$(ruby_archdir)" の結合) RUBY_LIBS (Config::CONFIG['LDFLAGS'] と Config::CONFIG['DLDFLAGS'] の結合) RUBY_DLEXT (Config::CONFIG['DLEXT']) RUBY_LDSHARED (Config::CONFIG['LDSHARED']) よかったら使ってください. -- 1024D/2A3FDBE6 2001-08-26 Kenta MURATA (MURAKEN) Key fingerprint = 622A 61D3 280F 4991 4833 5724 8E2D C5E1 2A3F DBE6 --Multipart_Sun_Oct_20_03:32:55_2002-1 Content-Type: application/octet-stream Content-Disposition: attachment; filename="ruby.m4" Content-Transfer-Encoding: 7bit # Configure check for Ruby # Kenta MURATA dnl AM_CHECK_RUBY([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for Ruby, and define RUBY_CFLAGS, RUBY_LIBS, RUBY_LDSHARED, RUBY_DLEXT, dnl ruby_libdir, ruby_archdir, ruby_sitelibdir and ruby_sitearchdir dnl AC_DEFUN(AM_CHECK_RUBY, [dnl dnl Get the cflags and libraries from the rbconfig.rb dnl save_CFLAGS=$CFLAGS save_LIBS=$LIBS AC_PATH_PROG(RUBY, ruby, no) if test "$RUBY" = "no"; then AC_MSG_ERROR([*** ruby is not found.]) fi minimum_version=ifelse([$1], ,1.4.4, $1) AC_MSG_CHECKING([for Ruby - version >= $minimum_version]) ruby_major_version=`$RUBY -e "print RUBY_VERSION.split('.')[[0]]"` ruby_minor_version=`$RUBY -e "print RUBY_VERSION.split('.')[[1]]"` ruby_micro_version=`$RUBY -e "print RUBY_VERSION.split('.')[[2]]"` if `$RUBY -e " major_version = RUBY_VERSION.split('.')[[0]].to_i minor_version = RUBY_VERSION.split('.')[[1]].to_i micro_version = RUBY_VERSION.split('.')[[2]].to_i min_major_version = '$minimum_version'.split('.')[[0]].to_i min_minor_version = '$minimum_version'.split('.')[[1]].to_i min_micro_version = '$minimum_version'.split('.')[[2]].to_i if ((major_version > min_major_version) || ((major_version == min_major_version) && (minor_version > min_minor_version)) || ((major_version == min_major_version) && (minor_version == min_minor_version) && (micro_version > min_micro_version))) then exit 1 end exit 0"`; then AC_MSG_RESULT([no]) AC_MSG_ERROR([*** Ruby version is smaller.]) fi AC_MSG_RESULT([yes]) ruby_libdir=`$RUBY -r rbconfig -e "puts Config::CONFIG[['rubylibdir']]"` ruby_archdir=`$RUBY -r rbconfig -e "puts Config::CONFIG[['archdir']]"` ruby_sitelibdir=`$RUBY -r rbconfig -e "puts Config::CONFIG[['sitelibdir']]"` ruby_sitearchdir=`$RUBY -r rbconfig -e "puts Config::CONFIG[['sitearchdir']]"` CFLAGS=`$RUBY -r rbconfig -e "puts Config::CONFIG[['CCDLFLAGS']]"` RUBY_CFLAGS="$RUBY_CFLAGS $CFLAGS" CFLAGS=`$RUBY -r rbconfig -e "puts Config::CONFIG[['CFLAGS']]"` RUBY_CFLAGS="$RUBY_CFLAGS $CFLAGS" if test -e "$ruby_archdir/ruby.h"; then RUBY_CFLAGS="$RUBY_CFLAGS -I\$(ruby_archdir)"; else AC_MSG_ERROR([*** can't find header files for ruby.]) fi RUBY_LDSHARED=`$RUBY -r rbconfig -e "puts Config::CONFIG[['LDSHARED']]"` LIBS=`$RUBY -r rbconfig -e "puts Config::CONFIG[['LDFLAGS']]"` RUBY_LIBS="$RUBY_LIBS $LIBS" LIBS=`$RUBY -r rbconfig -e "puts Config::CONFIG[['DLDFLAGS']]"` RUBY_LIBS="$RUBY_LIBS $LIBS" RUBY_DLEXT=`$RUBY -r rbconfig -e "puts Config::CONFIG[['DLEXT']]"` CLFAGS=$save_CFLAGS LIBS=$save_LIBS AC_SUBST(RUBY_CFLAGS) AC_SUBST(RUBY_LIBS) AC_SUBST(RUBY_DLEXT) AC_SUBST(RUBY_LDSHARED) AC_SUBST(ruby_libdir) AC_SUBST(ruby_archdir) AC_SUBST(ruby_sitelibdir) AC_SUBST(ruby_sitearchdir) ]) --Multipart_Sun_Oct_20_03:32:55_2002-1--