ruby-changes:6084
From: nobu <ko1@a...>
Date: Fri, 27 Jun 2008 12:29:34 +0900 (JST)
Subject: [ruby-changes:6084] Ruby:r17596 (trunk, ruby_1_8, mvm): * lib/un.rb (mkmf): new command to create makefile.
nobu 2008-06-27 12:29:00 +0900 (Fri, 27 Jun 2008) New Revision: 17596 Modified files: branches/mvm/ChangeLog branches/mvm/lib/un.rb branches/ruby_1_8/ChangeLog branches/ruby_1_8/lib/un.rb trunk/ChangeLog trunk/lib/un.rb Log: * lib/un.rb (mkmf): new command to create makefile. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/un.rb?r1=17596&r2=17595&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=17596&r2=17595&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=17596&r2=17595&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/mvm/ChangeLog?r1=17596&r2=17595&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/lib/un.rb?r1=17596&r2=17595&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/mvm/lib/un.rb?r1=17596&r2=17595&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 17595) +++ ChangeLog (revision 17596) @@ -1,3 +1,7 @@ +Fri Jun 27 12:28:57 2008 Nobuyoshi Nakada <nobu@r...> + + * lib/un.rb (mkmf): new command to create makefile. + Fri Jun 27 11:06:05 2008 Nobuyoshi Nakada <nobu@r...> * lib/un.rb (wait_writable): added help message. Index: lib/un.rb =================================================================== --- lib/un.rb (revision 17595) +++ lib/un.rb (revision 17596) @@ -20,6 +20,7 @@ # ruby -run -e chmod -- [OPTION] OCTAL-MODE FILE # ruby -run -e touch -- [OPTION] FILE # ruby -run -e wait_writable -- [OPTION] FILE +# ruby -run -e mkmf -- [OPTION] EXTNAME [OPTION] # ruby -run -e help [COMMAND] require "fileutils" @@ -30,30 +31,32 @@ @fileutils_output = $stdout end -def setup(options = "") - ARGV.map! do |x| - case x - when /^-/ - x.delete "^-#{options}v" - when /[*?\[{]/ - Dir[x] - else - x - end - end - ARGV.flatten! - ARGV.delete_if{|x| x == "-"} +def setup(options = "", *long_options) opt_hash = {} + argv = [] OptionParser.new do |o| options.scan(/.:?/) do |s| + opt_name = s.delete(":").intern o.on("-" + s.tr(":", " ")) do |val| - opt_hash[s.delete(":").intern] = val + opt_hash[opt_name] = val end end + long_options.each do |s| + opt_name = s[/\A(?:--)?([^\s=]+)/, 1].intern + o.on(s.sub(/\A(?!--)/, '--')) do |val| + opt_hash[opt_name] = val + end + end o.on("-v") do opt_hash[:verbose] = true end - o.parse! + o.order!(ARGV) do |x| + if /[*?\[{]/ =~ x + argv.concat(Dir[x]) + else + argv << x + end + end end - yield ARGV, opt_hash + yield argv, opt_hash end ## @@ -246,6 +249,38 @@ end ## +# Create makefile using mkmf. +# +# ruby -run -e mkmf -- [OPTION] EXTNAME [OPTION] +# +# -d ARGS run dir_config +# -h ARGS run have_header +# -l ARGS run have_library +# -f ARGS run have_func +# -v ARGS run have_var +# -t ARGS run have_type +# -m ARGS run have_macro +# -c ARGS run have_const +# --vendor install to vendor_ruby +# + +def mkmf + setup("d:h:l:f:v:t:m:c:", "vendor") do |argv, options| + require 'mkmf' + opt = options[:d] and opt.split(/:/).each {|n| dir_config(*n.split(/,/))} + opt = options[:h] and opt.split(/:/).each {|n| have_header(*n.split(/,/))} + opt = options[:l] and opt.split(/:/).each {|n| have_library(*n.split(/,/))} + opt = options[:f] and opt.split(/:/).each {|n| have_func(*n.split(/,/))} + opt = options[:v] and opt.split(/:/).each {|n| have_var(*n.split(/,/))} + opt = options[:t] and opt.split(/:/).each {|n| have_type(*n.split(/,/))} + opt = options[:m] and opt.split(/:/).each {|n| have_macro(*n.split(/,/))} + opt = options[:c] and opt.split(/:/).each {|n| have_const(*n.split(/,/))} + $configure_args["--vendor"] = true if options[:vendor] + create_makefile(*argv) + end +end + +## # Display help message. # # ruby -run -e help [COMMAND] Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 17595) +++ ruby_1_8/ChangeLog (revision 17596) @@ -1,3 +1,7 @@ +Fri Jun 27 12:28:57 2008 Nobuyoshi Nakada <nobu@r...> + + * lib/un.rb (mkmf): new command to create makefile. + Fri Jun 27 00:34:50 2008 Nobuyoshi Nakada <nobu@r...> * common.mk (revision.h): split the temporary file. [ruby-core:17407] Index: ruby_1_8/lib/un.rb =================================================================== --- ruby_1_8/lib/un.rb (revision 17595) +++ ruby_1_8/lib/un.rb (revision 17596) @@ -20,6 +20,7 @@ # ruby -run -e chmod -- [OPTION] OCTAL-MODE FILE # ruby -run -e touch -- [OPTION] FILE # ruby -run -e help [COMMAND] +# ruby -run -e mkmf -- [OPTION] EXTNAME [OPTION] require "fileutils" require "optparse" @@ -29,30 +30,32 @@ @fileutils_output = $stdout end -def setup(options = "") - ARGV.map! do |x| - case x - when /^-/ - x.delete "^-#{options}v" - when /[*?\[{]/ - Dir[x] - else - x - end - end - ARGV.flatten! - ARGV.delete_if{|x| x == "-"} +def setup(options = "", *long_options) opt_hash = {} + argv = [] OptionParser.new do |o| options.scan(/.:?/) do |s| + opt_name = s.delete(":").intern o.on("-" + s.tr(":", " ")) do |val| - opt_hash[s.delete(":").intern] = val + opt_hash[opt_name] = val end end + long_options.each do |s| + opt_name = s[/\A(?:--)?([^\s=]+)/, 1].intern + o.on(s.sub(/\A(?!--)/, '--')) do |val| + opt_hash[opt_name] = val + end + end o.on("-v") do opt_hash[:verbose] = true end - o.parse! + o.order!(ARGV) do |x| + if /[*?\[{]/ =~ x + argv.concat(Dir[x]) + else + argv << x + end + end end - yield ARGV, opt_hash + yield argv, opt_hash end ## @@ -214,6 +217,38 @@ end ## +# Create makefile using mkmf. +# +# ruby -run -e mkmf -- [OPTION] EXTNAME [OPTION] +# +# -d ARGS run dir_config +# -h ARGS run have_header +# -l ARGS run have_library +# -f ARGS run have_func +# -v ARGS run have_var +# -t ARGS run have_type +# -m ARGS run have_macro +# -c ARGS run have_const +# --vendor install to vendor_ruby +# + +def mkmf + setup("d:h:l:f:v:t:m:c:", "vendor") do |argv, options| + require 'mkmf' + opt = options[:d] and opt.split(/:/).each {|n| dir_config(*n.split(/,/))} + opt = options[:h] and opt.split(/:/).each {|n| have_header(*n.split(/,/))} + opt = options[:l] and opt.split(/:/).each {|n| have_library(*n.split(/,/))} + opt = options[:f] and opt.split(/:/).each {|n| have_func(*n.split(/,/))} + opt = options[:v] and opt.split(/:/).each {|n| have_var(*n.split(/,/))} + opt = options[:t] and opt.split(/:/).each {|n| have_type(*n.split(/,/))} + opt = options[:m] and opt.split(/:/).each {|n| have_macro(*n.split(/,/))} + opt = options[:c] and opt.split(/:/).each {|n| have_const(*n.split(/,/))} + $configure_args["--vendor"] = true if options[:vendor] + create_makefile(*argv) + end +end + +## # Display help message. # # ruby -run -e help [COMMAND] Index: mvm/ChangeLog =================================================================== --- mvm/ChangeLog (revision 17595) +++ mvm/ChangeLog (revision 17596) @@ -1,3 +1,7 @@ +Fri Jun 27 12:28:57 2008 Nobuyoshi Nakada <nobu@r...> + + * lib/un.rb (mkmf): new command to create makefile. + Fri Jun 27 11:06:05 2008 Nobuyoshi Nakada <nobu@r...> * lib/un.rb (wait_writable): added help message. Index: mvm/lib/un.rb =================================================================== --- mvm/lib/un.rb (revision 17595) +++ mvm/lib/un.rb (revision 17596) @@ -20,6 +20,7 @@ # ruby -run -e chmod -- [OPTION] OCTAL-MODE FILE # ruby -run -e touch -- [OPTION] FILE # ruby -run -e wait_writable -- [OPTION] FILE +# ruby -run -e mkmf -- [OPTION] EXTNAME [OPTION] # ruby -run -e help [COMMAND] require "fileutils" @@ -30,30 +31,32 @@ @fileutils_output = $stdout end -def setup(options = "") - ARGV.map! do |x| - case x - when /^-/ - x.delete "^-#{options}v" - when /[*?\[{]/ - Dir[x] - else - x - end - end - ARGV.flatten! - ARGV.delete_if{|x| x == "-"} +def setup(options = "", *long_options) opt_hash = {} + argv = [] OptionParser.new do |o| options.scan(/.:?/) do |s| + opt_name = s.delete(":").intern o.on("-" + s.tr(":", " ")) do |val| - opt_hash[s.delete(":").intern] = val + opt_hash[opt_name] = val end end + long_options.each do |s| + opt_name = s[/\A(?:--)?([^\s=]+)/, 1].intern + o.on(s.sub(/\A(?!--)/, '--')) do |val| + opt_hash[opt_name] = val + end + end o.on("-v") do opt_hash[:verbose] = true end - o.parse! + o.order!(ARGV) do |x| + if /[*?\[{]/ =~ x + argv.concat(Dir[x]) + else + argv << x + end + end end - yield ARGV, opt_hash + yield argv, opt_hash end ## @@ -246,6 +249,38 @@ end ## +# Create makefile using mkmf. +# +# ruby -run -e mkmf -- [OPTION] EXTNAME [OPTION] +# +# -d ARGS run dir_config +# -h ARGS run have_header +# -l ARGS run have_library +# -f ARGS run have_func +# -v ARGS run have_var +# -t ARGS run have_type +# -m ARGS run have_macro +# -c ARGS run have_const +# --vendor install to vendor_ruby +# + +def mkmf + setup("d:h:l:f:v:t:m:c:", "vendor") do |argv, options| + require 'mkmf' + opt = options[:d] and opt.split(/:/).each {|n| dir_config(*n.split(/,/))} + opt = options[:h] and opt.split(/:/).each {|n| have_header(*n.split(/,/))} + opt = options[:l] and opt.split(/:/).each {|n| have_library(*n.split(/,/))} + opt = options[:f] and opt.split(/:/).each {|n| have_func(*n.split(/,/))} + opt = options[:v] and opt.split(/:/).each {|n| have_var(*n.split(/,/))} + opt = options[:t] and opt.split(/:/).each {|n| have_type(*n.split(/,/))} + opt = options[:m] and opt.split(/:/).each {|n| have_macro(*n.split(/,/))} + opt = options[:c] and opt.split(/:/).each {|n| have_const(*n.split(/,/))} + $configure_args["--vendor"] = true if options[:vendor] + create_makefile(*argv) + end +end + +## # Display help message. # # ruby -run -e help [COMMAND] -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/