OpenWatcom 1.6 正式版
来たみたい。
これ書いてる時点でトップページは更新されていないが、List of Changes にはすでに 1.6 の更新目録ができている。
いちおう更新部分だけ手っ取り早く訳してみますた。アセンブラを別にすると、以前ほど激しい(?)修正はないもよう。もしかすると wmake の挙動変更がいちばん影響がデカいような気もする。まあ unix 互換モードや nmake 互換モードだと関係ないぽいけど(実は wmake の挙動ってバージョンごとに微妙に変わってて、以前に作った wmake 用の makefile がうまく動かなくなったりすることがある)。
OpenWatcom の wmake についてもうすこし
なんか symbolic うんぬんが気になったので、すこし確認してみた。
まずこんなの書いた(test.wmk)
test1: test1_2 .SYMBOLIC test1_2: .SYMBOLIC %null test2: test2_2 .SYMBOLIC test2_2: .SYMBOLIC
ちなみに %null
っていうのは wmake 内部用のコマンドで「何もしない」というイミらしいです。
んで test1 のターゲットを生成してみます。
C> wmake -h -y -f test.wmk test1 %null test1 will be built because of test1_2 C>_
念のためオプションの説明:
- -h : 起動時のコピーライトメッセージを表示しない(Watcom C/C++ コンパイラでいうところの -zq)
- -y : ターゲット更新要因(上の例だと "test1 will be built..." のとこ)の表示
- -f : makefile 指定(これは一般的)
ついでに表示メッセージが中途半端に日本語でキモい場合は環境変数 WLANG に english と設定するのが吉。
で、こんどは test2 の生成。
C> wmake -h -y -f test.wmk test2 C>_
何も出ませんでした。めでたしめでたし。いやダメなのか?
-y オプションの結果も表示されてないからホントに何も更新されていないのだろうと思われます。
念のためデバッグモード(オプション -d)でも確認してみたヨ。
C> wmake13 -d -y -h -f test.wmk test1 Entering file (test.wmk)... test.wmk(11): ...Finished file (test.wmk) Updating (test1):has Single-colon explicit rule Updating (test1_2):has Single-colon explicit rule %null Oldest Possible (test1) Oldest Possible (test1) Youngest Possible (test1_2) test1 will be built because of test1_2 (test1) has no implicit rules C> wmake13 -d -y -h -f test.wmk test2 Entering file (test.wmk)... test.wmk(11): ...Finished file (test.wmk) Updating (test2):has Single-colon explicit rule Updating (test2_2):has no explicit rule (test2_2) has no implicit rules Oldest Possible (test2) Oldest Possible (test2) Oldest Possible (test2_2) C> wmake16 -d -y -h -f test.wmk test1 Entering file (test.wmk)... test.wmk(11): ...Finished file (test.wmk) Updating (test1):has Single-colon explicit rule Updating (test1_2):has Single-colon explicit rule %null (test1_2) is up to date Oldest Possible (test1) Oldest Possible (test1) Youngest Possible (test1_2) test1 will be built because of test1_2 (test1) has no implicit rules (test1) is up to date C> wmake16 -d -y -h -f test.wmk test2 Entering file (test.wmk)... test.wmk(11): ...Finished file (test.wmk) Updating (test2):has Single-colon explicit rule Updating (test2_2):has no explicit rule (test2_2) has no implicit rules (test2_2) is up to date Oldest Possible (test2) Oldest Possible (test2) Oldest Possible (test2_2) (test2) is up to date C>
バージョン 1.3 でも 1.6 でもかわんねえなあ…List of Changes in C/C++ 1.6 に乗ってる wmake 関係のネタってこのことじゃないのかしら。それとも「前からこうだったけど今までドキュメント化してなかったよテヘヘ」みたいなことなんじゃろか。
めも
例によって drdos.org から。
- HX DOS Extender 2.10 ぐらい (2006-12-14)
- LADsoft CC386 Version 3.27 (2006-11-30)
DOS と Win32 用の C コンパイラ(C99 サポート)。コンパイラのソースあり。