diff options
Diffstat (limited to 'classes')
| -rw-r--r-- | classes/ruby.bbclass | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/classes/ruby.bbclass b/classes/ruby.bbclass index 0c842d5..92226f6 100644 --- a/classes/ruby.bbclass +++ b/classes/ruby.bbclass | |||
| @@ -83,10 +83,41 @@ RUBY_INSTALL_GEMS ?= "${BPN}-${BPV}.gem" | |||
| 83 | 83 | ||
| 84 | RUBY_COMPILE_FLAGS ?= 'LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8"' | 84 | RUBY_COMPILE_FLAGS ?= 'LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8"' |
| 85 | 85 | ||
| 86 | ruby_gen_extconf_fix() { | ||
| 87 | cat<<EOF>append | ||
| 88 | RbConfig::MAKEFILE_CONFIG['CPPFLAGS'] = ENV['CPPFLAGS'] if ENV['CPPFLAGS'] | ||
| 89 | \$CPPFLAGS = ENV['CPPFLAGS'] if ENV['CPPFLAGS'] | ||
| 90 | RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC'] | ||
| 91 | RbConfig::MAKEFILE_CONFIG['LD'] = ENV['LD'] if ENV['LD'] | ||
| 92 | RbConfig::MAKEFILE_CONFIG['CFLAGS'] = ENV['CFLAGS'] if ENV['CFLAGS'] | ||
| 93 | RbConfig::MAKEFILE_CONFIG['CXXFLAGS'] = ENV['CXXFLAGS'] if ENV['CXXFLAGS'] | ||
| 94 | EOF | ||
| 95 | cat append2>>append | ||
| 96 | sysroot_ruby=${STAGING_INCDIR}/ruby-${RUBY_GEM_VERSION} | ||
| 97 | ruby_arch=`ls -1 ${sysroot_ruby} |grep -v ruby |tail -1 2> /dev/null` | ||
| 98 | cat<<EOF>>append | ||
| 99 | system("perl -p -i -e 's#^topdir.*#topdir = ${sysroot_ruby}#' Makefile") | ||
| 100 | system("perl -p -i -e 's#^hdrdir.*#hdrdir = ${sysroot_ruby}#' Makefile") | ||
| 101 | system("perl -p -i -e 's#^arch_hdrdir.*#arch_hdrdir = ${sysroot_ruby}/\\\\\$(arch)#' Makefile") | ||
| 102 | system("perl -p -i -e 's#^arch =.*#arch = ${ruby_arch}#' Makefile") | ||
| 103 | system("perl -p -i -e 's#^LIBPATH =.*#LIBPATH = -L.#' Makefile") | ||
| 104 | EOF | ||
| 105 | } | ||
| 106 | |||
| 86 | ruby_do_compile() { | 107 | ruby_do_compile() { |
| 108 | if [ -f extconf.rb -a ! -f extconf.rb.orig ] ; then | ||
| 109 | grep create_makefile extconf.rb > append2 || (exit 0) | ||
| 110 | ruby_gen_extconf_fix | ||
| 111 | cp extconf.rb extconf.rb.orig | ||
| 112 | # Patch extconf.rb for cross compile | ||
| 113 | cat append >> extconf.rb | ||
| 114 | fi | ||
| 87 | for gem in ${RUBY_BUILD_GEMS}; do | 115 | for gem in ${RUBY_BUILD_GEMS}; do |
| 88 | ${RUBY_COMPILE_FLAGS} gem build $gem | 116 | ${RUBY_COMPILE_FLAGS} gem build $gem |
| 89 | done | 117 | done |
| 118 | if [ -f extconf.rb.orig ] ; then | ||
| 119 | mv extconf.rb.orig extconf.rb | ||
| 120 | fi | ||
| 90 | } | 121 | } |
| 91 | 122 | ||
| 92 | 123 | ||
