<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -5,7 +5,24 @@ module Johnson
   module SpiderMonkey
 
     extend FFI::Library
-    ffi_lib '/usr/local/lib/libmozjs.so'
+
+    def self.expand_library_path(library)
+      return File.expand_path(library) if library =~ %r{^[^/].*/}
+
+      dirs = ['/opt/local/lib', '/usr/local/lib', '/usr/lib']
+
+      ['LD_LIBRARY_PATH', 'DYLD_LIBRARY_PATH'].each do |dyld_dir|
+        dirs = ENV[dyld_dir].split(':') + dirs if ENV.key? dyld_dir
+      end
+
+      library = Dir[ *( dirs.collect {|dir| File.join(dir, &quot;#{library}.{so,dylib}&quot;)} ) ].first
+
+      raise &quot;Couldn't find #{library}&quot; unless library
+
+      library
+    end
+
+    ffi_lib expand_library_path('libmozjs')
 
     # libc
     attach_function :calloc, [ :int, :int ], :pointer</diff>
      <filename>lib/johnson/spidermonkey/ffi/ffi-spidermonkey.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>6e0a4ee0ef5f3106506c374a182567154583344b</id>
    </parent>
  </parents>
  <author>
    <name>Andrea Fazzi</name>
    <email>andrea.fazzi@alcacoop.it</email>
  </author>
  <url>http://github.com/jbarnette/johnson/commit/ef7b0ebea1988ae651c4e5ffac84b5e5f987271f</url>
  <id>ef7b0ebea1988ae651c4e5ffac84b5e5f987271f</id>
  <committed-date>2009-06-09T09:17:29-07:00</committed-date>
  <authored-date>2009-06-09T09:17:29-07:00</authored-date>
  <message>Stole library_path help from Nokogiri :)
Add initial support for MacOSX.</message>
  <tree>e393c136a9cbca594623b8387345e8b25f125714</tree>
  <committer>
    <name>Andrea Fazzi</name>
    <email>andrea.fazzi@alcacoop.it</email>
  </committer>
</commit>
