Ticket #1012: 0001-ruby-Fix-build-with-ruby-1.9.patch

File 0001-ruby-Fix-build-with-ruby-1.9.patch, 6.5 KB (added by keruspe, 8 years ago)

Fix build with ruby 1.9.3+

  • configure.ac

    From 1823381ab4d27d189dbae683e396b114ff662a58 Mon Sep 17 00:00:00 2001
    From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
    Date: Fri, 20 Jan 2012 15:53:50 +0100
    Subject: [PATCH] ruby: Fix build with ruby 1.9
    
    And btw, refactor a little 1.8 autotools chain
    
    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
    ---
     configure.ac     |   91 ++++++++++++++++++++++++++++-------------------------
     ruby/Makefile.am |   10 +++---
     2 files changed, 53 insertions(+), 48 deletions(-)
    
    diff --git a/configure.ac b/configure.ac
    index 93e36b5..31aafff 100644
    a b AC_ARG_ENABLE([ruby], 
    11691169AC_MSG_RESULT($enable_ruby) 
    11701170 
    11711171if test "x$enable_ruby" = "xyes" ; then 
    1172         AC_CHECK_PROGS(RUBY, ruby, ) 
    1173         if test "x$RUBY" = "x" ; then 
    1174                 AC_MSG_ERROR([Ruby is required for --enable-ruby]) 
    1175         fi 
     1172        PKG_CHECK_MODULES(RUBY, [ruby-1.9], [ 
     1173                RUBY=`pkg-config --variable=ruby ruby-1.9` 
     1174        ], [ 
     1175                AC_CHECK_PROGS(RUBY, ruby, ) 
     1176                if test "x$RUBY" = "x" ; then 
     1177                        AC_MSG_ERROR([Ruby is required for --enable-ruby]) 
     1178                fi 
    11761179 
    1177         AC_MSG_CHECKING([for Ruby archdir]) 
    1178         RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'puts Config::CONFIG@<:@"archdir"@:>@'` 
    1179         if test "x$RUBY_ARCHDIR" = "x" ; then 
    1180                 AC_MSG_ERROR([Could not find Ruby archdir]) 
    1181         fi 
    1182         AC_MSG_RESULT([$RUBY_ARCHDIR]) 
    1183         AC_SUBST([RUBY_ARCHDIR]) 
     1180                AC_MSG_CHECKING([for Ruby archdir]) 
     1181                RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'puts Config::CONFIG@<:@"archdir"@:>@'` 
     1182                if test "x$RUBY_ARCHDIR" = "x" ; then 
     1183                        AC_MSG_ERROR([Could not find Ruby archdir]) 
     1184                fi 
     1185                AC_MSG_RESULT([$RUBY_ARCHDIR]) 
     1186 
     1187                AC_MSG_CHECKING([for Ruby soname]) 
     1188                RUBY_SONAME=`$RUBY -r rbconfig -e 'puts Config::CONFIG@<:@"RUBY_SO_NAME"@:>@'` 
     1189                if test "x$RUBY_SONAME" = "x" ; then 
     1190                        AC_MSG_ERROR([Could not find Ruby soname]) 
     1191                fi 
     1192                AC_MSG_RESULT([$RUBY_SONAME]) 
     1193 
     1194                AC_MSG_CHECKING([for Ruby hdrdir]) 
     1195                RUBY_HDRDIR=`$RUBY -r rbconfig -e 'puts Config::CONFIG@<:@"rubyhdrdir"@:>@'` 
     1196                if test "x$RUBY_HDRDIR" = "x" ; then 
     1197                        AC_MSG_ERROR([Could not find Ruby hdrdir]) 
     1198                elif test "x$RUBY_HDRDIR" = "xnil" ; then 
     1199                        RUBY_HDRDIR=$RUBY_ARCHDIR 
     1200                fi 
     1201                AC_MSG_RESULT([$RUBY_HDRDIR]) 
     1202 
     1203                AC_MSG_CHECKING([for Ruby hdrarchdir]) 
     1204                if test "x$RUBY_ARCHDIR" = "x$RUBY_HDRDIR"; then 
     1205                        RUBY_HDRARCHDIR=$RUBY_ARCHDIR 
     1206                else 
     1207                        RUBY_HDRARCHDIR=`$RUBY -r rbconfig -e 'puts File.join(Config::CONFIG@<:@"rubyhdrdir"@:>@, Config::CONFIG@<:@"arch"@:>@'\)` 
     1208                        if test "x$RUBY_HDRARCHDIR" = "x" ; then 
     1209                                AC_MSG_ERROR([Could not find Ruby hdrarchdir]) 
     1210                        fi 
     1211                fi 
     1212                AC_MSG_RESULT([$RUBY_HDRARCHDIR]) 
     1213 
     1214                RUBY_CFLAGS="-I${RUBY_HDRDIR} -I${RUBY_HDRARCHDIR}" 
     1215                RUBY_LIBS="-l${RUBY_SONAME}" 
     1216        ]) 
    11841217 
    11851218        AC_MSG_CHECKING([for Ruby sitearchdir]) 
    11861219        RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'puts Config::CONFIG@<:@"sitearchdir"@:>@'` 
    if test "x$enable_ruby" = "xyes" ; then 
    11881221                AC_MSG_ERROR([Could not find Ruby sitearchdir]) 
    11891222        fi 
    11901223        AC_MSG_RESULT([$RUBY_SITEARCHDIR]) 
    1191         AC_SUBST([RUBY_SITEARCHDIR]) 
    1192  
    1193         AC_MSG_CHECKING([for Ruby soname]) 
    1194         RUBY_SONAME=`$RUBY -r rbconfig -e 'puts Config::CONFIG@<:@"RUBY_SO_NAME"@:>@'` 
    1195         if test "x$RUBY_SONAME" = "x" ; then 
    1196                 AC_MSG_ERROR([Could not find Ruby soname]) 
    1197         fi 
    1198         AC_MSG_RESULT([$RUBY_SONAME]) 
    1199         AC_SUBST([RUBY_SONAME]) 
    12001224 
    12011225        AC_ARG_WITH([ruby-install-dir], 
    12021226                AS_HELP_STRING([--with-ruby-install-dir=dir], [Specify Ruby installation dir]), 
    if test "x$enable_ruby" = "xyes" ; then 
    12071231                RUBY_INSTALL_DIR=$RUBY_SITEARCHDIR 
    12081232        fi 
    12091233        AC_MSG_RESULT([$RUBY_INSTALL_DIR]) 
    1210         AC_SUBST([RUBY_INSTALL_DIR]) 
    1211  
    1212         AC_MSG_CHECKING([for Ruby hdrdir]) 
    1213         RUBY_HDRDIR=`$RUBY -r rbconfig -e 'puts Config::CONFIG@<:@"rubyhdrdir"@:>@'` 
    1214         if test "x$RUBY_HDRDIR" = "x" ; then 
    1215                 AC_MSG_ERROR([Could not find Ruby hdrdir]) 
    1216         elif test "x$RUBY_HDRDIR" = "xnil" ; then 
    1217                 RUBY_HDRDIR=$RUBY_ARCHDIR 
    1218         fi 
    1219         AC_MSG_RESULT([$RUBY_HDRDIR]) 
    1220         AC_SUBST([RUBY_HDRDIR]) 
    1221  
    1222         AC_MSG_CHECKING([for Ruby hdrarchdir]) 
    1223         if test "x$RUBY_ARCHDIR" = "x$RUBY_HDRDIR"; then 
    1224                 RUBY_HDRARCHDIR=$RUBY_ARCHDIR 
    1225         else 
    1226                 RUBY_HDRARCHDIR=`$RUBY -r rbconfig -e 'puts File.join(Config::CONFIG@<:@"rubyhdrdir"@:>@, Config::CONFIG@<:@"arch"@:>@'\)` 
    1227                 if test "x$RUBY_HDRARCHDIR" = "x" ; then 
    1228                         AC_MSG_ERROR([Could not find Ruby hdrarchdir]) 
    1229                 fi 
    1230         fi 
    1231         AC_MSG_RESULT([$RUBY_HDRARCHDIR]) 
    1232         AC_SUBST([RUBY_HDRARCHDIR]) 
    12331234 
     1235        AC_SUBST([RUBY]) 
     1236        AC_SUBST([RUBY_CFLAGS]) 
     1237        AC_SUBST([RUBY_LIBS]) 
     1238        AC_SUBST([RUBY_INSTALL_DIR]) 
    12341239fi 
    12351240AM_CONDITIONAL([ENABLE_RUBY], test "x$enable_ruby" = "xyes") 
    12361241dnl }}} 
  • ruby/Makefile.am

    diff --git a/ruby/Makefile.am b/ruby/Makefile.am
    index eae6ac1..5e8e79d 100644
    a b if ENABLE_RUBY 
    7676 
    7777lib_LTLIBRARIES = libpaludisruby_@PALUDIS_PC_SLOT@.la 
    7878 
    79 libpaludisruby_@PALUDIS_PC_SLOT@_la_CXXFLAGS = $(AM_CXXFLAGS) -I. -I@RUBY_HDRDIR@ -I@RUBY_HDRARCHDIR@ 
     79libpaludisruby_@PALUDIS_PC_SLOT@_la_CXXFLAGS = $(AM_CXXFLAGS) -I. $(RUBY_CFLAGS) 
    8080libpaludisruby_@PALUDIS_PC_SLOT@_la_LDFLAGS = -version-info @VERSION_LIB_CURRENT@:@VERSION_LIB_REVISION@:0 
    8181 
    8282paludis_ruby_so.o : paludis_ruby_so.cc 
    8383        if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) \ 
    84             $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) -I$(RUBY_HDRDIR) -I$(RUBY_HDRARCHDIR) -c \ 
     84            $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) $(RUBY_CFLAGS) -c \ 
    8585            -o $@ $(srcdir)/paludis_ruby_so.cc ; then ln -fs .libs/paludis_ruby_so.o $@ ; else rm -f $@ ; exit 1 ; fi 
    8686 
    8787libpaludisruby_@PALUDIS_PC_SLOT@_la_SOURCES = $(IF_RUBY_SOURCES) 
    libpaludisruby_@PALUDIS_PC_SLOT@_la_LIBADD = \ 
    9393        $(PTHREAD_LIBS) 
    9494 
    9595check_DATA = .libs/Paludis.so 
    96 rubylibdir = @RUBY_INSTALL_DIR@ 
     96rubylibdir = $(RUBY_INSTALL_DIR) 
    9797rubylib_DATA = Paludis.so 
    9898 
    9999.libs/Paludis.so : libpaludisruby_@PALUDIS_PC_SLOT@.la paludis_ruby_so.o 
    rubylib_DATA = Paludis.so 
    101101        $(CXX) -fPIC -shared $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 
    102102            $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) \ 
    103103            $(AM_LDFLAGS) $(LDFLAGS) $(PTHREAD_LIBS) \ 
    104             -l@RUBY_SONAME@ \ 
     104            $(RUBY_LIBS) \ 
    105105            -o $@ \ 
    106106            .libs/paludis_ruby_so.o \ 
    107107            -L$(top_builddir)/ruby/.libs -lpaludisruby_@PALUDIS_PC_SLOT@ 
    Paludis.so : libpaludisruby_@PALUDIS_PC_SLOT@.la paludis_ruby_so.o 
    110110        $(CXX) -fPIC -shared $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 
    111111            $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) \ 
    112112            $(AM_LDFLAGS) $(LDFLAGS) $(PTHREAD_LIBS) \ 
    113             -l@RUBY_SONAME@ \ 
     113            $(RUBY_LIBS) \ 
    114114            -o $@ \ 
    115115            .libs/paludis_ruby_so.o \ 
    116116            -L$(top_builddir)/ruby/.libs -lpaludisruby_@PALUDIS_PC_SLOT@