rakelib/setup.rake
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 31 Jul 2017 23:03:46 +0100
changeset 134 78f8c3f3390d
parent 133 8229af6e81df
child 138 2507036dfee8
permissions -rw-r--r--
Makefiles: Added our own implementation of `stmkmf` This is a preparation to fork and clean Smalltalk/X makefiles. Since package makefile is generated by stmkmf, we need to use our own in order to include our own makefiles.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
defined? BUILD_DIR or BUILD_DIR = 'build'
7
b6fe3a90f6e0 Added `zip()` & `unzip()` extensions to easily create / extract archives from build scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
     2
defined? BUILD_ID or BUILD_ID = ENV['BUILD_NUMBER'] ? "build#{ENV['BUILD_NUMBER']}" : "#{Time.now.strftime("%Y%m%d")}"
4
48ec8a59ced4 Renamed `dist` target to `install`. Added new target `artifacts` (mainly) for Jenkins builds.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
     3
defined? ARTIFACTS_DIR or ARTIFACTS_DIR = 'artifacts'
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
defined? REPORT_DIR or REPORT_DIR = 'reports'
77
570ae23d0ce2 Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
     5
defined? TMP_DIR or TMP_DIR = 'tmp'
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
defined? DEBUG or DEBUG = nil
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
18
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
     8
if File.exist? 'config.rb'
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
     9
  load 'config.rb'
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    10
end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    11
7
b6fe3a90f6e0 Added `zip()` & `unzip()` extensions to easily create / extract archives from build scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    12
defined? PROJECT or PROJECT = 'stx:jv-branch'
b6fe3a90f6e0 Added `zip()` & `unzip()` extensions to easily create / extract archives from build scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    13
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    14
if not defined? ARCH then
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    15
  if ENV.has_key? 'ARCH' then
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    16
    ARCH = ENV['ARCH']
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    17
  else
33
fe75297c59be Fixed architecture detection on 32bit systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    18
    arch = RbConfig::CONFIG['host_cpu']
fe75297c59be Fixed architecture detection on 32bit systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    19
    case arch
fe75297c59be Fixed architecture detection on 32bit systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    20
    when "i586"
fe75297c59be Fixed architecture detection on 32bit systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    21
      ARCH = 'i386'
fe75297c59be Fixed architecture detection on 32bit systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    22
    when "i686"
fe75297c59be Fixed architecture detection on 32bit systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    23
      ARCH = 'i386'
fe75297c59be Fixed architecture detection on 32bit systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    24
    else
fe75297c59be Fixed architecture detection on 32bit systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    25
      ARCH = arch
fe75297c59be Fixed architecture detection on 32bit systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    26
    end
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    27
  end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    28
  if ARCH != 'i386' && ARCH != 'x86_64' then
4
48ec8a59ced4 Renamed `dist` target to `install`. Added new target `artifacts` (mainly) for Jenkins builds.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    29
    raise Exception.new("Unsupported architecture #{ARCH}")
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    30
  end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    31
end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    32
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    33
if not defined? TOOLCHAIN then
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    34
  if ENV.has_key? 'TOOLCHAIN' then
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    35
    TOOLCHAIN = ENV['TOOLCHAIN']
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    36
  else
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    37
    if unix? then
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    38
      TOOLCHAIN='gcc'
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    39
    elsif win32? then
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    40
      if ARCH == 'x86_64' then
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    41
        TOOLCHAIN='mingw64'
9
34274130f57a Removed some old, dead code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    42
      else        
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    43
        TOOLCHAIN="mingw32"
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    44
      end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    45
    else
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    46
      raise new Exception("Unsupported operating system")    
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    47
    end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    48
  end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    49
end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    50
98
e8a75e807ff2 Oops, make sure `REPOSITORYSET` value is written to `config.rb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 97
diff changeset
    51
if not defined? REPOSITORYSET
e8a75e807ff2 Oops, make sure `REPOSITORYSET` value is written to `config.rb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 97
diff changeset
    52
  REPOSITORYSET = (ENV['REPOSITORYSET'] || 'default')
e8a75e807ff2 Oops, make sure `REPOSITORYSET` value is written to `config.rb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 97
diff changeset
    53
end
e8a75e807ff2 Oops, make sure `REPOSITORYSET` value is written to `config.rb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 97
diff changeset
    54
18
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    55
if not File.exist? 'config.rb'
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
  if defined? PROJECT
18
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    57
    File.open('config.rb', 'w') do | f |
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    58
      f.puts <<COMMENT
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    59
# This file contans a default build configuration. It is created automatically
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    60
# when `rake` is called for the very first time. You may still override values
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    61
# on command line, i.e., 
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    62
#
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    63
#     rake PROJECT=some-other-project 
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    64
#
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    65
# This file SHOULD NOT be checked in a repository. 
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    66
#
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    67
COMMENT
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
      f.puts "PROJECT='#{PROJECT}' if not defined? PROJECT"
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    69
      f.puts "ARCH='#{ARCH}' if not defined? ARCH"
98
e8a75e807ff2 Oops, make sure `REPOSITORYSET` value is written to `config.rb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 97
diff changeset
    70
      f.puts "REPOSITORYSET='#{REPOSITORYSET}' if not defined? REPOSITORYSET"
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
      if defined? PROJECT_DIRS
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    72
        f.puts "PROJECT_DIRS='#{PROJECT_DIRS}' if not defined? PROJECT_DIRS"
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
  end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
defined? PROJECT_DIRS or PROJECT_DIRS = ''
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
if TOOLCHAIN == 'gcc' then
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
  OBJ_DIR = '.'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
  OBJ_SUFFIX = 'o'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
  MAKE='make'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
elsif TOOLCHAIN == 'bcc' then
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
  OBJ_DIR = 'objbc'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
  OBJ_SUFFIX = 'obj'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
  MAKE='bmake.bat -DUSEBC'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
elsif TOOLCHAIN == 'mingw64' then
23
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
    89
  if File.exist? 'C:\mingw64\bin' then
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
    90
    ENV['MINGW_DIR'] ='C:\MINGW64'
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
    91
    ENV['USEMINGW_ARG'] = '-DUSEMINGW64'
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
    92
  elsif File.exist? 'C:\MSYS64\MINGW64\bin\gcc.exe'
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
    93
    ENV['MINGW_DIR'] ='C:\MSYS64\MINGW64'
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
    94
    ENV['USEMINGW_ARG'] = '-DUSEMINGW64'
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
    95
  else
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
    96
  	raise Exception.new("MINGW64 nor MSYS2 found in C:\\MinGW64 nor C:\\MSYS64!")
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
  end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
  ENV['MINGW'] = '__MINGW64__'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
  OBJ_DIR = 'objmingw'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
  OBJ_SUFFIX = 'obj'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
  MAKE='mingwmake.bat'  
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
  ENV["PATH"] = "#{ENV['PATH']};#{ENV['MINGW_DIR']}\\bin"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
elsif (TOOLCHAIN == 'mingw' or TOOLCHAIN == 'mingw32') then
23
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   104
  if File.exist? 'C:\mingw\bin' then
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   105
    ENV['MINGW_DIR'] ='C:\MINGW'
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   106
    ENV['USEMINGW_ARG'] = '-DUSEMINGW32'  
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   107
  elsif File.exist? 'C:\MSYS64\MINGW32\bin\gcc.exe'
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   108
    ENV['MINGW_DIR'] ='C:\MSYS64\MINGW32'
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   109
    ENV['USEMINGW_ARG'] = '-DUSEMINGW32'  
38
7b2b274f0f5a Fixed setup for 32bit build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   110
    system 'set'
23
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   111
  elsif File.exist? 'C:\MSYS\MINGW32\bin\gcc.exe'
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   112
    ENV['MINGW_DIR'] ='C:\MSYS\MINGW32'
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   113
    ENV['USEMINGW_ARG'] = '-DUSEMINGW32'  
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   114
  else    
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   115
    raise Exception.new("MINGW32 nor MSYS2 found in C:\\MinGW nor C:\\MSYS64 nor C:\\MSYS!")
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
  end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
  ENV['MINGW'] = '__MINGW32__'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
  OBJ_DIR = 'objmingw'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
  OBJ_SUFFIX = 'obj'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
  MAKE='mingwmake.bat'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
  ENV["PATH"] = "#{ENV['PATH']};#{ENV['MINGW_DIR']}\\bin"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
else
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
  raise new Exception("Unsupported toolchain: #{TOOLCHAIN}")
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
  
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
task :'setup' => [ :'setup:pre',
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
                   :'setup:main',
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
                   :'setup:post' ]
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
task :'setup:pre'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
task :'setup:post'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
task :'setup:main' => [ :'setup:projects', :'setup:project' , :'setup:tasks' ];
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
task :'setup:projects' do
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
  Rake::Stx::Configuration.read_specs(PROJECT_DIRS)
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
task :'setup:project' =>  :'setup:projects'  do
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
  error("PROJECT variable not defined!") if not defined? PROJECT
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
  project! PROJECT.to_sym
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
  project.apply_imports()
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
  app_name    = project.app_name    || 'smalltalkx'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
  app_version = project.app_version || '6.2.5'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   149
  defined? BUILD_NAME or BUILD_NAME = "#{app_name}-#{app_version}_#{ARCH}-#{win32? ? 'win32' : RbConfig::CONFIG['host_os']}"  
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   150
end
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   151
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   152
task :'setup:dependencies' => :'checkout' do
102
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   153
  project.packages.each do | pkg |          
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   154
    if pkg.name == 'stx:stc' or pkg.name == 'stx:librun' or File.exist? (BUILD_DIR / pkg.directory() / pkg.project_definition_file_name()) then
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   155
	    if not pkg.test_package? then
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   156
        task "#{project.application.name}:dependencies" => pkg.name
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   157
        task "#{pkg.name}:dependencies" => pkg.prereqs(mandatory: true)
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   158
      end
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   159
    end
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   160
  end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
task :'setup:tasks' => :'setup:tasks:internal'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
task :'setup:tasks:internal' => :'setup:project' do
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   167
  project.tasks.each do | t |
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
    t.define!
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
  end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
  # compile task
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
  if project.application
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    task :'compile:application' => project.application.name
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
  else
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    task :'compile:application'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
  end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   178
  info "Defining tasks for packages..."
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   180
  project.packages_and_application.each do | pkg |
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
    info "Defining task for package #{pkg.name}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   184
    if unix? #and not File.exist? BUILD_DIR / pkg.directory / 'makefile'    
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
      task pkg.name => [ BUILD_DIR / pkg.directory / 'makefile' ]
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
      file BUILD_DIR / pkg.directory / 'makefile' do
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
        chdir BUILD_DIR / pkg.directory do
134
78f8c3f3390d Makefiles: Added our own implementation of `stmkmf`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   188
          if not system "#{ pkg.top() / 'stx' / 'rules' / 'stmkmf'}"
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
            raise Exception.new("Canmot run stmkmf for #{pkg.directory}")
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
    end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
    #require 'find'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
    #[ 'bitmaps', 'resources' ].each do | dir |
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
    #  path = BUILD_DIR / pkg.directory() / dir
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
    #  if File.exist?(path)
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
    #    Find.find(File.expand_path(path)) do | file |
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
    #      if FileTest.directory?(file)
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
    #        if (File.basename(file) == '..') || (File.basename(file) == '.')
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
    #          Find.prune       # Don't look any further into this directory.
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
    #        else
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
    #          if File.exists?(File.join(file, '.svn'))
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
    #            rm_rf File.join(file, '.svn')
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
    #            #Find.prune
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
    #          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
    #        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
    #      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
    #    end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
    #  end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
    #end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
131
edaf0258b9c2 Rakefiles: make per-package compilation task to setup its dependencies
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
   214
    task "#{pkg.name}" => [ :'setup:dependencies' , "#{pkg.name}:dependencies", "#{pkg.name}:pre", "#{pkg.name}:main", "#{pkg.name}:post" ]
133
8229af6e81df Rakefiles: update VM's symbol database after a package compiled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   215
    
8229af6e81df Rakefiles: update VM's symbol database after a package compiled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   216
    # For Smalltalk class libraries, we have to update VM symbol database
8229af6e81df Rakefiles: update VM's symbol database after a package compiled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   217
    # if changed...
8229af6e81df Rakefiles: update VM's symbol database after a package compiled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   218
    if pkg.name != 'stx:stc' && pkg.name != 'stx:librun' then
8229af6e81df Rakefiles: update VM's symbol database after a package compiled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   219
      task "#{pkg.name}" => [ 'stx:librun:symbols' ]  
8229af6e81df Rakefiles: update VM's symbol database after a package compiled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   220
    end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
131
edaf0258b9c2 Rakefiles: make per-package compilation task to setup its dependencies
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
   222
    task "#{pkg.name}:dependencies"
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
    task "#{pkg.name}:pre"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    task "#{pkg.name}:post"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
    task "#{pkg.name}:main" do | t |
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
      make_vars = ""
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
      d = win32? ? '-D' : ''
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
      q = win32? ? '"'  : "'"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
      if unix?
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
        make_vars += "STC=#{STC}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
      if pkg.application? and not win32?
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
        liblist=''
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
        libobjs=''
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
        link_libobjs=''
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   239
        project.packages.each do | p |
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   240
          if File.exist? (BUILD_DIR / p.directory() / p.project_definition_file_name()) then
97
33cf3197acb5 Added hack for compiling 32bit stx:libdb/libodbc on 64bit Linux
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 93
diff changeset
   241
            if not p.application? and p.link and not p.test_package?
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   242
              liblist += "#{p.dll_name_without_suffix()} "
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   243
              libobjs += "#{File.join(pkg.top() , p.directory(), p.dll_name())} "
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   244
              link_libobjs += "#{p.dll_name()} "                
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   245
            end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
        make_vars += " #{q}#{d}LIBLIST=#{liblist}#{q}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
        make_vars += " #{q}#{d}LIBOBJS=#{libobjs}#{q}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
        make_vars += " #{q}#{d}LINK_LIBOBJS=#{link_libobjs}#{q}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
      # Update stc flags,
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
      stc_flags = pkg.stc_flags
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
      if stc_flags
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
        make_vars += " #{q}#{d}STC_CMD_OPT=#{stc_flags}#{q}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
      if File.exist? BUILD_DIR / pkg.directory / 'GNUmakefile'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
        rm BUILD_DIR / pkg.directory / 'GNUmakefile'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
      info "Compiling #{pkg.name}..."
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
      make_vars = "#{make_vars} #{DEBUG}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
      chdir BUILD_DIR / pkg.directory do
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
        if pkg.application? and win32?
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
          make 'exe'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
          make 'RESOURCEFILES'
102
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   270
        else          
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   271
          if pkg.name == 'stx:stc' 
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   272
            # Sigh, on UNIX makefile is generated. So if we're using
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   273
            # binary stc, we have to recreate it first.
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   274
            if unix? then
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   275
              if not File.exist? 'makefile'
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   276
                sh "'#{STX_TOP_DIR / 'rules' / 'stmkmf'}'"
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   277
              end
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   278
            end
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   279
            make
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   280
          elsif pkg.name == 'stx:librun'
111
767f2ace9b82 Win32: A nasty workaround to avoid Borland make to crash under Windows 10
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   281
            # A workaround for Windows 10 & ancient Borland make which 
767f2ace9b82 Win32: A nasty workaround to avoid Borland make to crash under Windows 10
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   282
            # tend to crash there when trying to recompile already compiled
767f2ace9b82 Win32: A nasty workaround to avoid Borland make to crash under Windows 10
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   283
            # librun. Sigh, we have to move away from it as soon as possible!
767f2ace9b82 Win32: A nasty workaround to avoid Borland make to crash under Windows 10
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   284
            if win32? and (File.exist? "stxmain.c") then
767f2ace9b82 Win32: A nasty workaround to avoid Borland make to crash under Windows 10
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   285
              touch "stxmain.c"
767f2ace9b82 Win32: A nasty workaround to avoid Borland make to crash under Windows 10
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   286
            end
102
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   287
            make
132
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   288
            if not pkg.application? and win32?                            
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   289
              cp 'objmingw' / 'librun.dll',
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   290
                 pkg.top /  project.application.directory 
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   291
            end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
          else
102
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   293
            # Somewhat stupid detection whether we run recent St/X or not
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   294
            # ('recent' mean more recent than 3 years or so)
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   295
            # TODO: Remove this hack
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   296
            if File.exist? BUILD_DIR / 'stx' / 'libbasic2' / 'Makefile.init'
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   297
              make "#{make_vars} full"
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   298
            else
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   299
              make "#{make_vars}"
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   300
            end
132
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   301
            # On Windows, copy the DLL application directory
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   302
            if not pkg.application? and win32?
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   303
              if not uptodate? pkg.top / project.application.directory, [ OBJ_DIR / pkg.dll_name ] then
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   304
                cp OBJ_DIR / pkg.dll_name, pkg.top /  project.application.directory 
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   305
              end
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   306
            end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
132
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   311
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   312
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
      if pkg.application?  and unix?
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
        chdir BUILD_DIR / 'stx' / 'librun' do
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
          make
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
    end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
    if pkg.application?
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
      if win32?
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
        task pkg.name => BUILD_DIR / pkg.directory / 'modules.stx'
112
9133803c99a2 Various fixes to build a working Smalltalk/X jv-branch distribution
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   326
        
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
        task BUILD_DIR / pkg.directory / 'modules.stx' do | t |
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
          rm t.name if File.exist? t.name
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
          File.open(t.name, 'w') do | f |
112
9133803c99a2 Various fixes to build a working Smalltalk/X jv-branch distribution
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   330
            project.packages.each do | p |              
9133803c99a2 Various fixes to build a working Smalltalk/X jv-branch distribution
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   331
              if not p.application? and p.link and not p.test_package? and p.name != 'stx:stc' and p.name != 'stx:librun' and File.exist? BUILD_DIR / p.directory / OBJ_DIR / p.dll_name()          		
9133803c99a2 Various fixes to build a working Smalltalk/X jv-branch distribution
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   332
                f.puts p.dll_name_without_suffix()               
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
              end
112
9133803c99a2 Various fixes to build a working Smalltalk/X jv-branch distribution
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   334
            end            
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   338
        project.packages.each do | p |
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   339
          if not p.application? and not p.test_package?
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
            task pkg.name => BUILD_DIR / pkg.directory / p.dll_name()
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   342
            file BUILD_DIR / pkg.directory / p.dll_name() do
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   343
              if not p.application? and p.link and not p.test_package? and File.exist? BUILD_DIR / p.directory / OBJ_DIR / p.dll_name()
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   344
                cp BUILD_DIR / p.directory / OBJ_DIR / p.dll_name(),
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   345
                   BUILD_DIR / pkg.directory / p.dll_name()
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   346
              end                   
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
            end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   348
          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   349
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   350
          if win32_wine?
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   351
            file BUILD_DIR / pkg.directory / p.dll_name() do
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   352
              cp BUILD_DIR / p.directory / OBJ_DIR / p.dll_name(),
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   353
              BUILD_DIR / pkg.directory / p.dll_name()
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   354
            end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   355
          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   357
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   358
      else # UNIX
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   359
        task "#{pkg.name}:main" => BUILD_DIR / pkg.directory / 'modulList.stc'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   360
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   361
        task BUILD_DIR / pkg.directory / 'modulList.stc' do | t |
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
          rm t.name if File.exist? t.name
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   365
        task "#{pkg.name}:main" => BUILD_DIR / pkg.directory / 'modulList.c'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   367
        task BUILD_DIR / pkg.directory / 'modulList.c' do | t |
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
          rm t.name if File.exist? t.name
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   369
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   370
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   371
    end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
  end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   374
end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   377
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379