* io.c (rb_open_file): encoding in mode string was ignored if perm is
[ruby-svn.git] / enc / make_encmake.rb
blobf8c7735047a0c5292181acf7dc58afb64919e75e
1 #! ./miniruby
3 dir = File.expand_path("../..", __FILE__)
4 $:.unshift(dir)
5 $:.unshift(".")
6 if $".grep(/mkmf/).empty?
7   $" << "mkmf.rb"
8   load File.expand_path("lib/mkmf.rb", dir)
9 end
10 require 'erb'
12 CONFIG["MAKEDIRS"] ||= '@$(MINIRUBY) -run -e mkdir -- -p'
14 BUILTIN_ENCS = []
15 ENC_PATTERNS = []
16 NOENC_PATTERNS = []
18 until ARGV.empty?
19   case ARGV[0]
20   when /\A--builtin-encs=/
21     BUILTIN_ENCS.concat $'.split.map {|e| File.basename(e, '.*') << '.c'}
22     ARGV.shift
23   when /\A--encs=/
24     ENC_PATTERNS.concat $'.split
25     ARGV.shift
26   when /\A--no-encs=/
27     NOENC_PATTERNS.concat $'.split
28     ARGV.shift
29   else
30     break
31   end
32 end
34 if File.exist?(depend = File.join($srcdir, "depend"))
35   erb = ERB.new(File.read(depend), nil, '%')
36   erb.filename = depend
37   tmp = erb.result(binding)
38   dep = "\n#### depend ####\n\n" << depend_rules(tmp).join
39 else
40   dep = ""
41 end
42 mkin = File.read(File.join($srcdir, "Makefile.in"))
43 mkin.gsub!(/@(#{CONFIG.keys.join('|')})@/) {CONFIG[$1]}
44 open(ARGV[0], 'wb') {|f|
45   f.puts mkin, dep