diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-05-25 23:44:08 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-05-25 23:44:08 +0000 |
commit | 65937b5eb9e35cd4b76261ac7bb3b3c3809cbe38 (patch) | |
tree | 5e2b99484f0b00685b8d05c07e88a3a56ff483e6 /ext | |
parent | 155c33c1d164987a5f872e410c506187f26869fd (diff) |
* ruby.h, lib/mkmf.rb (create_header): clear command line options for
macros moved to extconf.h.
* ext/extmk.rb (extract_makefile, extmk): made RUBY_EXTCONF_H and
EXTSTATIC permanent.
* ext/{dbm,digest/*,socket,zlib}/extconf.rb: used $defs and $INCFLAGS.
* {bcc32,win32,wince}/Makefile.sub (COMPILE_C, COMPILE_CXX): added
$(INCFLAGS).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r-- | ext/dbm/extconf.rb | 2 | ||||
-rw-r--r-- | ext/digest/md5/extconf.rb | 3 | ||||
-rw-r--r-- | ext/digest/rmd160/extconf.rb | 3 | ||||
-rw-r--r-- | ext/digest/sha1/extconf.rb | 3 | ||||
-rw-r--r-- | ext/digest/sha2/extconf.rb | 3 | ||||
-rw-r--r-- | ext/extmk.rb | 8 | ||||
-rw-r--r-- | ext/socket/extconf.rb | 97 | ||||
-rw-r--r-- | ext/socket/socket.c | 2 | ||||
-rw-r--r-- | ext/zlib/extconf.rb | 7 |
9 files changed, 52 insertions, 76 deletions
diff --git a/ext/dbm/extconf.rb b/ext/dbm/extconf.rb index 5a67603e69..19bfc1f6d3 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 9acf7ba9c0..9819241184 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 5bc968385c..9358dbd09e 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 c249a415ed..b93ac593ac 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 17fb9f2d1a..7bb143e8d1 100644 --- a/ext/digest/sha2/extconf.rb +++ b/ext/digest/sha2/extconf.rb @@ -3,7 +3,8 @@ require "mkmf" -$CFLAGS << " -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 d33cbd9128..c88a198030 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 28f38140b4..5ee30a2228 100644 --- a/ext/socket/extconf.rb +++ b/ext/socket/extconf.rb @@ -30,7 +30,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)} @@ -41,74 +41,45 @@ main() socket(AF_INET6, SOCK_STREAM, 0); } EOF - $CFLAGS+=" -DENABLE_IPV6" - $ipv6 = true + $defs << "-DENABLE_IPV6" << "-DINET6" + ipv6 = true end end -$ipv6type = nil -$ipv6lib = nil -$ipv6libdir = nil -$ipv6trylibc = nil -if $ipv6 - if macro_defined?("IPV6_INRIA_VERSION", <<EOF) -#include <netinet/in.h> -EOF - $ipv6type = "inria" - $CFLAGS="-DINET6 "+$CFLAGS - elsif macro_defined?("__KAME__", <<EOF) -#include <netinet/in.h> -EOF - $ipv6type = "kame" - $ipv6lib="inet6" - $ipv6libdir="/usr/local/v6/lib" - $ipv6trylibc=true - $CFLAGS="-DINET6 "+$CFLAGS - elsif File.directory? "/usr/inet6" - $ipv6type = "linux" - $ipv6lib="inet6" - $ipv6libdir="/usr/inet6/lib" - $CFLAGS="-DINET6 -I/usr/inet6/include "+$CFLAGS - elsif macro_defined?("_TOSHIBA_INET6", <<EOF) -#include <sys/param.h> -EOF - $ipv6type = "toshiba" - $ipv6lib="inet6" - $ipv6libdir="/usr/local/v6/lib" - $CFLAGS="-DINET6 "+$CFLAGS - elsif macro_defined?("__V6D__", <<EOF) -#include </usr/local/v6/include/sys/v6config.h> -EOF - $ipv6type = "v6d" - $ipv6lib="v6" - $ipv6libdir="/usr/local/v6/lib" - $CFLAGS="-DINET6 -I/usr/local/v6/include "+$CFLAGS - elsif macro_defined?("_ZETA_MINAMI_INET6", <<EOF) -#include <sys/param.h> -EOF - $ipv6type = "zeta" - $ipv6lib="inet6" - $ipv6libdir="/usr/local/v6/lib" - $CFLAGS="-DINET6 "+$CFLAGS - else - $ipv6lib=with_config("ipv6-lib", nil) - $ipv6libdir=with_config("ipv6-libdir", nil) - $CFLAGS="-DINET6 "+$CFLAGS +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 - print <<EOS + 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 or not ipv6lib or abort <<EOS -Fatal: no #$ipv6lib library found. cannot continue. -You need to fetch lib#{$ipv6lib}.a from appropriate +Fatal: no #{ipv6lib} library found. cannot continue. +You need to fetch lib#{ipv6lib}.a from appropriate ipv6 kit and compile beforehand. EOS - exit - end - end end if have_struct_member("struct sockaddr_in", "sin_len", headers) @@ -241,7 +212,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 6619dab857..1eca32f750 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -2035,7 +2035,7 @@ static VALUE sock_s_socketpair(klass, domain, type, protocol) VALUE klass, domain, type, protocol; { -#if !defined(_WIN32) && !defined(__BEOS__) && !defined(__EMX__) && !defined(__QNXNTO__) && !defined(__VMS) +#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 6b9bb05742..b4e76af3c6 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') |