トップ «前の日記(2010-06-13) 最新 次の日記(2010-06-15)» 編集

日々の破片

著作一覧

2010-06-14

_ clean-encの謎

Rubyのmakeしようとして、でも何か理由があって途中(.cのコンパイル中くらい)に失敗したとする。

で、クリーンしようとすると途中でstopする。

調べるとclean-encの中でエラーになる。

C:\Users\arton\ruby-1.9.2-preview3>nmake clean-enc
 
Microsoft (R) Program Maintenance Utility   Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
 
cleaning encodings
NMAKE : fatal error U1052: ファイル 'enc.mk' が見つかりません。
Stop.

ところが、clean-encのところ($(SRC)/common.mk)を見ると

clean-enc distclean-enc realclean-enc:
 	  @echo $(@:-enc=ing) encodings
	  @-$(MAKE) -f $(ENC_MK) $(MFLAGS) $(@:-enc=)

となっていて、先頭に「-」が付いているからエラーチェックは働かないはず。

事実、最後までmakeを終わらせた後は、何度make clean-encとかやってもエラーにはならない。(修正。ここは嘘)

おれにとっては、これがRubyの一番の黒魔術だ。

追記:わかってしまえば何のことはなく、nmakeが呼び出すnmakeがStopエラーになっていて(それは前提なので@-としているわけで)、元のnmakeはそのまま処理を継続していました。お騒がせしてすみません。

_ clean-encの続き

でもちょっと待てよ。(ここは嘘)

makeが最後まで走った後は

C:\Users\arton\ruby-1.9.2-preview3>nmake clean-enc
 
Microsoft (R) Program Maintenance Utility   Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
 
cleaning encodings @-nmake -f enc.mk -l clean

echoの出力が異なるなぁ。ここに秘密がありそうだ。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|

ジェズイットを見習え