index

1999年 7月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
  26 27 28 29 30 31  
1999年 8月
              1
  2 3 4 5 6 7 8
  9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
1999年 9月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

アレ

  ▽19990830a #日記

 今日は新川崎でアレコレ.

 社の人が,どっかから持ってきた Makefile が動かないってヘルプ入れてきた. 元は SunOS で使っていたらしく, こいつを HP-UX に持ってきたらコンパイルエラーが出るというのだ.

 ってわけで,とりあえず自分の PC の Cygwin32 の gmake でやってみたら, きちんと実行ファイルができてしまった.謎. なので HP-UX にコピーして実行してみると, 「# の作成方法が不明です」というエラーになる.

 で,調べてたらこんな表記があった.

----------------------------
### ユーザライブラリ
LIBCOMFLS = \
### なんちゃらかんちゃら
...
----------------------------

 ここの行末の「?」が良くないらしいのだ. フツーは行末に「?」があったら 「改行をクォートして無効にし,次行と連結する」という解釈だと思う. でもって Cygwin32 の gmake はそのように動作する. しかし,HP-UX の make は, 「? 以降のブランク文字を全部すっとばす」という動作をしてるくさいのだ. つまりこの文は,

----------------------------
### ユーザライブラリ
LIBCOMFLS = \### なんちゃらかんちゃら
...
----------------------------
と記述したことになっていて, でもって ? の効果で最初の # はコメント記述子としての機能をなくし, 2番目の # から後はコメントとして無視. 結果,「LIBCOMFS = #」という設定になって, 後ろの方で「#」を作ろうとしてコケるのだ.

 これ,正しい動作とはとても思えないんだけど,バグなのかなぁ?  SunOS でも Win32 でもきちんと動作してるって事は, 上記の解釈が正しいんじゃないかと思うんだけど, man ページを見ても,そもそも「?」の機能自体が説明されてないのだ. うーむ,何考えてんだ HP.

index