Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > mkmfライブラリ > Kernelモジュール > create_makefile (private)

instance method Kernel#create_makefile

create_makefile(target, srcprefix = nil) -> true[permalink][rdoc] [added by mkmf]

[TODO]

Kernel#have_library などの各種検査の結果を元に、拡張ライブラリを ビルドするための Makefile を生成します。

extconf.rb は普通このメソッドの呼び出しで終ります。

[PARAM] target:
ターゲットとなる拡張ライブラリの名前を指定します。 例えば、拡張ライブラリで "Init_foo" という関数を定義して いる場合は、"foo" を指定します。 '/' を含む場合は、最後のスラッシュ以降のみをターゲット名 として使用します。残りはトップレベルのディレクトリ名と見 なされ、生成された Makefile はそのディレクトリ構造に従い ます。 例えば、'test/foo' を指定した場合、拡張ライブラリは 'test' ディレクトリにインストールされます。この拡張ライブ ラリを Ruby スクリプトから使用するときは "require 'test/foo'" とする必要があります。
[PARAM] srcprefix:
ソースコードがあるディレクトリ名を指定します。 省略した場合は extconf.rb があるディレクトリを使用します。

以下のようなディレクトリ構成の場合:

ext/
   extconf.rb
   test/
      foo.c

このようにします。

require 'mkmf'
create_makefile('test/foo', 'test')

このようにして作った Makefile で 'make install' すると拡張ライブラリは、 以下のパスにインストールされます。

/path/to/ruby/sitearchdir/test/foo.so