File: mswin32_extmk.rb

package info (click to toggle)
ruby 1.4.3-6
  • links: PTS
  • area: main
  • in suites: potato
  • size: 4,068 kB
  • ctags: 7,509
  • sloc: ansic: 60,668; ruby: 23,106; yacc: 4,122; sh: 1,753; lisp: 997; makefile: 597; sed: 68; awk: 36; tcl: 31; perl: 17; python: 6
file content (41 lines) | stat: -rw-r--r-- 1,008 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!./miniruby

def create_gsub_rb()
  f = open("mswin32_gsub.rb", "w")
  has_version = false
  f.print 'f = open("extmk.rb", "w")', "\n"
  f.print 'File.foreach "extmk.rb.in" do |$_|', "\n"
  File.foreach "../config.status" do |$_|
    next if /^#/
    if /^s%@(\w+)@%(.*)%g/
      name = $1
      val = $2 || ""
      next if name =~ /^(INSTALL|DEFS|configure_input|srcdir)$/
      val = ".." if name == "top_srcdir"
      val.gsub!(/\$\{([^{}]+)\}/) { "$(#{$1})" }
      f.print "  gsub!(\"@#{name}@\", \"#{val}\")\n"
      has_version = true if name == "MAJOR"
    end
  end
  
  if not has_version
    VERSION.scan(/(\d+)\.(\d+)\.(\d+)/) {
      f.print "  gsub!(\"@MAJOR@\", \"#{$1}\")\n"
      f.print "  gsub!(\"@MINOR@\", \"#{$2}\")\n"
      f.print "  gsub!(\"@TEENY@\", \"#{$3}\")\n"
    }
  end
  f.print '  f.print $_', "\n"
  f.print 'end', "\n"
  f.print 'f.close', "\n"
  f.close
end

begin
  create_gsub_rb()
  load "mswin32_gsub.rb"
ensure
  File.unlink "mswin32_gsub.rb"
end

# vi:set sw=2: