summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-08-02 05:54:00 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-08-02 05:54:00 +0000
commit63f5a7164bd906beebef677004dbd0722d0462cc (patch)
treece7614d7122c98d81edc1e88c999fccccbbd4e87
parent306b93466aa0ed0b65971de663058eb9e6d937c4 (diff)
* lib/mkmf.rb (pkg_config): get configuration by pkg-config. [new]
* ext/openssl/extconf.rb: use pkg_config. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--ext/openssl/extconf.rb9
-rw-r--r--lib/mkmf.rb21
3 files changed, 28 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 7ba09c0..2fcfd65 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sat Aug 2 14:53:55 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/mkmf.rb (pkg_config): get configuration by pkg-config. [new]
+
+ * ext/openssl/extconf.rb: use pkg_config.
+
Sat Aug 2 14:02:39 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
* variable.c (classname): find regular class name if not set.
diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb
index 76befa5..92dabdc 100644
--- a/ext/openssl/extconf.rb
+++ b/ext/openssl/extconf.rb
@@ -18,7 +18,6 @@ require "mkmf"
dir_config("openssl")
dir_config("kerberos")
-pkgconfig = with_config("pkg-config", !CROSS_COMPILING && "pkg-config")
message "=== OpenSSL for Ruby configurator ===\n"
@@ -51,13 +50,7 @@ result = have_header("openssl/ssl.h")
result &&= %w[crypto libeay32].any? {|lib| have_library(lib, "OpenSSL_add_all_digests")}
result &&= %w[ssl ssleay32].any? {|lib| have_library(lib, "SSL_library_init")}
if !result
- if find_executable(pkgconfig) and system(pkgconfig, "--exists", "openssl")
- $CFLAGS += " " << `#{pkgconfig} --cflags openssl`.chomp
- $DLDFLAGS += " " << `#{pkgconfig} --libs-only-L openssl`.chomp
- $LIBS += " " << `#{pkgconfig} --libs-only-l openssl`.chomp
- result = have_header("openssl/ssl.h")
- end
- if !result
+ unless pkg_config("openssl") and have_header("openssl/ssl.h")
message "=== Checking for required stuff failed. ===\n"
message "Makefile wasn't created. Fix the errors above.\n"
exit 1
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index d56fe88..80c1651 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -617,6 +617,27 @@ def dir_config(target, idefault=nil, ldefault=nil)
[idir, ldir]
end
+def pkg_config(pkg)
+ unless defined?($PKGCONFIG)
+ if pkgconfig = with_config("pkg-config", !CROSS_COMPILING && "pkg-config")
+ find_executable0(pkgconfig) or pkgconfig = nil
+ end
+ $PKGCONFIG = pkgconfig
+ end
+ if $PKGCONFIG and system("#{$PKGCONFIG} --exists #{pkg}")
+ cflags = `#{$PKGCONFIG} --cflags #{pkg}`.chomp
+ ldflags = `#{$PKGCONFIG} --libs-only-L #{pkg}`.chomp
+ libs = `#{$PKGCONFIG} --libs-only-l #{pkg}`.chomp
+ $CFLAGS += " " << cflags
+ $LDFLAGS += " " << ldflags
+ $LIBS += " " << libs
+ Logging::message "package configuration for %s\n", pkg
+ Logging::message "cflags: %s\nldflags: %s\nlibs: %s\n\n",
+ cflags, ldflags, libs
+ [cflags, ldflags, libs]
+ end
+end
+
def with_destdir(dir)
/^\$[\(\{]/ =~ dir ? dir : "$(DESTDIR)"+dir
end