aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.EXT.ja16
-rw-r--r--lib/mkmf.rb18
2 files changed, 26 insertions, 8 deletions
diff --git a/README.EXT.ja b/README.EXT.ja
index 6f9cb41198..dfb0f5ec38 100644
--- a/README.EXT.ja
+++ b/README.EXT.ja
@@ -1594,11 +1594,19 @@ dir_config(target[, default_include, default_lib]) ::
と等価である.追加された include ディレクトリと lib ディレ
クトリの配列を返す. ([include_dir, lib_dir])
-pkg_config(pkg) ::
+pkg_config(pkg, option=nil) ::
- pkg-configコマンドからパッケージpkgの情報を得る.
- pkg-configの実際のコマンド名は,--with-pkg-configコマンド
- ラインオプションで指定可能.
+ pkg-configコマンドからパッケージpkgの情報を [cflags, ldflags, libs]
+ の配列として得る.
+ pkg-configの実際のコマンドは,以下の順で試される.
+
+ 1. コマンドラインで--with-{pkg}-config={command}オプションが
+ 指定された場合: {command} {option}
+ 2. {pkg}-config {option}
+ 3. pkg-config {option} {pkg}
+
+ optionが指定された場合は、上記の配列の代わりにそのオプションを
+ 指定して得られた出力をstripしたものを返す.
/*
* Local variables:
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 672b97b7ec..f6637b493d 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -1717,11 +1717,21 @@ SRC
# :stopdoc:
- # Handles meta information about installed libraries. Uses your platform's
- # pkg-config program if it has one.
+ # Returns compile/link information about an installed library in a
+ # tuple of <code>[cflags, ldflags, libs]</code>, by using the
+ # command found first in the following commands:
#
- # The actual command name can be overridden by
- # <code>--with-pkg-config</code> command line option.
+ # 1. If <code>--with-{pkg}-config={command}</code> is given via
+ # command line option: <code>{command} {option}</code>
+ #
+ # 2. <code>{pkg}-config {option}</code>
+ #
+ # 3. <code>pkg-config {option} {pkg}</code>
+ #
+ # Where {option} is, for instance, <code>--cflags</code>.
+ #
+ # If an <code>option</code> argument is given, the config command is
+ # invoked with the option and a stripped output string is returned.
def pkg_config(pkg, option=nil)
if pkgconfig = with_config("#{pkg}-config") and find_executable0(pkgconfig)
# iff package specific config command is given