diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/ffi_yajl/ext/encoder/extconf.rb | 31 | ||||
-rw-r--r-- | ext/ffi_yajl/ext/parser/extconf.rb | 31 |
2 files changed, 62 insertions, 0 deletions
diff --git a/ext/ffi_yajl/ext/encoder/extconf.rb b/ext/ffi_yajl/ext/encoder/extconf.rb index 9d048ee..e752b28 100644 --- a/ext/ffi_yajl/ext/encoder/extconf.rb +++ b/ext/ffi_yajl/ext/encoder/extconf.rb @@ -28,6 +28,37 @@ if windows? $libs = "#{$libs} -lyajldll" end +def found_libyajl2 + find_header('yajl/yajl_tree.h') && find_library('yajl', 'yajl_complete_parse') +end + +if !windows? && !found_libyajl2 + puts "libyajl2 not embedded in libyajl2-gem, searching for system libraries..." + + HEADER_DIRS = [ + # FIXME: embedded version number in Homebrew path will change + "/usr/local/Cellar/yajl/2.1.0/include", # Homebrew (yick) + "/opt/local/include", # MacPorts + "/usr/local/include", # /usr/local + RbConfig::CONFIG['includedir'], # Ruby + "/usr/include", # (default) + ] + + LIB_DIRS = [ + "/opt/local/lib", # MacPorts + "/usr/local/lib", # /usr/local + Homebrew + RbConfig::CONFIG['libdir'], # Ruby + "/usr/lib", # (default) + ] + + # add --with-yajl-dir, --with-yajl-include, --with-yajl-lib + dir_config('yajl', HEADER_DIRS, LIB_DIRS) + + if !found_libyajl2 + abort "libyajl2 is missing. please install libyajl2" + end +end + dir_config 'encoder' create_makefile 'ffi_yajl/ext/encoder' diff --git a/ext/ffi_yajl/ext/parser/extconf.rb b/ext/ffi_yajl/ext/parser/extconf.rb index 602f679..e5ff74d 100644 --- a/ext/ffi_yajl/ext/parser/extconf.rb +++ b/ext/ffi_yajl/ext/parser/extconf.rb @@ -28,6 +28,37 @@ if windows? $libs = "#{$libs} -lyajldll" end +def found_libyajl2 + find_header('yajl/yajl_tree.h') && find_library('yajl', 'yajl_complete_parse') +end + +if !windows? && !found_libyajl2 + puts "libyajl2 not embedded in libyajl2-gem, searching for system libraries..." + + HEADER_DIRS = [ + # FIXME: embedded version number in Homebrew path will change + "/usr/local/Cellar/yajl/2.1.0/include", # Homebrew (yick) + "/opt/local/include", # MacPorts + "/usr/local/include", # /usr/local + RbConfig::CONFIG['includedir'], # Ruby + "/usr/include", # (default) + ] + + LIB_DIRS = [ + "/opt/local/lib", # MacPorts + "/usr/local/lib", # /usr/local + Homebrew + RbConfig::CONFIG['libdir'], # Ruby + "/usr/lib", # (default) + ] + + # add --with-yajl-dir, --with-yajl-include, --with-yajl-lib + dir_config('yajl', HEADER_DIRS, LIB_DIRS) + + if !found_libyajl2 + abort "libyajl2 is missing. please install libyajl2" + end +end + dir_config 'parser' create_makefile 'ffi_yajl/ext/parser' |