diff options
Diffstat (limited to 'lib/mkmf.rb')
-rw-r--r-- | lib/mkmf.rb | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/lib/mkmf.rb b/lib/mkmf.rb index e89ac7d507..21476cbd33 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -2,6 +2,7 @@ # invoke like: ruby -r mkmf extconf.rb require 'rbconfig' +require 'find' include Config @@ -83,6 +84,24 @@ def try_cpp xsystem(format(CPP, $CFLAGS)) end +def install_rb(mfile) + path = [] + dir = [] + Find.find("lib") do |f| + next unless /\.rb$/ =~ f + f = f[4..-1] + path.push f + dir |= File.dirname(f) + end + for f in dir + next if f == "." + mfile.printf "\t@test -d $(libdir)/%s || mkdir $(libdir)/%s\n", f, f + end + for f in path + mfile.printf "\t$(INSTALL_DATA) %s $(libdir)/%s\n", f, f + end +end + def have_library(lib, func) printf "checking for %s() in -l%s... ", func, lib STDOUT.flush @@ -299,9 +318,7 @@ $(libdir)/$(TARGET): $(TARGET) @test -d $(libdir) || mkdir $(libdir) $(INSTALL) $(TARGET) $(libdir)/$(TARGET) EOMF - for rb in Dir["lib/*.rb"] - mfile.printf "\t$(INSTALL_DATA) %s %s\n", rb, $libdir - end + install_rb(mfile) mfile.printf "\n" if CONFIG["DLEXT"] != "o" |