summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/dbm/extconf.rb2
-rw-r--r--ext/digest/md5/extconf.rb3
-rw-r--r--ext/digest/rmd160/extconf.rb3
-rw-r--r--ext/digest/sha1/extconf.rb3
-rw-r--r--ext/digest/sha2/extconf.rb3
-rw-r--r--ext/extmk.rb8
-rw-r--r--ext/socket/extconf.rb88
-rw-r--r--ext/socket/socket.c2
-rw-r--r--ext/zlib/extconf.rb7
9 files changed, 53 insertions, 66 deletions
diff --git a/ext/dbm/extconf.rb b/ext/dbm/extconf.rb
index 5a67603e699..19bfc1f6d31 100644
--- a/ext/dbm/extconf.rb
+++ b/ext/dbm/extconf.rb
@@ -33,7 +33,7 @@ def db_check(db)
if have_library(db, db_prefix("dbm_open")) || have_func(db_prefix("dbm_open"))
for hdr in $dbm_conf_headers.fetch(db, ["ndbm.h"])
if have_header(hdr.dup) and have_type("DBM", hdr.dup, hsearch)
- $CFLAGS += " " + hsearch + '-DDBM_HDR="<'+hdr+'>"'
+ $defs << hsearch << '-DDBM_HDR="<'+hdr+'>"'
return true
end
end
diff --git a/ext/digest/md5/extconf.rb b/ext/digest/md5/extconf.rb
index 3fd21166a43..018f8ccb02f 100644
--- a/ext/digest/md5/extconf.rb
+++ b/ext/digest/md5/extconf.rb
@@ -3,7 +3,8 @@
require "mkmf"
-$CFLAGS << " -DHAVE_CONFIG_H -I#{File.dirname(__FILE__)}/.."
+$defs << "-DHAVE_CONFIG_H"
+$INCFLAGS << " -I$(srcdir)/.."
$objs = [ "md5init.#{$OBJEXT}" ]
diff --git a/ext/digest/rmd160/extconf.rb b/ext/digest/rmd160/extconf.rb
index a3b63d75e04..d38dadd0412 100644
--- a/ext/digest/rmd160/extconf.rb
+++ b/ext/digest/rmd160/extconf.rb
@@ -3,7 +3,8 @@
require "mkmf"
-$CFLAGS << " -DHAVE_CONFIG_H -I#{File.dirname(__FILE__)}/.."
+$defs << "-DNDEBUG" << "-DHAVE_CONFIG_H"
+$INCFLAGS << " -I$(srcdir)/.."
$objs = [ "rmd160init.#{$OBJEXT}" ]
diff --git a/ext/digest/sha1/extconf.rb b/ext/digest/sha1/extconf.rb
index 4d8ba64c394..d7b8126de52 100644
--- a/ext/digest/sha1/extconf.rb
+++ b/ext/digest/sha1/extconf.rb
@@ -3,7 +3,8 @@
require "mkmf"
-$CFLAGS << " -DHAVE_CONFIG_H -I#{File.dirname(__FILE__)}/.."
+$defs << "-DHAVE_CONFIG_H"
+$INCFLAGS << " -I$(srcdir)/.."
$objs = [ "sha1init.#{$OBJEXT}" ]
diff --git a/ext/digest/sha2/extconf.rb b/ext/digest/sha2/extconf.rb
index 894228decad..200d386bef6 100644
--- a/ext/digest/sha2/extconf.rb
+++ b/ext/digest/sha2/extconf.rb
@@ -3,7 +3,8 @@
require "mkmf"
-$CPPFLAGS << " -DHAVE_CONFIG_H -I#{File.dirname(__FILE__)}/.."
+$defs << "-DHAVE_CONFIG_H"
+$INCFLAGS << " -I$(srcdir)/.."
$objs = [
"sha2.#{$OBJEXT}",
diff --git a/ext/extmk.rb b/ext/extmk.rb
index bb32e82f134..70664855716 100644
--- a/ext/extmk.rb
+++ b/ext/extmk.rb
@@ -69,6 +69,8 @@ def extract_makefile(makefile, keep = true)
return false
end
$target = target
+ $extconf_h = m[/^RUBY_EXTCONF_H[ \t]*=[ \t]*(\S+)/, 1]
+ $static = m[/^EXTSTATIC[ \t]*=[ \t]*(\S+)/, 1] || false
/^STATIC_LIB[ \t]*=[ \t]*\S+/ =~ m or $static = nil
$preload = Shellwords.shellwords(m[/^preload[ \t]*=[ \t]*(.*)/, 1] || "")
$DLDFLAGS += " " + (m[/^DLDFLAGS[ \t]*=[ \t]*(.*)/, 1] || "")
@@ -90,6 +92,7 @@ def extmake(target)
else
$static = false
end
+ $default_static = $static
unless $ignore
return true if $nodynamic and not $static
@@ -122,10 +125,13 @@ def extmake(target)
CONFIG["srcdir"] = "$(hdrdir)/ext/#{$mdir}"
CONFIG["topdir"] = $topdir
begin
- if (!(ok &&= extract_makefile(makefile)) ||
+ $extconf_h = nil
+ ok &&= extract_makefile(makefile)
+ if (($extconf_h && !File.exist?($extconf_h)) ||
!(t = modified?(makefile, MTIMES)) ||
%W"#{$srcdir}/makefile.rb #{$srcdir}/extconf.rb #{$srcdir}/depend".any? {|f| modified?(f, [t])})
then
+ $default_static = $static
ok = false
init_mkmf
Logging::logfile 'mkmf.log'
diff --git a/ext/socket/extconf.rb b/ext/socket/extconf.rb
index a83afa558d6..125ef6be207 100644
--- a/ext/socket/extconf.rb
+++ b/ext/socket/extconf.rb
@@ -26,7 +26,7 @@ if /solaris/ =~ RUBY_PLATFORM and !try_compile("")
headers << "sys/feature_tests.h"
end
-$ipv6 = false
+ipv6 = false
default_ipv6 = /cygwin/ !~ RUBY_PLATFORM
if enable_config("ipv6", default_ipv6)
if checking_for("ipv6") {try_link(<<EOF)}
@@ -37,63 +37,45 @@ main()
socket(AF_INET6, SOCK_STREAM, 0);
}
EOF
- $CPPFLAGS+=" -DENABLE_IPV6"
- $ipv6 = true
+ $defs << "-DENABLE_IPV6" << "-DINET6"
+ ipv6 = true
end
end
-$ipv6type = nil
-$ipv6lib = nil
-$ipv6libdir = nil
-$ipv6trylibc = nil
-if $ipv6
- if have_macro("IPV6_INRIA_VERSION", "netinet/in.h")
- $ipv6type = "inria"
- $CPPFLAGS="-DINET6 "+$CPPFLAGS
- elsif have_macro("__KAME__", "netinet/in.h")
- $ipv6type = "kame"
- $ipv6lib="inet6"
- $ipv6libdir="/usr/local/v6/lib"
- $ipv6trylibc=true
- $CPPFLAGS="-DINET6 "+$CPPFLAGS
- elsif File.directory? "/usr/inet6"
- $ipv6type = "linux"
- $ipv6lib="inet6"
- $ipv6libdir="/usr/inet6/lib"
- $CPPFLAGS="-DINET6 -I/usr/inet6/include "+$CPPFLAGS
- elsif have_macro("_TOSHIBA_INET6", "sys/param.h")
- $ipv6type = "toshiba"
- $ipv6lib="inet6"
- $ipv6libdir="/usr/local/v6/lib"
- $CPPFLAGS="-DINET6 "+$CPPFLAGS
- elsif have_macro("__V6D__", "/usr/local/v6/include/sys/v6config.h")
- $ipv6type = "v6d"
- $ipv6lib="v6"
- $ipv6libdir="/usr/local/v6/lib"
- $CFLAGS="-I/usr/local/v6/include "+$CFLAGS
- $CPPFLAGS="-DINET6 "+$CPPFLAGS
- elsif have_macro("_ZETA_MINAMI_INET6", "sys/param.h")
- $ipv6type = "zeta"
- $ipv6lib="inet6"
- $ipv6libdir="/usr/local/v6/lib"
- $CPPFLAGS="-DINET6 "+$CPPFLAGS
- else
- $ipv6lib=with_config("ipv6-lib", nil)
- $ipv6libdir=with_config("ipv6-libdir", nil)
- $CPPFLAGS="-DINET6 "+$CPPFLAGS
+if ipv6
+ ipv6lib = nil
+ class << (fmt = "unknown")
+ def %(s) s || self end
end
-
- if $ipv6lib
- if File.directory? $ipv6libdir and File.exist? "#{$ipv6libdir}/lib#{$ipv6lib}.a"
- $LOCAL_LIBS = " -L#$ipv6libdir -l#$ipv6lib"
- elsif !$ipv6trylibc
- abort <<EOS
-Fatal: no #$ipv6lib library found. cannot continue.
-You need to fetch lib#{$ipv6lib}.a from appropriate
-ipv6 kit and compile beforehand.
+ idirs, ldirs = dir_config("inet6", %w[/usr/inet6 /usr/local/v6].find {|d| File.directory?(d)})
+ checking_for("ipv6 type", fmt) do
+ if have_macro("IPV6_INRIA_VERSION", "netinet/in.h")
+ "inria"
+ elsif have_macro("__KAME__", "netinet/in.h")
+ have_library(ipv6lib = "inet6")
+ "kame"
+ elsif have_macro("_TOSHIBA_INET6", "sys/param.h")
+ have_library(ipv6lib = "inet6") and "toshiba"
+ elsif have_macro("__V6D__", "sys/v6config.h")
+ have_library(ipv6lib = "v6") and "v6d"
+ elsif have_macro("_ZETA_MINAMI_INET6", "sys/param.h")
+ have_library(ipv6lib = "inet6") and "zeta"
+ elsif ipv6lib = with_config("ipv6-lib")
+ warn <<EOS
+--with-ipv6-lib and --with-ipv6-libdir option will be obsolete, use
+--with-inet6lib and --with-inet6-{include,lib} options instead.
EOS
+ find_library(ipv6lib, nil, with_config("ipv6-libdir", ldirs)) and
+ ipv6lib
+ elsif have_library("inet6")
+ "inet6"
end
- end
+ end or not ipv6lib or abort <<EOS
+
+Fatal: no #{ipv6lib} library found. cannot continue.
+You need to fetch lib#{ipv6lib}.a from appropriate
+ipv6 kit and compile beforehand.
+EOS
end
if have_struct_member("struct sockaddr_in", "sin_len", headers)
@@ -219,7 +201,7 @@ main()
}
EOF
end
-if $ipv6 and not getaddr_info_ok
+if ipv6 and not getaddr_info_ok
abort <<EOS
Fatal: --enable-ipv6 is specified, and your OS seems to support IPv6 feature.
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index 7db06ef0676..d9023e146ec 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -2094,7 +2094,7 @@ static VALUE
sock_s_socketpair(klass, domain, type, protocol)
VALUE klass, domain, type, protocol;
{
-#if !defined(_WIN32) && !defined(__BEOS__) && !defined(__EMX__) && !defined(__QNXNTO__)
+#if defined HAVE_SOCKETPAIR
int d, t, sp[2];
setup_domain_and_type(domain, &d, type, &t);
diff --git a/ext/zlib/extconf.rb b/ext/zlib/extconf.rb
index 6b9bb05742e..b4e76af3c60 100644
--- a/ext/zlib/extconf.rb
+++ b/ext/zlib/extconf.rb
@@ -54,12 +54,7 @@ if %w'z libz zlib zdll'.find {|z| have_library(z, 'deflateReset')} and
message "#{OS_NAMES[os_code]}\n"
defines << "OS_CODE=#{os_code}"
- defines = defines.collect{|d|' -D'+d}.join
- if $CPPFLAGS then
- $CPPFLAGS += defines
- else
- $CFLAGS += defines
- end
+ $defs.concat(defines.collect{|d|' -D'+d})
create_makefile('zlib')