diff options
author | eban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-09-15 12:57:21 +0000 |
---|---|---|
committer | eban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-09-15 12:57:21 +0000 |
commit | ce296ec7fc8fc02b1b95bac13b763100c66eb909 (patch) | |
tree | fa293e5b3b8891fa329dbff87baf7d2edda6b47a | |
parent | aa904b2050026a0fa6bc7d3e1869dc471c1b0749 (diff) |
* configure.in (OUTFLAG, CPPOUTFILE): moved from lib/mkmf.rb.
check whether ${CPP} accepts the -o option.
* win32/Makefile.sub (OUTFLAG, CPPOUTFILE): ditto.
* bcc32/Makefile.sub (OUTFLAG, CPPOUTFILE): ditto.
* djgpp/config.sed (OUTFLAG, CPPOUTFILE): ditto.
* lib/mkmf.rb (OUTFLAG, CPPOUTFILE): use CONFIG.
make easy to understand log.
* mkconfig.rb (val): should not strip.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 16 | ||||
-rw-r--r-- | bcc32/Makefile.sub | 2 | ||||
-rw-r--r-- | configure.in | 10 | ||||
-rw-r--r-- | djgpp/config.sed | 2 | ||||
-rw-r--r-- | lib/mkmf.rb | 55 | ||||
-rw-r--r-- | mkconfig.rb | 2 | ||||
-rw-r--r-- | win32/Makefile.sub | 2 |
7 files changed, 72 insertions, 17 deletions
@@ -1,3 +1,19 @@ +Sun Sep 15 19:48:55 2002 WATANABE Hirofumi <eban@ruby-lang.org> + + * configure.in (OUTFLAG, CPPOUTFILE): moved from lib/mkmf.rb. + check whether ${CPP} accepts the -o option. + + * win32/Makefile.sub (OUTFLAG, CPPOUTFILE): ditto. + + * bcc32/Makefile.sub (OUTFLAG, CPPOUTFILE): ditto. + + * djgpp/config.sed (OUTFLAG, CPPOUTFILE): ditto. + + * lib/mkmf.rb (OUTFLAG, CPPOUTFILE): use CONFIG. + make easy to understand log. + + * mkconfig.rb (val): should not strip. + Sat Sep 14 20:13:42 2002 KONISHI Hiromasa <konishih@fd6.so-net.ne.jp> * error.c(rb_sys_fail): remove case EPIPE on bcc32 . diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub index 9079210fd4..e13cfc5f52 100644 --- a/bcc32/Makefile.sub +++ b/bcc32/Makefile.sub @@ -338,6 +338,8 @@ s,@LIBRUBYARG@,$$(RUBY_SO_NAME).lib,;t t s,@SOLIBS@,$(SOLIBS),;t t s,@DLDLIBS@,$(DLDLIBS),;t t s,@ENABLE_SHARED@,yes,;t t +s,@OUTFLAG@,-o,;t t +s,@CPPOUTFILE@,,;t t s,@arch@,$(ARCH)-$(OS),;t t s,@sitearch@,$(ARCH)-$(OS),;t t s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t diff --git a/configure.in b/configure.in index d299c633bb..4ed1081720 100644 --- a/configure.in +++ b/configure.in @@ -98,6 +98,16 @@ fi AC_PROG_CC AC_PROG_GCC_TRADITIONAL +echo 'foo(){}' > conftest.c +if ${CPP} -o conftest.i conftest.c >/dev/null 2>&1; then + CPPOUTFILE='-o conftest.i' +else + CPPOUTFILE='> conftest.i' +fi +AC_SUBST(CPPOUTFILE) +OUTFLAG='-o ' +AC_SUBST(OUTFLAG) + AC_PROG_YACC AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(AR, ar) diff --git a/djgpp/config.sed b/djgpp/config.sed index c2f0661913..8c09fc6f1b 100644 --- a/djgpp/config.sed +++ b/djgpp/config.sed @@ -65,6 +65,8 @@ s%@arch@%i386-msdosdjgpp%g s%@sitedir@%${prefix}/lib/ruby/site_ruby%g s%@configure_args@%%g s%@MINIRUBY@%./miniruby% +s%@OUTFLAG@%-o % +s%@CPPOUTFILE@%-o conftest.i% s%@archlib@%/lib/ruby/i386-msdosdjgpp% ;s%|| true%% ;/\/dev\/null/ { diff --git a/lib/mkmf.rb b/lib/mkmf.rb index d7f5b5e6f1..a47b0d4e6e 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -13,7 +13,7 @@ SRC_EXT = ["c", "cc", "m", "cxx", "cpp", "C"] unless defined? $configure_args $configure_args = {} args = CONFIG["configure_args"] - if /mswin32|bccwin32|mingw/ =~ RUBY_PLATFORM and ENV["CONFIGURE_ARGS"] + if ENV["CONFIGURE_ARGS"] args << " " << ENV["CONFIGURE_ARGS"] end for arg in Shellwords::shellwords(args) @@ -71,7 +71,6 @@ else exit 1 end $topdir = $hdrdir -# $hdrdir.gsub!('/', '\\') if RUBY_PLATFORM =~ /mswin32|bccwin32/ CFLAGS = CONFIG["CFLAGS"] if RUBY_PLATFORM == "m68k-human" @@ -80,21 +79,14 @@ elsif RUBY_PLATFORM =~ /-nextstep|-rhapsody|-darwin/ CFLAGS.gsub!( /-arch\s\w*/, '' ) end -if /mswin32/ =~ RUBY_PLATFORM - OUTFLAG = '-Fe' - CPPOUTFILE = '-P' -elsif /bccwin32/ =~ RUBY_PLATFORM - OUTFLAG = '-o' - CPPOUTFILE = '-oconftest.i' -else - OUTFLAG = '-o ' - CPPOUTFILE = '-o conftest.i' -end +OUTFLAG = CONFIG['OUTFLAG'] +CPPOUTFILE = CONFIG['CPPOUTFILE'] $LINK = "#{CONFIG['CC']} #{OUTFLAG}conftest %s -I#{$hdrdir} %s #{CFLAGS} %s #{CONFIG['LDFLAGS']} %s conftest.c %s %s #{CONFIG['LIBS']}" $CC = "#{CONFIG['CC']} -c #{CONFIG['CPPFLAGS']} %s -I#{$hdrdir} %s #{CFLAGS} %s %s conftest.c" $CPP = "#{CONFIG['CPP']} #{CONFIG['CPPFLAGS']} %s -I#{$hdrdir} %s #{CFLAGS} %s %s %s conftest.c" + $INSTALLFILES = nil unless defined? $INSTALLFILES def rm_f(*files) @@ -137,6 +129,11 @@ module Logging $stdout.reopen(@orgout) end + def self::message(*s) + @log ||= File::open(@logfile, 'w') + @log.printf(*s) + end + def self::logfile file @logfile = file if @log and not @log.closed? @@ -168,6 +165,7 @@ def xpopen command, *mode, &block end def try_link0(src, opt="") + src = "/* begin */\n#{src}/* end */\n" cfile = open("conftest.c", "w") cfile.print src cfile.close @@ -183,6 +181,10 @@ def try_link0(src, opt="") ensure $LDFLAGS = ldflags ENV['LIB'] = ORIG_LIBPATH if /mswin32|bccwin32/ =~ RUBY_PLATFORM + Logging::message <<"EOM" +checked program was: +#{src} +EOM end end @@ -198,6 +200,7 @@ def try_link(src, opt="") end def try_compile(src, opt="") + src = "/* begin */\n#{src}/* end */\n" cfile = open("conftest.c", "w") cfile.print src cfile.close @@ -205,10 +208,15 @@ def try_compile(src, opt="") xsystem(format($CC, $INCFLAGS, $CPPFLAGS, $CFLAGS, opt)) ensure rm_f "conftest*" + Logging::message <<"EOM" +checked program was: +#{src} +EOM end end def try_cpp(src, opt="") + src = "/* begin */\n#{src}/* end */\n" cfile = open("conftest.c", "w") cfile.print src cfile.close @@ -216,10 +224,15 @@ def try_cpp(src, opt="") xsystem(format($CPP, $INCFLAGS, $CPPFLAGS, $CFLAGS, CPPOUTFILE, opt)) ensure rm_f "conftest*" + Logging::message <<"EOM" +checked program was: +#{src} +EOM end end def egrep_cpp(pat, src, opt="") + src = "/* begin */\n#{src}/* end */\n" cfile = open("conftest.c", "w") cfile.print src cfile.close @@ -245,15 +258,19 @@ def egrep_cpp(pat, src, opt="") end ensure rm_f "conftest*" + Logging::message <<"EOM" +checked program was: +#{src} +EOM end end def macro_defined?(macro, src, opt="") - try_cpp(src + <<EOP, opt) + try_cpp(src + <<SRC, opt) #ifndef #{macro} # error #endif -EOP +SRC end def try_run(src, opt="") @@ -323,13 +340,14 @@ end def message(*s) unless $extmk and not $VERBOSE - print(*s) - STDOUT.flush + printf(*s) + $stdout.flush end end def have_library(lib, func="main") message "checking for #{func}() in -l#{lib}... " + Logging::message"checking for #{func}() in -l#{lib}\n" if func && func != "" libs = append_library($libs, lib) @@ -375,6 +393,7 @@ end def find_library(lib, func, *paths) message "checking for #{func}() in -l#{lib}... " + Logging::message"checking for #{func}() in -l#{lib}\n" libpath = $LIBPATH libs = append_library($libs, lib) @@ -396,6 +415,7 @@ end def have_func(func, header=nil) message "checking for #{func}()... " + Logging::message"checking for #{func}()\n" libs = $libs src = @@ -434,6 +454,7 @@ end def have_header(header) message "checking for #{header}... " + Logging::message"checking for #{header}\n" unless try_cpp(<<"SRC") #include <#{header}> @@ -448,6 +469,7 @@ end def have_struct_member(type, member, header=nil) message "checking for #{type}.#{member}... " + Logging::message "checking for #{type}.#{member}\n" src = if /mswin32|bccwin32|mingw/ =~ RUBY_PLATFORM @@ -483,6 +505,7 @@ end def find_executable(bin, path = nil) message "checking for #{bin}... " + Logging::message "checking for #{bin}\n" if path.nil? path = ENV['PATH'].split(Config::CONFIG['PATH_SEPARATOR']) diff --git a/mkconfig.rb b/mkconfig.rb index 0a0da828c7..b23e6b03cb 100644 --- a/mkconfig.rb +++ b/mkconfig.rb @@ -41,7 +41,7 @@ File.foreach "config.status" do |line| next if $install_name and /^RUBY_INSTALL_NAME$/ =~ name next if $so_name and /^RUBY_SO_NAME$/ =~ name v = " CONFIG[\"" + name + "\"] = " + - val.strip.gsub(/\$\{?(\w+)\}?/) {"$(#{$1})"}.dump + "\n" + val.gsub(/\$\{?(\w+)\}?/) {"$(#{$1})"}.dump + "\n" if fast[name] v_fast << v else diff --git a/win32/Makefile.sub b/win32/Makefile.sub index b2ba3187a6..fc0c9c4c65 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -340,6 +340,8 @@ s,@LIBRUBYARG@,$$(RUBY_SO_NAME).lib,;t t s,@SOLIBS@,$(SOLIBS),;t t s,@DLDLIBS@,$(DLDLIBS),;t t s,@ENABLE_SHARED@,yes,;t t +s,@OUTFLAG@,-Fe,;t t +s,@CPPOUTFILE@,-P,;t t s,@arch@,$(ARCH)-$(OS),;t t s,@sitearch@,$(ARCH)-$(RT),;t t s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t |