The law of nature dictates that if it is not tested, it is broken. So it is only natural that the recent rewrite of IronRuby's Rakefile broke build on Mono. No worry, I guess that's why I'm on this list. :-)
The preliminary fixes are available here: http://sparcs.kaist.ac.kr/~tinuviel/download/IronRuby/patch-rakefile Let me go through changes one by one. - exec "mkdir #{build_path}" + mkdir build_path If you have defined an abstraction, you better use it. Related is: - exec_f "mkdir #{path}" + if ENV['mono'].nil? + exec_f "mkdir #{path}" + else + exec_f "mkdir -p #{path}" + end On Windows, mkdir command will create any necessary parent directories. To get the same effect, you need -p option on Unix. This change is arguably wrong, since you can use Mono on Windows too. But let's worry about that later. I guess reimlementing "mkdir -p" in Ruby would be the way to go. Since such functionality would be generally useful, it could be contributed to, say, Ruby standard library. Perhaps such functionality is already there... framework_path { libdir = IO.popen('pkg-config --variable=libdir mono').read.strip - Pathname.new(libdir) + 'mono' + '2.0' + [Pathname.new(libdir) + 'mono' + '2.0'] } framework_path should be called with an array, or with a block returning *an array*. - get_source_dir(:build) + "/#{clr ... + get_source_dir(:build) + "#{clr ... Pathname.new('build') + '/release' produces 'build\\release' on Windows, but '/release' on Unix. PLEASE NO PATH SEPARATOR IN STRING WHEN USING PATHNAME. - compile :dlr, ... + compile :dlr, :references => ['!System.Configuration.dll'], ... Apparently Microsoft C# compiler references System.Configuration.dll automatically. The rest are boring case sensitivity issues. Also, since references to framework paths are resolved by calling Configuration.get_references(clr), I let clr return :mono and change group(:common) to group(:mono). -- Seo Sanghyeon _______________________________________________ Ironruby-core mailing list [email protected] http://rubyforge.org/mailman/listinfo/ironruby-core
