summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--Makefile.in10
-rw-r--r--bcc32/Makefile.sub10
-rw-r--r--ext/extmk.rb29
-rw-r--r--win32/Makefile.sub8
5 files changed, 40 insertions, 27 deletions
diff --git a/ChangeLog b/ChangeLog
index 5c3b2b67f3..84a863c33d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Mon Nov 4 06:28:09 2002 Akinori MUSHA <knu@iDaemons.org>
+
+ * 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]
+
Mon Nov 4 03:59:51 2002 Akinori MUSHA <knu@iDaemons.org>
* lib/getopts.rb: Do not choke on characters that cannot be used
diff --git a/Makefile.in b/Makefile.in
index ebfed6861e..5f51f6b91d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -99,7 +99,7 @@ OBJS = array.@OBJEXT@ \
$(MISSING)
all: @MAKEFILES@ miniruby$(EXEEXT) rbconfig.rb $(LIBRUBY)
- @$(MINIRUBY) $(srcdir)/ext/extmk.rb @EXTSTATIC@ $(MAKE) $(MFLAGS)$(MAKEFLAGS)
+ @$(MINIRUBY) $(srcdir)/ext/extmk.rb --extstatic="@EXTSTATIC@" --make="$(MAKE)" --make-flags="$(MFLAGS)$(MAKEFLAGS)"
miniruby$(EXEEXT): config.status $(LIBRUBY_A) $(MAINOBJ) dmyext.@OBJEXT@
@rm -f $@
@@ -124,11 +124,11 @@ ruby.imp: $(LIBRUBY_A)
# $(MINIRUBY) $< $@
install: rbconfig.rb
- $(MINIRUBY) $(srcdir)/instruby.rb --make=$(MAKE) $(MFLAGS)$(MAKEFLAGS) $(DESTDIR)
- $(MINIRUBY) $(srcdir)/ext/extmk.rb $(MAKE) $(MFLAGS)$(MAKEFLAGS) DESTDIR=$(DESTDIR) install
+ $(MINIRUBY) $(srcdir)/instruby.rb --make="$(MAKE)" --make-flags="$(MFLAGS)$(MAKEFLAGS)" $(DESTDIR)
+ $(MINIRUBY) $(srcdir)/ext/extmk.rb --make="$(MAKE)" --make-flags="$(MFLAGS)$(MAKEFLAGS) DESTDIR=$(DESTDIR)" install
clean-ext:
- @-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(MAKE) $(MFLAGS)$(MAKEFLAGS) clean 2> /dev/null || true
+ @-$(MINIRUBY) $(srcdir)/ext/extmk.rb --make="$(MAKE)" --make-flags="$(MFLAGS)$(MAKEFLAGS)" clean 2> /dev/null || true
clean-local:
@rm -f $(OBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY_ALIASES)
@@ -138,7 +138,7 @@ clean-local:
clean: clean-ext clean-local
distclean-ext:
- @-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(MAKE) $(MFLAGS)$(MAKEFLAGS) distclean 2> /dev/null || true
+ @-$(MINIRUBY) $(srcdir)/ext/extmk.rb --make="$(MAKE)" --make-flags="$(MFLAGS)$(MAKEFLAGS)" distclean 2> /dev/null || true
distclean-local: clean-local
@rm -f @MAKEFILES@ config.h rbconfig.rb
diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub
index cb7737ed54..2abd1f3470 100644
--- a/bcc32/Makefile.sub
+++ b/bcc32/Makefile.sub
@@ -184,7 +184,7 @@ OBJS = array.obj \
all: miniruby$(EXEEXT) rbconfig.rb \
$(LIBRUBY) $(MISCLIBS)
- @.\miniruby$(EXEEXT) $(srcdir)ext/extmk.rb $(EXTSTATIC) $(MAKE) -$(MFLAGS)$(MAKEFLAGS)
+ @.\miniruby$(EXEEXT) $(srcdir)ext/extmk.rb --extstatic=$(EXTSTATIC) --make="$(MAKE)" --make-flags="-$(MFLAGS)$(MAKEFLAGS)"
ruby: $(PROGRAM)
rubyw: $(WPROGRAM)
@@ -405,8 +405,8 @@ $(RUBYDEF): $(LIBRUBY_A) miniruby$(EXEEXT)
$(MINIRUBY) $(srcdir)bcc32/mkexports.rb -output=$@ $(LIBRUBY_A)
install: rbconfig.rb
- $(MINIRUBY) $(srcdir)instruby.rb -$(MFLAGS)$(MAKEFLAGS) $(DESTDIR)
- $(MINIRUBY) $(srcdir)ext/extmk.rb $(MAKE) -$(MFLAGS)$(MAKEFLAGS) DESTDIR=$(DESTDIR) install
+ $(MINIRUBY) $(srcdir)instruby.rb --make="$(MAKE)" --make-flags="-$(MFLAGS)$(MAKEFLAGS)" $(DESTDIR)
+ $(MINIRUBY) $(srcdir)ext/extmk.rb --make="$(MAKE)" --make-flags="-$(MFLAGS)$(MAKEFLAGS) DESTDIR=$(DESTDIR)" install
clean: clean-ext clean-local
@@ -423,7 +423,7 @@ clean-local:
@if exist *.il? del *.il?
clean-ext:
- @-$(MINIRUBY) $(srcdir)ext/extmk.rb $(MAKE) -$(MFLAGS)$(MAKEFLAGS) clean
+ @-$(MINIRUBY) $(srcdir)ext/extmk.rb --make="$(MAKE)" --make-flags="-$(MFLAGS)$(MAKEFLAGS)" clean
distclean: distclean-ext distclean-local
@@ -457,7 +457,7 @@ distclean-local: clean-local
@if exist miniruby$(EXEEXT) del miniruby$(EXEEXT)
distclean-ext:
- @-$(MINIRUBY) $(srcdir)ext/extmk.rb $(MAKE) -$(MFLAGS)$(MAKEFLAGS) distclean
+ @-$(MINIRUBY) $(srcdir)ext/extmk.rb --make="$(MAKE)" --make-flags="-$(MFLAGS)$(MAKEFLAGS)" distclean
realclean: distclean
@if exist parse.c del parse.c
diff --git a/ext/extmk.rb b/ext/extmk.rb
index 1c02df2609..1df0b87cfc 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
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index f3dbe38cf7..bcf0d8fa5d 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -171,7 +171,7 @@ OBJS = array.obj \
all: ext miniruby$(EXEEXT) rbconfig.rb \
$(LIBRUBY) $(MISCLIBS)
- @$(MINIRUBY) $(srcdir)/ext/extmk.rb $(EXTSTATIC) $(MAKE) -$(MFLAGS)$(MAKEFLAGS)
+ @$(MINIRUBY) $(srcdir)/ext/extmk.rb --extstatic=$(EXTSTATIC) --make="$(MAKE)" --make-flags="-$(MFLAGS)$(MAKEFLAGS)"
ext:
@mkdir $@
@@ -406,7 +406,7 @@ $(RUBYDEF): $(LIBRUBY_A) miniruby$(EXEEXT)
install: rbconfig.rb
$(MINIRUBY) $(srcdir)/instruby.rb -$(MFLAGS)$(MAKEFLAGS) $(DESTDIR)
- $(MINIRUBY) $(srcdir)/ext/extmk.rb $(MAKE) -$(MFLAGS)$(MAKEFLAGS) DESTDIR=$(DESTDIR) install
+ $(MINIRUBY) $(srcdir)/ext/extmk.rb --make="$(MAKE)" --make-flags="-$(MFLAGS)$(MAKEFLAGS) DESTDIR=$(DESTDIR)" install
clean: clean-ext clean-local
@@ -421,7 +421,7 @@ clean-local:
@if exist *.res del *.res
clean-ext:
- @-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(MAKE) -$(MFLAGS)$(MAKEFLAGS) clean
+ @-$(MINIRUBY) $(srcdir)/ext/extmk.rb --make="$(MAKE)" --make-flags="-$(MFLAGS)$(MAKEFLAGS)" clean
distclean: distclean-ext distclean-local
@@ -455,7 +455,7 @@ distclean-local: clean-local
@if exist miniruby$(EXEEXT) del miniruby$(EXEEXT)
distclean-ext:
- @-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(MAKE) -$(MFLAGS)$(MAKEFLAGS) distclean
+ @-$(MINIRUBY) $(srcdir)/ext/extmk.rb --make="$(MAKE)" --make-flags="-$(MFLAGS)$(MAKEFLAGS)" distclean
realclean: distclean
@if exist parse.c del parse.c