summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-11-03 21:42:14 +0000
committerknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-11-03 21:42:14 +0000
commitcdce29bf0f4278ff254656895ed49ff6d5000cf4 (patch)
tree3d69bb356cce12d9b309712b22ed5aa567acc7a5 /ext
parentdb9126b073a3297d03ccb84cadb26b09fbaa08e6 (diff)
* Makefile.in, ext/extmk.rb, bcc32/Makefile.sub,
win32/Makefile.sub: Introduce better command line syntax (--make/--make-flags/--extstatic) to extmk.rb and instruby.rb. Previously such command as 'make -j3 install' with pmake doesn't fail. Formerly extmk.rb was receiving "make -j 3 -j 3" via the command line arguments and just ended up recognizing the first "3" as destdir. [with help of usa] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r--ext/extmk.rb29
1 files changed, 16 insertions, 13 deletions
diff --git a/ext/extmk.rb b/ext/extmk.rb
index 1c02df2..1df0b87 100644
--- a/ext/extmk.rb
+++ b/ext/extmk.rb
@@ -69,7 +69,7 @@ def extmake(target)
if $static
$extlist.push [$static, $target, File.basename($target)]
end
- unless system *ARGV
+ unless system($make, *$mflags)
$ignore or $continue or exit(1)
end
else
@@ -93,13 +93,15 @@ def extmake(target)
end
end
-if ARGV[0] == "static"
- ARGV.shift
- $force_static = true
-end
+require 'getopts'
+
+getopts('', 'extstatic', 'make:', 'make-flags:')
+
+$force_static = $OPT['extstatic']
+$make = $OPT['make'] || $make
+$mflags = $OPT['make-flags'] || ""
+$mflags = Shellwords.shellwords(mflags)
-$make = ARGV[0] if ARGV[0]
-ARGV << $make if ARGV.empty? and $make
if mflags = ENV["MAKEFLAGS"]
mflags, = mflags.split(nil, 2)
else
@@ -109,14 +111,15 @@ $continue = mflags.include?(?k)
$dryrun = mflags.include?(?n)
unless $message
- if ARGV.size > 1 and /^[a-z]+$/ =~ ($message = ARGV[-1])
+ if $message = ARGV.shift and /^[a-z]+$/ =~ $message
$message = $message.sub(/^(?:dist|real)(?=(?:clean)?$)/, '\1')
case $message
when "clean"
$ignore ||= true
when "install"
$ignore ||= true
- ARGV[1, 0] = ["INSTALL_PROG=install -m 0755", "INSTALL_DATA=install -m 0644"] if $dryrun
+ $mflags.unshift("INSTALL_PROG=install -m 0755",
+ "INSTALL_DATA=install -m 0644") if $dryrun
end
$message.sub!(/e?$/, "ing")
else
@@ -208,7 +211,7 @@ if $extlist.size > 0
}.compact
puts conf
$stdout.flush
- ARGV.concat(conf)
+ $mflags.concat(conf)
end
rubies = []
%w[RUBY RUBYW].each {|r|
@@ -218,10 +221,10 @@ rubies = []
Dir.chdir ".."
puts "making #{rubies.join(', ')}"
$stdout.flush
-ARGV.concat(rubies)
+$mflags.concat(rubies)
host = (defined?(CROSS_COMPILING) ? CROSS_COMPILING : RUBY_PLATFORM)
-/mswin|bccwin|mingw|djgpp|human|os2|macos/ =~ host or exec(*ARGV)
-system(*ARGV.quote) or exit($?.exitstatus)
+/mswin|bccwin|mingw|djgpp|human|os2|macos/ =~ host or exec($make, *$mflags)
+system($make, *$mflags.quote) or exit($?.exitstatus)
#Local variables:
# mode: ruby