From d13ae0ad5269fe75fd0fe90aadd6d76bcbc1536e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Mon, 28 Oct 2013 00:25:02 +0100 Subject: [PATCH] Enable compiling Ruby 1.8 on OS X 10.8+ without extra flags Because OS X Mountain Lion removed X Windows, compiling Ruby 1.8 would fail unless the user installed XQuartz manually and passed: CPPFLAGS=-I/opt/X11/include rbenv install 1.8.7-p374 This auto-detects if `/opt/X11/include` is present on the system and configures CPPFLAGS accordingly. However if XQuartz was never installed, we simply configure Ruby using `--without-tk`. Fixes #193 #207 References 353246926c9273329391915a125ff241e9954ba6 --- bin/ruby-build | 20 ++++++++++++++------ share/ruby-build/1.8.6-p383 | 2 +- share/ruby-build/1.8.6-p420 | 2 +- share/ruby-build/1.8.7-p249 | 2 +- share/ruby-build/1.8.7-p302 | 2 +- share/ruby-build/1.8.7-p334 | 2 +- share/ruby-build/1.8.7-p352 | 2 +- share/ruby-build/1.8.7-p357 | 2 +- share/ruby-build/1.8.7-p358 | 2 +- share/ruby-build/1.8.7-p370 | 2 +- share/ruby-build/1.8.7-p371 | 2 +- share/ruby-build/1.8.7-p374 | 2 +- 12 files changed, 25 insertions(+), 17 deletions(-) diff --git a/bin/ruby-build b/bin/ruby-build index da6bf9b1..df1a7db5 100755 --- a/bin/ruby-build +++ b/bin/ruby-build @@ -422,15 +422,11 @@ build_package_ruby() { } build_package_ree_installer() { + build_package_auto_tcltk + local options="" if [[ "Darwin" = "$(uname)" ]]; then options="--no-tcmalloc" - - # Some versions of REE mistakenly detect Tk support - # on OS X even though X11 is not installed. - if [ ! -d "/usr/include/X11" ]; then - options="$options -c --without-tk" - fi fi local option @@ -720,6 +716,18 @@ build_package_ldflags_dirs() { done } +build_package_auto_tcltk() { + if [ "Darwin" = "$(uname -s)" ] && [ ! -d /usr/include/X11 ]; then + if [ -d /opt/X11/include ]; then + if [[ "$CPPFLAGS" != *-I/opt/X11/include* ]]; then + export CPPFLAGS="-I/opt/X11/include $CPPFLAGS" + fi + else + package_option ruby configure --without-tk + fi + fi +} + rake() { if [ -e "./Gemfile" ]; then bundle exec rake "$@" diff --git a/share/ruby-build/1.8.6-p383 b/share/ruby-build/1.8.6-p383 index 829dddfe..3e961905 100644 --- a/share/ruby-build/1.8.6-p383 +++ b/share/ruby-build/1.8.6-p383 @@ -1,3 +1,3 @@ require_gcc -install_package "ruby-1.8.6-p383" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p383.tar.gz#4f49544d4a4d0d34e9d86c41e853db2e" +install_package "ruby-1.8.6-p383" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p383.tar.gz#4f49544d4a4d0d34e9d86c41e853db2e" auto_tcltk standard install_package "rubygems-1.3.7" "http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz#e85cfadd025ff6ab689375adbf344bbe" ruby diff --git a/share/ruby-build/1.8.6-p420 b/share/ruby-build/1.8.6-p420 index d60a2271..ce40539b 100644 --- a/share/ruby-build/1.8.6-p420 +++ b/share/ruby-build/1.8.6-p420 @@ -1,3 +1,3 @@ require_gcc -install_package "ruby-1.8.6-p420" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p420.tar.gz#ca1eee44f842e93b5098bc5a2bb9a40b" +install_package "ruby-1.8.6-p420" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p420.tar.gz#ca1eee44f842e93b5098bc5a2bb9a40b" auto_tcltk standard install_package "rubygems-1.3.7" "http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz#e85cfadd025ff6ab689375adbf344bbe" ruby diff --git a/share/ruby-build/1.8.7-p249 b/share/ruby-build/1.8.7-p249 index 65f653e3..2a7ed342 100644 --- a/share/ruby-build/1.8.7-p249 +++ b/share/ruby-build/1.8.7-p249 @@ -1,3 +1,3 @@ require_gcc -install_package "ruby-1.8.7-p249" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz#d7db7763cffad279952eb7e9bbfc221c" +install_package "ruby-1.8.7-p249" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz#d7db7763cffad279952eb7e9bbfc221c" auto_tcltk standard install_package "rubygems-1.6.2" "http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz#0c95a9869914ba1a45bf71d3b8048420" ruby diff --git a/share/ruby-build/1.8.7-p302 b/share/ruby-build/1.8.7-p302 index 677e4ffd..1324e32a 100644 --- a/share/ruby-build/1.8.7-p302 +++ b/share/ruby-build/1.8.7-p302 @@ -1,3 +1,3 @@ require_gcc -install_package "ruby-1.8.7-p302" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p302.tar.gz#f446550dfde0d8162a6ed8d5a38b3ac2" +install_package "ruby-1.8.7-p302" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p302.tar.gz#f446550dfde0d8162a6ed8d5a38b3ac2" auto_tcltk standard install_package "rubygems-1.6.2" "http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz#0c95a9869914ba1a45bf71d3b8048420" ruby diff --git a/share/ruby-build/1.8.7-p334 b/share/ruby-build/1.8.7-p334 index 7f47a610..cab1761c 100644 --- a/share/ruby-build/1.8.7-p334 +++ b/share/ruby-build/1.8.7-p334 @@ -1,3 +1,3 @@ require_gcc -install_package "ruby-1.8.7-p334" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p334.tar.gz#aacb6ee5dfe2367682bba56af7f415b8" +install_package "ruby-1.8.7-p334" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p334.tar.gz#aacb6ee5dfe2367682bba56af7f415b8" auto_tcltk standard install_package "rubygems-1.6.2" "http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz#0c95a9869914ba1a45bf71d3b8048420" ruby diff --git a/share/ruby-build/1.8.7-p352 b/share/ruby-build/1.8.7-p352 index 7057abe5..881ce60c 100644 --- a/share/ruby-build/1.8.7-p352 +++ b/share/ruby-build/1.8.7-p352 @@ -1,3 +1,3 @@ require_gcc -install_package "ruby-1.8.7-p352" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p352.tar.gz#0c33f663a10a540ea65677bb755e57a7" +install_package "ruby-1.8.7-p352" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p352.tar.gz#0c33f663a10a540ea65677bb755e57a7" auto_tcltk standard install_package "rubygems-1.6.2" "http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz#0c95a9869914ba1a45bf71d3b8048420" ruby diff --git a/share/ruby-build/1.8.7-p357 b/share/ruby-build/1.8.7-p357 index 8834da60..ae16d0d7 100644 --- a/share/ruby-build/1.8.7-p357 +++ b/share/ruby-build/1.8.7-p357 @@ -1,3 +1,3 @@ require_gcc -install_package "ruby-1.8.7-p357" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p357.tar.gz#b2b8248ff5097cfd629f5b9768d1df82" +install_package "ruby-1.8.7-p357" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p357.tar.gz#b2b8248ff5097cfd629f5b9768d1df82" auto_tcltk standard install_package "rubygems-1.6.2" "http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz#0c95a9869914ba1a45bf71d3b8048420" ruby diff --git a/share/ruby-build/1.8.7-p358 b/share/ruby-build/1.8.7-p358 index 41cbcea4..1937a1ab 100644 --- a/share/ruby-build/1.8.7-p358 +++ b/share/ruby-build/1.8.7-p358 @@ -1,3 +1,3 @@ require_gcc -install_package "ruby-1.8.7-p358" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p358.tar.gz#26bd55358847459a7752acdbd33a535f" +install_package "ruby-1.8.7-p358" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p358.tar.gz#26bd55358847459a7752acdbd33a535f" auto_tcltk standard install_package "rubygems-1.6.2" "http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz#0c95a9869914ba1a45bf71d3b8048420" ruby diff --git a/share/ruby-build/1.8.7-p370 b/share/ruby-build/1.8.7-p370 index c197d833..8fe6cbb8 100644 --- a/share/ruby-build/1.8.7-p370 +++ b/share/ruby-build/1.8.7-p370 @@ -1,3 +1,3 @@ require_gcc -install_package "ruby-1.8.7-p370" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p370.tar.gz#98b00bbd1cdde3116155edb6e555b781" +install_package "ruby-1.8.7-p370" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p370.tar.gz#98b00bbd1cdde3116155edb6e555b781" auto_tcltk standard install_package "rubygems-1.6.2" "http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz#0c95a9869914ba1a45bf71d3b8048420" ruby diff --git a/share/ruby-build/1.8.7-p371 b/share/ruby-build/1.8.7-p371 index 9214ad93..f64d4d49 100644 --- a/share/ruby-build/1.8.7-p371 +++ b/share/ruby-build/1.8.7-p371 @@ -1,3 +1,3 @@ require_gcc -install_package "ruby-1.8.7-p371" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p371.tar.gz#653f07bb45f03d0bf3910491288764df" +install_package "ruby-1.8.7-p371" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p371.tar.gz#653f07bb45f03d0bf3910491288764df" auto_tcltk standard install_package "rubygems-1.6.2" "http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz#0c95a9869914ba1a45bf71d3b8048420" ruby diff --git a/share/ruby-build/1.8.7-p374 b/share/ruby-build/1.8.7-p374 index a070c6d3..946b0329 100644 --- a/share/ruby-build/1.8.7-p374 +++ b/share/ruby-build/1.8.7-p374 @@ -1,3 +1,3 @@ require_gcc -install_package "ruby-1.8.7-p374" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p374.tar.gz#b72a0bc5b824398537762e5272bbb8dc" +install_package "ruby-1.8.7-p374" "http://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p374.tar.gz#b72a0bc5b824398537762e5272bbb8dc" auto_tcltk standard install_package "rubygems-1.6.2" "http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz#0c95a9869914ba1a45bf71d3b8048420" ruby