diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | ext/.cvsignore | 1 | ||||
-rw-r--r-- | ext/extmk.rb.in | 22 |
3 files changed, 23 insertions, 9 deletions
@@ -1,3 +1,12 @@ +Sat Jul 14 02:56:19 2001 Akinori MUSHA <[email protected]> + + * ext/extmk.rb.in: support multi-level ext/ directories. + (e.g. you can have ext/foo, ext/foo/bar and ext/foo/baz) + +Sat Jul 14 02:55:02 2001 Akinori MUSHA <[email protected]> + + * ext/.cvsignore: let cvs ignore extinit.c. + Fri Jul 13 22:26:09 2001 Akinori MUSHA <[email protected]> * lib/mkmf.rb: use File::split to split a target into a prefix and diff --git a/ext/.cvsignore b/ext/.cvsignore index f1e43e7724..a3fac48ae6 100644 --- a/ext/.cvsignore +++ b/ext/.cvsignore @@ -1,2 +1,3 @@ +extinit.c extmk.log extmk.rb diff --git a/ext/extmk.rb.in b/ext/extmk.rb.in index adbc350b80..53cb46ae17 100644 --- a/ext/extmk.rb.in +++ b/ext/extmk.rb.in @@ -174,10 +174,10 @@ def install_rb(mfile, srcdir = nil) end for f in dir next if f == "." - mfile.printf "\t@$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' $(DESTDIR)$(pkglibdir)/%s\n", f + mfile.printf "\t@$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' $(DESTDIR)$(pkglibdir)$(target_prefix)/%s\n", f end for f in path - mfile.printf "\t@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' $(srcdir)/lib/%s $(DESTDIR)$(pkglibdir)/%s\n", f, f + mfile.printf "\t@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' $(srcdir)/lib/%s $(DESTDIR)$(pkglibdir)$(target_prefix)/%s\n", f, f end end @@ -436,6 +436,7 @@ libdir = @libdir@ #pkglibdir = $(libdir)/$(RUBY_INSTALL_NAME)/@MAJOR@.@MINOR@ pkglibdir = $(libdir)/ruby/@MAJOR@.@MINOR@ archdir = $(pkglibdir)/@arch@ +target_prefix = #{target_prefix} @SET_MAKE@ #### End of system configuration section. #### @@ -491,11 +492,12 @@ EOS mfile.printf <<EOS install: - @$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' $(DESTDIR)$(libdir) $(DESTDIR)$(pkglibdir) $(DESTDIR)$(archdir) + @$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' $(DESTDIR)$(libdir) $(DESTDIR)$(pkglibdir) $(DESTDIR)$(archdir)$(target_prefix) + EOS unless $static mfile.printf "\ - @$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0555, true)' $(DLLIB) $(DESTDIR)$(archdir)/$(DLLIB) + @$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0555, true)' $(DLLIB) $(DESTDIR)$(archdir)$(target_prefix)/$(DLLIB) " end install_rb(mfile, $srcdir) @@ -624,6 +626,7 @@ def extmake(target) dir_config("opt") begin + dir = Dir.pwd Dir.mkdir target unless File.directory?(target) Dir.chdir target $target = target @@ -648,7 +651,7 @@ def extmake(target) end if File.exist?("./Makefile") if $static - $extlist.push [$static,$target] + $extlist.push [$static, File.basename($target)] end if $install system "#{$make} install DESTDIR=#{$destdir}" @@ -670,7 +673,7 @@ def extmake(target) end ensure rm_f "conftest*" - Dir.chdir ".." + Dir.chdir dir end end @@ -699,11 +702,12 @@ for setup in ["@setup@", "#{$top_srcdir}/ext/@setup@"] end end -for d in Dir["#{$top_srcdir}/ext/*"] +ext_prefix = "#{$top_srcdir}/ext" +for d in Dir["#{ext_prefix}/**/*"] File.directory?(d) || next File.file?(d + "/MANIFEST") || next - d = File.basename(d) + d.slice!(0, ext_prefix.length + 1) if $install print "installing ", d, "\n" elsif $clean @@ -734,7 +738,7 @@ if $extlist.size > 0 $extinit += format("\ \tInit_%s();\n\ \trb_provide(\"%s.so\");\n\ -", t, t) +", t, s) $extobjs += "ext/" $extobjs += f $extobjs += " " |