[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[WitchTech 00444] Re: 16bit 版 LSIC86 のメイクファイルについて



なるなると申します。

 > <000901c0174c$7ab1cd40$65764ca5@tomohiro>
 > From: tok@osa.att.ne.jp
 > Date: Wed,  6 September 2000 00:17:16 +0900
 > 
 > 症状:
 >     16bit版LSIC86に変更後メイクできなくなった。(32bit版では問題ない)
 > エラーメッセージ:
 >     ../makefile.inc 32: Too long command line
 >     make: Fatal error detected

 > コマンドが長いということはわかりますが、短くする方法がわかりません。どうすれ
 > ばよいのでしょう?

これは LSI C に限らず MS-DOS 用のバイナリなら共通に発生する問題だと思いま
す。(コマンドラインの最大長が約 128 文字という例のやつです。正確には何文字
でしたっけ ?)

ファイル名を短くするという手もありますが、通常は @ で応答ファイルを指定し
ます。

 >     .obj.bin:
 >         lcc86 -a$(CRT0) -k-M -o $*.bin $^    (←この行でエラー)

テストしてませんが、こんな感じです。

	.obj.bin:
		lcc86 @${-a$(CRT0) -k-M -o $*.bin $^}

${ } は kmmake の特殊マクロで、括弧内をテキストファイル make.i に出力し、
コマンドラインのこの部分はファイル名に置き換えられます。(その前の @ は 
lcc86 に応答ファイルを指定します。)
	
上記だと make.i には -a$(CRT0) -k-M -o $*.bin $^ を展開した結果が出力され
実行されるコマンドラインは lcc86 @make.i になります。

lcc86 は make.i の内容を読んでコマンドラインのパラメタと同じように処理しま
す。

# WonderWitch 版ではファイル名は make.i ではないかもしれません。@ で応答ファ
イルを指定するのは MS-DOS 時代は割と一般的だったと思います。



ML Archives