From: Takahiro Kambe Date: 2003-09-29T02:01:02+09:00 Subject: [ruby-dev:21426] Re: Makefile.inのlex.c In message <20030929014843.635443.eban@os.rim.or.jp> on Mon, 29 Sep 2003 01:48:46 +0900, WATANABE Hirofumi wrote: > デフォルトではgperfがインストールされてないからエラーになる > という意味です。本来ならVPATHがあるからlex.cを作らないと思う > んですが、OpenBSDとFreeBSDのmakeはターゲットはVPATHを見ない > ようです。NetBSDのmakeはGNU makeと同じで、VPATHが有効になり > ます。 4.4BSD由来のMakefileでは、 > % cat >Makefile > VPATH = ../ruby > lex.c: keywords; @echo '$@ $>' といった用途には、 .PATH: ../ruby とかかな。 > % make > と実行すると、NetBSDは > `lex.c' is up to date. > となり、OpenBSDとFreeBSDは > lex.c ../ruby/keywords > となります。touch ../ruby/keywordsするとNetBSDは > ../ruby/lex.c ../ruby/keywords > となるので、VPATHが有効になってるのがわかります。 OpenBSDは古いNetBSDから分かれた関係で、FreeBSD/NetBSDで追加されている にも関わらず、入っていない機能というのは多分に漏れずあります。 一応、ソース・ファイルを確認したところ、互換性の面からVPATHはOpenBSD 3.3にも含まれていますが、ちゃんと動いていないようです。 いずれにしろNetBSDにしてもVPATHは、オンライン・マニュアルにすら記載さ れていないのです。 -- 神戸 隆博 / Takahiro Kambe