1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-11-04 08:17:17 -05:00
elinks/config/m4/ruby.m4
Jonas Fonseca ca7a70b243 Revisit Ruby version checking fix
The version checking was recently reworked in commit
14d5ff3b17, however use of 'puts' is wrong
because it returns nil and thus always causes the check to exit with code
1.

The issue was brought up by dalias. Acked on IRC by Thomas Adam.
2006-11-18 11:23:24 +01:00

108 lines
3.1 KiB
Plaintext

dnl Thank you very much Vim for this lovely ruby configuration
dnl The hitchhiked code is from Vim configure.in version 1.98
AC_DEFUN([EL_CONFIG_SCRIPTING_RUBY],
[
AC_MSG_CHECKING([for Ruby])
CONFIG_SCRIPTING_RUBY_WITHVAL="no"
CONFIG_SCRIPTING_RUBY="no"
EL_SAVE_FLAGS
AC_ARG_WITH(ruby,
[ --with-ruby enable Ruby support],
[CONFIG_SCRIPTING_RUBY_WITHVAL="$withval"])
if test "$CONFIG_SCRIPTING_RUBY_WITHVAL" != no; then
CONFIG_SCRIPTING_RUBY="yes"
fi
AC_MSG_RESULT($CONFIG_SCRIPTING_RUBY)
if test "$CONFIG_SCRIPTING_RUBY" = "yes"; then
if test -d "$CONFIG_SCRIPTING_RUBY_WITHVAL"; then
RUBY_PATH="$CONFIG_SCRIPTING_RUBY_WITHVAL:$PATH"
else
RUBY_PATH="$PATH"
fi
AC_PATH_PROG(CONFIG_SCRIPTING_RUBY, ruby, no, $RUBY_PATH)
if test "$CONFIG_SCRIPTING_RUBY" != "no"; then
AC_MSG_CHECKING(Ruby version)
if $CONFIG_SCRIPTING_RUBY -e 'exit((VERSION or RUBY_VERSION) >= "1.6.0")' >/dev/null 2>/dev/null; then
ruby_version=`$CONFIG_SCRIPTING_RUBY -e 'puts "#{VERSION rescue RUBY_VERSION}"'`
AC_MSG_RESULT($ruby_version)
AC_MSG_CHECKING(for Ruby header files)
rubyhdrdir=`$CONFIG_SCRIPTING_RUBY -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
if test "X$rubyhdrdir" != "X"; then
AC_MSG_RESULT($rubyhdrdir)
RUBY_CFLAGS="-I$rubyhdrdir"
rubylibs=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
if test "X$rubylibs" != "X"; then
RUBY_LIBS="$rubylibs"
fi
librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
if test -f "$rubyhdrdir/$librubyarg"; then
librubyarg="$rubyhdrdir/$librubyarg"
else
rubylibdir=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
if test -f "$rubylibdir/$librubyarg"; then
librubyarg="$rubylibdir/$librubyarg"
elif test "$librubyarg" = "libruby.a"; then
dnl required on Mac OS 10.3 where libruby.a doesn't exist
librubyarg="-lruby"
else
librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
fi
fi
if test "X$librubyarg" != "X"; then
RUBY_LIBS="$librubyarg $RUBY_LIBS"
fi
rubyldflags=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
if test "X$rubyldflags" != "X"; then
LDFLAGS="$rubyldflags $LDFLAGS"
fi
LIBS="$RUBY_LIBS $LIBS"
CFLAGS="$RUBY_CFLAGS $CFLAGS"
CPPFLAGS="$CPPFLAGS $RUBY_CFLAGS"
AC_TRY_LINK([#include <ruby.h>],
[ruby_init();],
CONFIG_SCRIPTING_RUBY=yes, CONFIG_SCRIPTING_RUBY=no)
else
AC_MSG_RESULT([Ruby header files not found])
fi
else
AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
fi
fi
fi
EL_RESTORE_FLAGS
if test "$CONFIG_SCRIPTING_RUBY" != "yes"; then
if test -n "$CONFIG_SCRIPTING_RUBY_WITHVAL" &&
test "$CONFIG_SCRIPTING_RUBY_WITHVAL" != no; then
AC_MSG_ERROR([Ruby not found])
fi
else
EL_CONFIG(CONFIG_SCRIPTING_RUBY, [Ruby])
LIBS="$LIBS $RUBY_LIBS"
AC_SUBST(RUBY_CFLAGS)
AC_SUBST(RUBY_LIBS)
fi
])