AC_CHECK_PROG(RUBY_EXECUTABLE, ruby, ruby) if test -z "RUBY_EXECUTABLE"; then DO_NOT_COMPILE="$DO_NOT_COMPILE qtruby" BUILD_qtruby=false else RUBY_MAJOR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MAJOR))"` RUBY_MINOR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MINOR))"` RUBY_ARCHDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(archdir))"` RUBY_SITEARCHDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitearchdir))"` RUBY_SITEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitelibdir))"` RUBY_LIBDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(libdir))"` RUBY_RUBYLIBDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubylibdir))"` RUBY_LIBRUBYARG=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(LIBRUBYARG_SHARED))"` RUBY_SERIES="$RUBY_MAJOR$RUBY_MINOR" if test "$RUBY_SERIES" -ge "19"; then AC_DEFINE_UNQUOTED(HAVE_RUBY_1_9, 1, [Defines if your system has Ruby 1.9.x]) fi if test `${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyhdrdir))"` = "true"; then RUBY_INCLUDEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyhdrdir))"` if test `${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyarchhdrdir))"` = "true"; then RUBY_ARCHINCLUDEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyarchhdrdir))"` else RUBY_ARCH=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(arch))"` RUBY_ARCHINCLUDEDIR=${RUBY_INCLUDEDIR}/${RUBY_ARCH} fi RUBY_CFLAGS="-I${RUBY_INCLUDEDIR} -I${RUBY_ARCHINCLUDEDIR}" else RUBY_INCLUDEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(archdir))"` RUBY_CFLAGS="-I${RUBY_INCLUDEDIR}" fi # check if Ruby requires explicit specification of C++ standard AC_LANG_SAVE AC_LANG_CPLUSPLUS SAVED_CXXFLAGS="$CXXFLAGS" for CXX_STD_TEST in "" 11 14 17; do CXXFLAGS="$SAVED_CXXFLAGS" if test "x$CXX_STD_TEST" = "x"; then AC_MSG_CHECKING([Ruby build with default C++ standard]) RUBY_CXXFLAGS="" else AC_MSG_CHECKING([Ruby build with C++$CXX_STD_TEST]) RUBY_CXXFLAGS="-std=c++$CXX_STD_TEST" fi CXXFLAGS="$SAVED_CXXFLAGS $RUBY_CFLAGS $RUBY_CXXFLAGS" AC_TRY_COMPILE([ #include ],[ ], ruby_cxx_std=yes, ruby_cxx_std=no ) if test "x$ruby_cxx_std" = "xyes"; then AC_SUBST(RUBY_CXXFLAGS) AC_MSG_RESULT(yes) break else AC_MSG_RESULT(no) fi done CXXFLAGS="$SAVED_CXXFLAGS" AC_LANG_RESTORE # Removes trailing slashes, if any, to avoid fail to install with recent libtool. RUBY_ARCHDIR=${RUBY_ARCHDIR%/} RUBY_SITEDIR=${RUBY_SITEDIR%/} RUBY_LIBDIR=${RUBY_LIBDIR%/} RUBY_RUBYLIBDIR=${RUBY_RUBYLIBDIR%/} AC_MSG_RESULT([\ archdir $RUBY_ARCHDIR, sitearchdir $RUBY_SITEARCHDIR, sitedir $RUBY_SITEDIR, rubylibdir $RUBY_RUBYLIBDIR, libdir $RUBY_LIBDIR, includedir $RUBY_INCLUDEDIR, librubyarg $RUBY_LIBRUBYARG, cflags $RUBY_CFLAGS, cxxflags $RUBY_CXXFLAGS]) AC_SUBST(RUBY_ARCHDIR) AC_SUBST(RUBY_SITEARCHDIR) AC_SUBST(RUBY_SITEDIR) AC_SUBST(RUBY_RUBYLIBDIR) AC_SUBST(RUBY_LIBDIR) AC_SUBST(RUBY_INCLUDEDIR) AC_SUBST(RUBY_LIBRUBYARG) AC_SUBST(RUBY_CFLAGS) BUILD_qtruby=true fi AM_CONDITIONAL(BUILD_qtruby, $BUILD_qtruby)