Feature #4165

win32ビルドでbaserubyを設定しなかったときのエラーが非常に不親切

Added by Motohiro KOSAKI over 4 years ago. Updated over 4 years ago.

[ruby-dev:42782]
Status:Closed
Priority:Normal
Assignee:Usaku NAKAMURA

Description

=begin
artonさんが素晴らしい本を書いてくださったのでWindowsのビルド環境構築してみたのですが
(みなさん、「Ruby環境構築講座Windows編」を是非買いましょう。これは素晴らしい本です。
http://tatsu-zine.com/books/winrubybuild)

Windowsビルドに関して、一点改善して欲しい点があるのでチケットを切ります。trunkのソースを
ビルドする場合 baserubyの指定が必要ですが、私は粗忽者なのでしばしば忘れます。そしてこの
時のエラーメッセージが非常に不親切です。具体的には以下のように出ます。

C:\ruby>nmake

Microsoft(R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.

     CFLAGS = -MD -Zi -W2 -wd4996 -we4028 -we4142 -O2sy-  -Zm600
     XCFLAGS = -DRUBY_EXPORT -I. -I.ext/include/i386-mswin32_100 -I./include

-I. -I./missing
CPPFLAGS =
DLDFLAGS = -incremental:no -debug -opt:ref -opt:icf -dll
SOLIBS =
generating miniprelude.c
'-I.' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
NMAKE : fatal error U1077: '-I.' : リターン コード '0x1'
Stop.

直接の原因は、以下の行で $(BASERUBY)が空文字列になってしまうのが原因なのですが、
このエラーメッセージからそれを読み取るには高度なエスパー能力が必要です。

common.mk


miniprelude.c: $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb
$(ECHO) generating $@
$(Q) $(BASERUBY) -I$(srcdir) $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $@

添付のパッチのようにconfigure.batでチェックしてもらえるとうれしいのですが、usaさんどうでしょうか?
=end

baseruby-check.patch Magnifier (1.11 KB) Motohiro KOSAKI, 12/17/2010 04:31 AM

History

#1 Updated by Usaku NAKAMURA over 4 years ago

=begin
こんにちは、なかむら(う)です。

In message " [Ruby 1.9-Feature#4165][Open] win32ビルドでbaserubyを設定しなかったときのエラーが非常に不親切"
on Dec.17,2010 04:31:18, redmine@ruby-lang.org wrote:

Windowsビルドに関して、一点改善して欲しい点があるのでチケットを切ります。trunkのソースを
ビルドする場合 baserubyの指定が必要ですが、私は粗忽者なのでしばしば忘れます。そしてこの
時のエラーメッセージが非常に不親切です。具体的には以下のように出ます。

えーと、--with-baserubyがない場合、ruby.exeをPATH内から探して
それをBASERUBYに自動でぶちこむ仕組みが既にあります。setup.mak
参照。
なので、--with-baserubyの指定は必須じゃないんですよね。
(ちなみに私は普段指定していません)

あと、リポジトリから抜いてきたのではないRubyソース配布物の場
合は、rubyのビルドにruby実行体自体が不要であるということもあ
ります。

直接の原因は、以下の行で $(BASERUBY)が空文字列になってしまうのが原因なのですが、
このエラーメッセージからそれを読み取るには高度なエスパー能力が必要です。

いやまったく。

しかし、小崎さんレベルだとちゃんとこの程度の障害なら突破して
くるということが証明されてしまったので、「ただの開発志願者に
は興味ありません。この中に天才、タイムマシン保持者、パッチモ
ンスター、エスパーがいたら、あたしのところに来なさい。以上。」
という募集のためにはちょうどいいリトマス試験紙なので
はないか、とか思ったりしました。

添付のパッチのようにconfigure.batでチェックしてもらえるとうれしいのですが、usaさんどうでしょうか?

このパッチでは前述のケースが考慮されていないと思うので、残念
ですが却下です。

どっちかというと、BASERUBY空じゃねーのチェックを行うルールを
用意して、BASERUBYを使う全てのルールをそれに依存させるのがい
いのではないかと思うのですが、どうでしょう?
またはそのチェックをBASERUBY自体に仕込んで毎回チェックさせる
とかいうのも思い浮かびます。

と、このくらい書いておけば、天才兼タイムマシン保持者兼パッチ
モンスターあたりがなんとかしてくれるような気がするけど、どう
ですかね?>該当者
# エスパーと呼ばれたこともあるのかな。ありそうだな。

それでは。
--
U.Nakamura usa@garbagecollect.jp

=end

#2 Updated by Usaku NAKAMURA over 4 years ago

=begin
こんにちは、なかむら(う)です。

In message " Re: [Ruby 1.9-Feature#4165][Open] win32ビルドでbaserubyを設定しなかったときのエラーが非常に不親切"
on Dec.17,2010 11:37:13, usa@garbagecollect.jp wrote:

またはそのチェックをBASERUBY自体に仕込んで毎回チェックさせる
とかいうのも思い浮かびます。

configure.inの方はこれをやっていたので、合わせました。

なかださんは名指ししたのに & を使う技を教えてくれただけでし
た。ちっ

それでは。
--
U.Nakamura usa@garbagecollect.jp

=end

#3 Updated by Usaku NAKAMURA over 4 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r30236.
Motohiro, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Also available in: Atom PDF