made 'make install' install ruby module, too
[swftools.git] / m4 / ruby.m4
1 AC_DEFUN([RFX_CHECK_RUBY],
2 [
3 AC_PATH_PROG([RUBY], [ruby],,)
4
5 RUBY_CPPFLAGS=""
6 RUBY_LDFLAGS=""
7 RUBY_LIBS=""
8
9 rubylib=ruby18
10
11 AC_MSG_CHECKING([for ruby's include directory])
12 if test "x$RUBY" '!=' "x";then
13     rubyinc=`$RUBY -e 'require "rbconfig";puts Config::expand(Config::CONFIG.send("\x5b\x5d", "archdir"))' 2>/dev/null`
14     if test -d $rubyinc;then
15         AC_MSG_RESULT($rubyinc)
16
17         # If we got a sensible archdir, we also ask ruby to supply us with CPPFLAGS
18         # and LDFLAGS.
19         AC_MSG_CHECKING([for ruby's cpp flags])
20         rubycpp=`$RUBY -e 'require "rbconfig";puts Config::expand(Config::CONFIG.send("\x5b\x5d", "CPPFLAGS"))' 2>/dev/null`
21         AC_MSG_RESULT($rubycpp)
22         
23         AC_MSG_CHECKING([for ruby's ld flags])
24         rubyld=`$RUBY -e 'require "rbconfig";puts Config::expand(Config::CONFIG.send("\x5b\x5d", "LIBRUBYARG_SHARED"))' 2>/dev/null`
25         AC_MSG_RESULT($rubyld)
26         
27         AC_MSG_CHECKING([for ruby library name])
28         rubylib=`$RUBY -e 'require "rbconfig";puts Config::expand(Config::CONFIG.send("\x5b\x5d", "RUBY_SO_NAME"))' 2>/dev/null`
29         AC_MSG_RESULT($rubylib)
30         
31         RUBY_CPPFLAGS="$rubycpp -I$rubyinc $RUBY_CPPFLAGS"
32         RUBY_LDFLAGS="$rubyld $RUBY_LDFLAGS"
33         RUBY_INSTALLDIR="$rubyinc"
34     else
35         AC_MSG_RESULT('unknown')
36     fi
37 else
38     AC_MSG_RESULT('unknown')
39 fi
40
41 #OLDLDFLAGS="$LDFLAGS"
42 #LDFLAGS="$LDFLAGS $RUBY_LDFLAGS"
43 #AC_CHECK_LIB($rubylib, rb_define_method, HAVE_RUBY_LIB=1,)
44 #LDFLAGS="$OLDLDFLAGS"
45
46 OLDCPPFLAGS="$CPPFLAGS"
47 CPPFLAGS="$CPPFLAGS $RUBY_CPPFLAGS"
48 AC_CHECK_HEADERS([ruby.h],[HAVE_RUBY_H=1])
49 CPPFLAGS="$OLDCPPFLAGS"
50
51 AC_MSG_CHECKING([whether we should compile the ruby module])
52 if test "x${HAVE_RUBY_H}" '!=' "x";then
53     #RUBY_LIBS="$RUBY_LIBS -l$rubylib"
54
55     cat > conftest.c << EOF
56 #include <ruby.h>
57 static VALUE foobar;
58 VALUE foobar_set_foo(VALUE module, VALUE _key, VALUE _value)
59 {
60     return Qnil;
61 }
62 int Init_foobar()
63 {
64     foobar = rb_define_module("foobar");
65     rb_define_module_function(foobar, "set_foo", foobar_set_foo, 2);
66 }
67 int main() {return 0;}
68 EOF
69     ac_link='$CC $SHARED $CPPFLAGS $RUBY_CPPFLAGS $CFLAGS conftest.c $LDFLAGS $RUBY_LDFLAGS $LIBS $RUBY_LIBS -o conftest${ac_exeext}'
70     if { (eval echo ruby.m4: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
71         RUBY_OK=yes
72     else
73         echo "configure: failed program was:" >&5
74         cat conftest.c >&5
75     fi
76     rm -f conftest*
77 fi
78
79 if test "x${RUBY_OK}" '=' "xyes"; then 
80     AC_MSG_RESULT([yes])
81     AC_SUBST(RUBY_LIBS)
82     AC_SUBST(RUBY_CPPFLAGS)
83     AC_SUBST(RUBY_LDFLAGS)
84     AC_SUBST(RUBY_INSTALLDIR)
85 else
86     AC_MSG_RESULT([no])
87     RUBY_CPPFLAGS=""
88     RUBY_LDFLAGS=""
89     RUBY_LIBS=""
90     RUBY_INSTALLDIR=""
91 fi
92 ])