From cdce29bf0f4278ff254656895ed49ff6d5000cf4 Mon Sep 17 00:00:00 2001 From: knu Date: Sun, 3 Nov 2002 21:42:14 +0000 Subject: * 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 --- ChangeLog | 10 ++++++++++ Makefile.in | 10 +++++----- bcc32/Makefile.sub | 10 +++++----- ext/extmk.rb | 29 ++++++++++++++++------------- win32/Makefile.sub | 8 ++++---- 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 + + * 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 * 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 -- cgit v1.2.3