読者です 読者をやめる 読者になる 読者になる

Borland製のコマンドラインツールとの格闘記

VC++用に書かれたMakefileC++Builderへ移植をしたら、しばらく書いていないせいか、書き方を忘れていた。orz
で、コンパイルはBCC32を使うから、C++Builder付属のmakeに食わせたら、ファイル名のワイルドカードの展開をしない。
それに、tlib(ライブラリアン)の引数の渡し方が変態極まりない上に、こっちもワイルドカードの展開をしない。('A`)
結局、tlibのパラメータファイルを生成するRubyスクリプトを作成して、makeからそいつを呼び出し、出来たパラメータファイルをtlibに渡すことで解決。
まぁ、nmakeとかGNU makeを使ってもいいんだけど、nmakeなんて以外と情報が少ないし。
Borlandのmakeなんて、もっと悲惨だけど。

素直にC++Builderが使えればいいんだけど、-Dhogehogeがいっぱいあるし、そのせいかリンカがコケるし。(´・ω・`)ショボーン
これで、こっちも駄目だったら目も当てられないな。(゚∀゚)アヒャヒャヒャヒャ

追記1:
Sランクオーバーの魔導師の皆様の足下には及ばないけど、とりあえず作ったスクリプトを晒しておこう。ほとんどワンライナーのようなものだけどwww

# TlibResp.rb
# 与えられた引数をファイル名と見なし、tlib.exeのレスポンスファイルの形式で出力する
# Usage: ruby TlibResp.rb (ファイル名)
ARGV.each {|param|
    printf("+-%s &\n",param.gsub('/', '\\'))
}
puts("+-")

# ILink32Resp.rb
# 与えられた引数をファイル名と見なし、ilink32.exeのレスポンスファイルの形式で出力する
# Usage: ruby ILink32Resp.rb (ファイル名)
ARGV.each {|param|
	printf("%s+\n",param.gsub('/', '\\'))
}

追記2:
Rubyは引数のワイルドカード展開を自前でやってくれるみたいだね。