summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-02-17 10:34:31 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-02-17 10:34:31 +0000
commitbab1372a33543eaf89b265197866cac3466e78da (patch)
tree9962347172d4dda4dde651d5a78c019b6f5383ab /ext
parent919fc002ebaa2256d76ec25908918a8412a06ab1 (diff)
* ext/extmk.rb (extmake): $extout_prefix doesn't vary for libraries.
* ext/extmk.rb (extmake): remove compile directory if empty. * ext/extmk.rb (parse_args) lib/mkmf.rb (create_makefile): move initialization of $extout_prefix from lib/mkmf.rb. [ruby-dev:22928] * ext/extmk.rb: clear ext and extout directory when cleaning. * lib/mkmf.rb (CLEANLIBS): should be under $(arch) directory. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r--ext/extmk.rb24
1 files changed, 16 insertions, 8 deletions
diff --git a/ext/extmk.rb b/ext/extmk.rb
index 406e31e747..15dc1b3dc1 100644
--- a/ext/extmk.rb
+++ b/ext/extmk.rb
@@ -51,10 +51,8 @@ def extmake(target)
init_mkmf
- begin
- dir = Dir.pwd
- FileUtils.mkpath target unless File.directory?(target)
- Dir.chdir target
+ FileUtils.mkpath target unless File.directory?(target)
+ Dir.chdir(target) do
$target = target
$mdir = target
$srcdir = File.join($top_srcdir, "ext", $mdir)
@@ -95,7 +93,7 @@ def extmake(target)
f.print dummy_makefile($srcdir)
return true
end
- args = sysquote($mflags.map {|m| /\Aextout_prefix=\z/ =~ m ? m + $extout_prefix : m})
+ args = sysquote($mflags)
if $static
args += ["static"]
$extlist.push [$static, $target, File.basename($target), $preload]
@@ -114,9 +112,13 @@ def extmake(target)
$extlibs = merge_libs($extlibs, $libs.split, $LOCAL_LIBS.split)
$extpath |= $LIBPATH
end
- ensure
- Dir.chdir dir
end
+ begin
+ Dir.rmdir target
+ target = File.dirname(target)
+ rescue SystemCallError
+ break
+ end while true
true
end
@@ -185,7 +187,8 @@ def parse_args()
unless Config::expand($extout.dup) == $absextout
$extout = $absextout
end
- $mflags << ("extout=" << $extout) << "extout_prefix="
+ $extout_prefix = $extout ? "$(extout)$(target_prefix)/" : ""
+ $mflags << "extout=#$extout" << "extout_prefix=#$extout_prefix"
end
$message = $OPT['message']
@@ -199,6 +202,7 @@ if target = ARGV.shift and /^[a-z-]+$/ =~ target
case target
when /clean/
$ignore ||= true
+ $clean = true
when /^install\b/
$install = true
$ignore ||= true
@@ -292,6 +296,10 @@ end
if $ignore
Dir.chdir ".."
+ if $clean
+ Dir.rmdir('ext') rescue nil
+ FileUtils.rm_rf($absextout) if $extout
+ end
exit
end