summaryrefslogtreecommitdiffstats
path: root/lib/kross
diff options
context:
space:
mode:
authorgregory guy <[email protected]>2019-11-24 21:05:57 +0100
committerSlávek Banko <[email protected]>2019-11-25 16:40:12 +0100
commit920efbbb59107888dc5fe4823978db83c48b047a (patch)
tree2c75d0724a7d34902dee8b54d7e4d0ad82346286 /lib/kross
parentc5a03617aad72b392739dbaad444663cf883cb6e (diff)
downloadkoffice-920efbbb59107888dc5fe4823978db83c48b047a.tar.gz
koffice-920efbbb59107888dc5fe4823978db83c48b047a.zip
Fix bug #2056, koffice does not rely anymore on pkg-config
to build Ruby binding, only rbconfig.rb is needed. Signed-off-by: gregory guy <[email protected]> Signed-off-by: Slávek Banko <[email protected]> (cherry picked from commit fa79ac9effade022edb992f78f7efe1da4fc1f87)
Diffstat (limited to 'lib/kross')
-rw-r--r--lib/kross/configure.in.in169
1 files changed, 69 insertions, 100 deletions
diff --git a/lib/kross/configure.in.in b/lib/kross/configure.in.in
index b1be3dd2..ad95e626 100644
--- a/lib/kross/configure.in.in
+++ b/lib/kross/configure.in.in
@@ -1,7 +1,3 @@
-KDE_FIND_PATH(pkg-config, PKGCONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin], [
- AC_MSG_WARN([Could not find pkg-config])
-])
-
AC_ARG_ENABLE(scripting,
AC_HELP_STRING([--enable-scripting],
[build scripting library (Kross) [default=yes]]),
@@ -25,64 +21,49 @@ AM_CONDITIONAL(compile_kross_python,
# Check for Ruby
if test "x$compile_kross" = "xyes" ; then
- AC_CHECK_PROGS([RUBY], [ruby ruby1.8 ruby18 ruby1.9 ruby19], ruby)
+ AC_CHECK_PROG(RUBY_EXECUTABLE, ruby, ruby)
- if test -n "$RUBY"; then
+ if test -n "$RUBY_EXECUTABLE"; then
AC_MSG_CHECKING(for Ruby dirs)
- # Note: pkgconfig file exists only for ruby >= 1.9.3
- if test -n "$PKGCONFIG"; then
- RUBY_VERSION=`$PKGCONFIG ruby --modversion 2>/dev/null`
- if test -n "$RUBY_VERSION"; then
- RUBY_CFLAGS=`$PKGCONFIG ruby --cflags`
- fi
- if test -z "$RUBY_VERSION"; then
- for RUBY_TEST in 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.9; do
- RUBY_VERSION=`$PKG_CONFIG ruby-$RUBY_TEST --modversion 2>/dev/null`
- if test -n "$RUBY_VERSION"; then
- RUBY_CFLAGS=`$PKG_CONFIG ruby-$RUBY_TEST --cflags`
- break
- fi
- done
- fi
- if test -z "$RUBY_VERSION"; then
- # pkgconfig file does not exist but might be 1.9.1: RUBY_VERSION defined in ruby/version.h
- if test -n "$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubyhdrdir"@:>@)'"; then
- # rubyhdrdir parameter works only in >=1.9.1; this is 1.9.1
- RUBY_MAJOR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"['MAJOR']"@:>@)'`
- RUBY_MINOR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"['MINOR']"@:>@)'`
- RUBY_TEENY=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"['TEENY']"@:>@)'`
- if test "$RUBY_MAJOR" == "1" && test "$RUBY_MINOR" == "9"; then
- RUBY_VERSION="$RUBY_MAJOR.$RUBY_MINOR.$RUBY_TEENY"
- RUBY_CFLAGS="-I`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubyhdrdir"@:>@)'`"
- RUBY_CFLAGS="$RUBY_CFLAGS/`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"arch"@:>@)'` $RUBY_CFLAGS"
- if test -n "`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`"; then
- RUBY_ENABLESHARED=yes
- fi
- fi
- fi
- fi
- if test -n "$RUBY_VERSION"; then
- RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"archdir"@:>@)'`
- RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitearchdir"@:>@)'`
- RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitelibdir"@:>@)'`
- RUBY_RUBYLIBDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubylibdir"@:>@)'`
- RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"libdir"@:>@)'`
- RUBY_INCLUDEDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubyhdrdir"@:>@)'`
- RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
- RUBY_ENABLESHARED=yes
- AC_DEFINE_UNQUOTED(HAVE_RUBY_1_9, 1, [Defines if your system has Ruby 1.9.x])
- fi
- fi
- if test -z "$RUBY_VERSION"; then
- RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'`
- RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'`
- RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
- RUBY_RUBYLIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubylibdir"@:>@)'`
- RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
- RUBY_INCLUDEDIR=$RUBY_ARCHDIR
- RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
+
+ 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))"`
+ if test -n "$RUBY_LIBRUBYARG"; then
RUBY_ENABLESHARED=yes
fi
+
+ 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
+
+ # 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,
@@ -94,56 +75,44 @@ if test "x$compile_kross" = "xyes" ; then
cflags $RUBY_CFLAGS])
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_SITEDIR)
AC_SUBST(RUBY_CFLAGS)
AC_SUBST(RUBY_ENABLESHARED)
- AC_MSG_CHECKING(for Ruby header)
- if test ! -r $RUBY_INCLUDEDIR/ruby.h; then
- # if $RUBY_INCLUDEDIR is not valid try to use $RUBY_ARCHDIR
- RUBY_INCLUDEDIR=$RUBY_ARCHDIR
- fi
+ AC_MSG_CHECKING(Ruby shared library)
+ if test "x$RUBY_ENABLESHARED" != "xyes" ; then
+ AC_MSG_RESULT([shared library not found])
+ RUBY_LIBDIR=""
+ else
+ AC_MSG_RESULT([found]) # shared library link arg
- AC_MSG_RESULT([found]) # header
-
- AC_MSG_CHECKING(Ruby shared library)
- if test "x$RUBY_ENABLESHARED" != "xyes" ; then
- AC_MSG_RESULT([shared library not found])
- RUBY_LIBDIR=""
- else
- if test -z "$RUBY_LIBRUBYARG" ; then
- AC_MSG_RESULT([link argument not found])
- RUBY_LIBDIR=""
- else
- AC_MSG_RESULT([found]) # shared library link arg
-
- AC_MSG_CHECKING([if C++ program with ruby can be compiled])
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -I$RUBY_INCLUDEDIR $RUBY_CFLAGS"
- AC_CACHE_VAL(ruby_build,
- [
- AC_TRY_COMPILE([
- #include <ruby.h>
- ],[
- ruby_init();
- return 0;
- ], ruby_build=yes,
- ruby_build=no)
- ])
- AC_MSG_RESULT($ruby_build)
- if test "$ruby_build" = "no"; then
- RUBY_LIBDIR=""
- fi
- CXXFLAGS="$ac_save_CXXFLAGS"
- AC_LANG_RESTORE
- fi # have ruby shared lib argument
- fi # have shared lib
+ AC_MSG_CHECKING([if C++ program with ruby can be compiled])
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ ac_save_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS -I$RUBY_INCLUDEDIR $RUBY_CFLAGS"
+ AC_CACHE_VAL(ruby_build,
+ [
+ AC_TRY_COMPILE([
+ #include <ruby.h>
+ ],[
+ ruby_init();
+ return 0;
+ ], ruby_build=yes,
+ ruby_build=no)
+ ])
+ AC_MSG_RESULT($ruby_build)
+ if test "$ruby_build" = "no"; then
+ RUBY_LIBDIR=""
+ fi
+ CXXFLAGS="$ac_save_CXXFLAGS"
+ AC_LANG_RESTORE
+ fi # have shared lib
fi # have ruby
fi # compiling kross