[#21338] $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

21 messages 2003/09/04
[#21346] Re: $SAFE=4 での autoload — nobu.nakada@... 2003/09/04

なかだです。

[#21359] Re: $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...> 2003/09/05

永井@知能.九工大です.

[#21419] Makefile.inのlex.c — Kazuhiro NISHIYAMA <zn@...>

西山和広です。

15 messages 2003/09/28

[ruby-dev:21437] Re: Makefile.inのlex.c

From: WATANABE Hirofumi <eban@...>
Date: 2003-09-30 06:40:35 UTC
List: ruby-dev #21437
わたなべです。

Yukihiro Matsumoto <matz@ruby-lang.org> writes:

> |Makefileでgperfが実行される可能性がある以上、configure.inで
> |gperfをチェックすべきだと思います。
> |で、gperfがなければlex.c: keywordsの関係をMakefileから削除し
> |てしまえばよさそうな気がします。
> 
> ううむ。ちょっとだけ面倒。

win32/Makefile.subもlex.c: keywordsがないですし、これが一番
現実的だと思います。

楽な方法を考えました。今は
parse.@OBJEXT@: parse.c ruby.h config.h defines.h intern.h missing.h \
  env.h node.h st.h regex.h util.h lex.c
のようにparse.oがlex.cに依存してますが、gperfがない場合は
lex.cを依存関係から外すだけでよさそうです。

> これらのルールは、私(autoconfもgperfも持っていることは保証済
> み)の利便性のためなので、できれば削りたくないです。configure 
> やlex.cの入っていないソースパッケージは配布していないはずで
> すし、これらのルールがあっても問題ないと考えていたのですが。

とりあえずconfigure関係はそのままいじらないとして、lex.cのほ
うはgperfが存在してるときだけ有効にすれば、たぶんみんなhappy
になります。

> あ、でも、もとのケースではなにか問題が起きたんですよね。どう
> するのが一番いいんだろう?

今のままだとビルドディレクトリを別にしたときに、OpenBSDでは
gperfが必須になります(FreeBSDではデフォルトでインストールさ
れる)。

あ、でもlex.cがカレントにあればいいので、コピーすればいいと
も言えるか…。

lex.c: keywords
	if test "$(srcdir)" = "."; then \
	  gperf -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $> > $@; \
	else \
	  cp $(srcdir)/lex.c .; \
	fi

-- 
わたなべひろふみ

In This Thread