[#3747] constants (or class vriable?) — Wakou Aoyama <wakou@...>

青山です。

20 messages 1998/12/06
[#3751] Re: constants (or class vriable?) — Shin-ichro Hara <sinara@...> 1998/12/07

原です。

[#3763] Re: constants (or class vriable?) — Wakou Aoyama <wakou@...> 1998/12/07

青山です。

[#3764] Re: constants (or class vriable?) — matz@... (Yukihiro Matsumoto) 1998/12/08

まつもと ゆきひろです

[#3767] Re: constants (or class vriable?) — kjana@... (YANAGAWA Kazuhisa) 1998/12/08

In message <199812080034.JAA05946@picachu.netlab.co.jp>

[#3826] ruby 1.1d0 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

35 messages 1998/12/16

[#3873] (?: ) does not work? — shugo@... (MAEDA Shugo)

前田です。

15 messages 1998/12/19

[#3881] I want to catch all jump — shugo@... (Shugo Maeda)

前田です。

17 messages 1998/12/21
[#3895] Re: I want to catch all jump — matz@... (Yukihiro Matsumoto) 1998/12/22

まつもと ゆきひろです

[#3894] ruby 1.1d1 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1998/12/22

[#3899] interpreter reinitialization — shugo@... (Shugo Maeda)

前田です。

22 messages 1998/12/22
[#3923] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/23

まつもと ゆきひろです

[#3926] Re: interpreter reinitialization — shugo@... (Shugo Maeda) 1998/12/23

前田です。

[#3931] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/24

まつもと ゆきひろです

[#3956] Re: interpreter reinitialization — shugo@... (Shugo Maeda) 1998/12/24

前田です。

[#3960] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/24

まつもと ゆきひろです

[#4002] config.guess — Koji Arai <JCA02266@...>

新井です。

24 messages 1998/12/26
[#4039] Re: config.guess — matz@... (Yukihiro Matsumoto) 1998/12/29

まつもと ゆきひろです

[#4045] Re: config.guess — Koji Arai <JCA02266@...> 1998/12/31

新井です。

[#4047] Re: config.guess — matz@... (Yukihiro Matsumoto) 1999/01/01

まつもと ゆきひろです

[#4048] Re: config.guess — Koji Arai <JCA02266@...> 1999/01/01

新井です。

[#4049] Re: config.guess — matz@... (Yukihiro Matsumoto) 1999/01/02

まつもと ゆきひろです

[#4050] Re: config.guess — Motoyuki Kasahara <m-kasahr@...> 1999/01/04

笠原です。

[#4030] module Precision — gotoken@... (GOTO Kentaro)

ごとけんです

78 messages 1998/12/28
[#4310] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/21

ごとけんです

[#4311] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/01/21

まつもと ゆきひろです

[#4312] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/21

ごとけんです

[#4317] Re: module Precision — keiju@... (石塚圭樹 ) 1999/01/21

けいじゅ@日本ラショナルソフトウェアです.

[#4364] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/25

ごとけんです

[#4478] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/01/28

まつもと ゆきひろです

[#4506] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/30

ごとけんです

[#4552] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/02/01

まつもと ゆきひろです

[#4557] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/01

ごとけんです

[#4632] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4647] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/03

けいじゅ@日本ラショナルソフトウェアです.

[#4648] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4633] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/02/03

まつもと ゆきひろです

[#4636] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4836] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/08

ごとけんです

[#4843] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/08

けいじゅ@日本ラショナルソフトウェアです.

[#4849] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/08

ごとけんです

[#4924] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/09

けいじゅ@日本ラショナルソフトウェアです.

[#4976] a genericity — gotoken@... (GOTO Kentaro) 1999/02/10

ごとけんです

[#5008] Re: a genericity — keiju@... (石塚圭樹 ) 1999/02/11

けいじゅ@日本ラショナルソフトウェアです.

[#5018] Re: a genericity — gotoken@... (GOTO Kentaro) 1999/02/11

ごとけんです

[#5171] Re: a genericity — keiju@... (石塚圭樹 ) 1999/02/16

けいじゅ@日本ラショナルソフトウェアです.

[ruby-dev:3812] Re: 拡張モジュールの Makefile

From: Motoyuki Kasahara <m-kasahr@...>
Date: 1998-12-15 03:59:37 UTC
List: ruby-dev #3812
笠原です。こんにちは。

* From: matz@netlab.co.jp (Yukihiro Matsumoto)
* Date: Mon, 7 Dec 1998 16:23:05 +0900

> これは事実ですね.で,今回問題なのは個別のマシンにライブラリ
> やヘッダファイルがどこにインストールされているか知る一般的な
> 方法がないことですよね.まあ,標準的な場所なら探しようがあり
> ますが,一般論としてはなんらかの方法で外部から教えてやらなけ
> れば実現できません.
> 
> で,現状では外部から指定する方法が存在しないので,しょうがな
> いからextconf.rbを直接編集する方法を選んでいるわけですね.私
> はautomakeについてあまり調べてないんですが,やはりなんらかの
> オプションで指定しているようですね.

automake にはこの機能はなくて autoconf に任せます。
configure に --with-dbm-* のようなオプションを用意することになります。
たとえば次のような。

   AC_ARG_WITH(dbm-includes,
   [  --with-dbm-includes=DIR   dbm include files are in DIR],
   [dbm_includedir="${withval}"], [dbm_includedir=''])

ですから、mkmf.rb にしても automake にしても、やるとしたらここまでは手
順は一緒です。この --with-dbm-* オプションで渡されたディレクトリ情報を
dbm をコンパイルするときまでに渡さないといけないのですが、それには大き
く分けて 2 つの方法があります。

   1. ext/dbm/extconf.rb.in を用意しておいてそこに

	$CFLAGS = "-I@DBM_INCLUDEDIR@"

      と書いておく。configure.in に

	AC_OUTPUT(..... ext/dbm/extconf.rb)

      として ext/dbm/extconf.rb を生成すると、先ほどの $CFLAGS は

	$CFLAGS = "-I/foo/bar/include"

      と置き換わるようになる。

   2. mkmf.rb に --with-dbm-* オプションを渡すと mkmf.rb がこのオプショ
      ンを認識するようにする。たとえば extconf.rb に

	$CFLAGS = "-I" + arg_with("dbm-includes")

      のようなコードコードを書いておくと、良きに計らってくれる。

ところで、実際に mkmf.rb の代わりに automake, libtool を使って拡張モジュー
ルを作ってみたらどうなるのか、やってみました。実は問題がありました。

   * デフォルトでは、shared ライブラリと static ライブラリの両方を作っ
     てインストールしてしまう。

   * さらに、libtool 管理用の *.la ファイルもインストールしてしまう。

   * automake, libtool ともに、ライブラリ名が `lib*.*' (例: libjpeg.so)
     になっていることを想定している。

     これはけっこう痛いです。libtool にはパッチを当てて回避しました。
     automake は文句を言うものの、一応 Makefile.in を最後まで生成して
     くれるので、automake のエラーメッセージは無視しました。(^^;)

とまぁ、「理想は automake」などと言っていたわりに、実はけっこう大変な
のでした (_o_)。が、利点もありました。

   * autoconf と親和性が高いので、autoconf との併用が前提なら柔軟性が
     ある。

     automake は autoconf 用の Makefile.in を生成するので、@VARIABLE@
     の置換なども行えます。

   * 機能が豊富である。

     make uninstall や make dist (ソースコードの `*.tar.gz' distribution 
     を作ってくれます、これは非常に便利)、make check (ストスイートの実
     行の補助) があります。サブディレクトリを作ることも可能です。

   * (Ruby 本体の場合) 複雑な ext/extmk.rb が要らなくなると思われる。

     ただし、その代わり configure.in のコード量がある程度増えますが。

といったところです。

# automake, libtool を使って実際に何を作ったのかは、別のメールにて。
______________________________________________________________________
                                          笠原 基之(かさはら もとゆき)

In This Thread

Prev Next