From 191c8466e4d752b3c8aa73c570cc8f5f0b69e613 Mon Sep 17 00:00:00 2001
From: Tim Emiola <temiola@google.com>
Date: Thu, 4 Jun 2015 08:19:44 -0700
Subject: [PATCH] Re-organizes the GRPC_ROOT detection code in extconf.rb

---
 src/ruby/ext/grpc/extconf.rb | 47 +++++++++++++++---------------------
 1 file changed, 19 insertions(+), 28 deletions(-)

diff --git a/src/ruby/ext/grpc/extconf.rb b/src/ruby/ext/grpc/extconf.rb
index 1b801edc8e..0ff8bb9aa7 100644
--- a/src/ruby/ext/grpc/extconf.rb
+++ b/src/ruby/ext/grpc/extconf.rb
@@ -32,29 +32,6 @@ require 'mkmf'
 LIBDIR = RbConfig::CONFIG['libdir']
 INCLUDEDIR = RbConfig::CONFIG['includedir']
 
-if ENV.key? 'GRPC_ROOT'
-  GRPC_ROOT = ENV['GRPC_ROOT']
-else
-  grpc_root = File.expand_path(File.join(File.dirname(__FILE__), '../../../..'))
-  if File.exist?(File.join(grpc_root, 'include/grpc/grpc.h'))
-    GRPC_ROOT = grpc_root
-  else
-    GRPC_ROOT = nil
-  end
-end
-
-if ENV.key? 'CONFIG'
-  GRPC_CONFIG = ENV['CONFIG']
-else
-  GRPC_CONFIG = 'opt'
-end
-
-if (ENV.key? 'GRPC_LIB_DIR') && (!GRPC_ROOT.nil?)
-  GRPC_LIB_DIR = File.join(GRPC_ROOT, ENV['GRPC_LIB_DIR'])
-else
-  GRPC_LIB_DIR = File.join(File.join(GRPC_ROOT, 'libs'), GRPC_CONFIG)
-end
-
 HEADER_DIRS = [
   # Search /opt/local (Mac source install)
   '/opt/local/include',
@@ -77,12 +54,26 @@ LIB_DIRS = [
   LIBDIR
 ]
 
-unless GRPC_ROOT.nil?
-  HEADER_DIRS.unshift File.join(GRPC_ROOT, 'include')
-  LIB_DIRS.unshift GRPC_LIB_DIR
-  unless File.exist?(File.join(GRPC_LIB_DIR, 'libgrpc.a'))
-    system("make -C #{GRPC_ROOT} static_c CONFIG=#{GRPC_CONFIG}")
+# Check to see if GRPC_ROOT is defined or available
+grpc_root = ENV['GRPC_ROOT']
+if grpc_root.nil?
+  r = File.expand_path(File.join(File.dirname(__FILE__), '../../../..'))
+  grpc_root = r if File.exist?(File.join(r, 'include/grpc/grpc.h'))
+end
+
+# When grpc_root is available attempt to build the grpc core.
+unless grpc_root.nil?
+  grpc_config = ENV['GRPC_CONFIG'] || 'opt'
+  if ENV.key?('GRPC_LIB_DIR')
+    grpc_lib_dir = File.join(grpc_root, ENV['GRPC_LIB_DIR'])
+  else
+    grpc_lib_dir = File.join(File.join(grpc_root, 'libs'), grpc_config)
+  end
+  unless File.exist?(File.join(grpc_lib_dir, 'libgrpc.a'))
+    system("make -C #{grpc_root} static_c CONFIG=#{grpc_config}")
   end
+  HEADER_DIRS.unshift File.join(grpc_root, 'include')
+  LIB_DIRS.unshift grpc_lib_dir
 end
 
 def crash(msg)
-- 
GitLab