Let me start by saying a big "Thanks!" to why for providing
precompiled dependencies for Shoes to us OS X users. That said...
Something I've noticed is that 'source'ing the use-deps file has the
unfortunate side effect of making the particular Terminal session you
were using, well, unuseable. That's primarily because of the way that
use-deps redefines the DYLD_LIBRARY_PATH, making it hard for other
binaries to find their respective libraries.
The solution? Put the use-deps in the Rakefile! This is a first,
admittedly poor, attempt. Some things that could improve the mechanism
(if anyone is so inclined):
- Make a generic location for the most recent deps
- Extend this for other platforms
- Make the whole download/untar process platform neutral
Anyway, here's the patch:
---
diff --git a/Rakefile b/Rakefile
index 39ac483..70f6ed7 100644
--- a/Rakefile
+++ b/Rakefile
@@ -29,6 +29,25 @@ unless ENV['MSVC'] or ENV['DDKBUILDENV']
end
end
+# Use deps inside this process, so we don't mess with the Terminal's
environment
+if ENV['USE_DEPS']
+ unless File.exists? './deps'
+ unless system('curl http://code.whytheluckystiff.net/deps/deps-osx-intel-1.6.4-1.20.2.tar.gz
> deps.tar.gz') &&
+ system('tar xvzf deps.tar.gz')
+ puts 'Sorry, we couldn\'t get the dependencies for you. Try
looking for them at http://code.whytheluckystiff.net/shoes'
+ exit 1
+ else
+ `rm deps.tar.gz`
+ end
+ end
+ PATH = './deps/bin:$PATH'
+ ENV['PKG_CONFIG_PATH'] = './deps/lib/pkgconfig'
+ ENV['DYLD_LIBRARY_PATH'] = './deps/lib'
+ ENV['LD_LIBRARY_PATH'] = './deps/lib'
+ ENV['SHOES_DEPS_PATH'] = './deps'
+ ENV['RUBYOPT'] = "-I./deps/lib/ruby/site_ruby/1.8 -I./deps/lib/ruby/
1.8 -I./deps/lib/ruby/1.8/i686-darwin8.9.1"
+end
+
# Check the environment
def env(x)
unless ENV[x]
---
Yours in Shoes,
Josh