2002-12-26 17:59:35 +03:00
|
|
|
#! /usr/local/bin/ruby
|
2002-09-08 13:08:15 +04:00
|
|
|
# -*- ruby -*-
|
|
|
|
|
|
|
|
$force_static = nil
|
|
|
|
$install = nil
|
|
|
|
$destdir = nil
|
|
|
|
$clean = nil
|
|
|
|
$nodynamic = nil
|
|
|
|
$extinit = nil
|
|
|
|
$extobjs = nil
|
2002-12-31 15:31:12 +03:00
|
|
|
$ignore = nil
|
|
|
|
$message = nil
|
2002-09-08 13:08:15 +04:00
|
|
|
|
2003-01-05 23:11:20 +03:00
|
|
|
$progname = $0
|
|
|
|
alias $PROGRAM_NAME $0
|
|
|
|
alias $0 $progname
|
|
|
|
|
2002-09-08 13:08:15 +04:00
|
|
|
$extlist = []
|
2004-04-02 13:00:12 +04:00
|
|
|
$extupdate = false
|
2005-02-06 17:51:44 +03:00
|
|
|
$compiled = {}
|
2002-09-08 13:08:15 +04:00
|
|
|
|
|
|
|
$:.replace ["."]
|
|
|
|
require 'rbconfig'
|
|
|
|
|
2004-03-18 12:50:14 +03:00
|
|
|
srcdir = File.dirname(File.dirname(__FILE__))
|
2002-09-08 13:08:15 +04:00
|
|
|
|
2002-09-08 16:59:08 +04:00
|
|
|
$:.replace [srcdir, srcdir+"/lib", "."]
|
2002-09-08 13:08:15 +04:00
|
|
|
|
2004-02-21 08:33:24 +03:00
|
|
|
$topdir = "."
|
2002-09-08 16:59:08 +04:00
|
|
|
$top_srcdir = srcdir
|
2004-03-18 12:50:14 +03:00
|
|
|
|
|
|
|
require 'mkmf'
|
|
|
|
require 'optparse/shellwords'
|
2002-09-08 13:08:15 +04:00
|
|
|
|
2002-12-31 15:31:12 +03:00
|
|
|
def sysquote(x)
|
2003-01-05 10:04:10 +03:00
|
|
|
@quote ||= /human|os2|macos/ =~ (CROSS_COMPILING || RUBY_PLATFORM)
|
|
|
|
@quote ? x.quote : x
|
2002-12-31 15:31:12 +03:00
|
|
|
end
|
|
|
|
|
2004-03-18 12:50:14 +03:00
|
|
|
def relative_from(path, base)
|
|
|
|
if File.expand_path(path) == File.expand_path(path, base)
|
|
|
|
path
|
|
|
|
else
|
|
|
|
File.join(base, path)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2005-02-10 06:09:27 +03:00
|
|
|
def extract_makefile(makefile, keep = true)
|
2005-02-06 17:51:44 +03:00
|
|
|
m = File.read(makefile)
|
|
|
|
if !(target = m[/^TARGET[ \t]*=[ \t]*(\S*)/, 1])
|
2005-02-10 06:09:27 +03:00
|
|
|
return keep
|
2005-02-06 17:51:44 +03:00
|
|
|
end
|
|
|
|
installrb = {}
|
|
|
|
m.scan(/^install-rb-default:[ \t]*(\S+)\n\1:[ \t]*(\S+)/) {installrb[$2] = $1}
|
|
|
|
oldrb = installrb.keys.sort
|
|
|
|
newrb = install_rb(nil, "").collect {|d, *f| f}.flatten.sort
|
|
|
|
if target_prefix = m[/^target_prefix[ \t]*=[ \t]*\/(.*)/, 1]
|
|
|
|
target = "#{target_prefix}/#{target}"
|
2005-02-19 04:43:58 +03:00
|
|
|
end
|
|
|
|
unless oldrb == newrb
|
|
|
|
if $extout
|
|
|
|
newrb.each {|f| installrb.delete(f)}
|
2005-03-28 15:53:52 +04:00
|
|
|
unless installrb.empty?
|
|
|
|
config = CONFIG.dup
|
|
|
|
install_dirs(target_prefix).each {|var, val| config[var] = val}
|
|
|
|
FileUtils.rm_f(installrb.values.collect {|f| Config.expand(f, config)}, verbose: true)
|
|
|
|
end
|
2005-02-10 06:09:27 +03:00
|
|
|
end
|
2005-02-19 04:43:58 +03:00
|
|
|
return false
|
2005-02-06 17:51:44 +03:00
|
|
|
end
|
|
|
|
$target = target
|
|
|
|
/^STATIC_LIB[ \t]*=[ \t]*\S+/ =~ m or $static = nil
|
|
|
|
$preload = Shellwords.shellwords(m[/^preload[ \t]*=[ \t]*(.*)/, 1] || "")
|
|
|
|
$DLDFLAGS += " " + (m[/^DLDFLAGS[ \t]*=[ \t]*(.*)/, 1] || "")
|
|
|
|
if s = m[/^LIBS[ \t]*=[ \t]*(.*)/, 1]
|
|
|
|
s.sub!(/^#{Regexp.quote($LIBRUBYARG)} */, "")
|
|
|
|
s.sub!(/ *#{Regexp.quote($LIBS)}$/, "")
|
|
|
|
$libs = s
|
|
|
|
end
|
|
|
|
$LOCAL_LIBS = m[/^LOCAL_LIBS[ \t]*=[ \t]*(.*)/, 1] || ""
|
|
|
|
$LIBPATH = Shellwords.shellwords(m[/^libpath[ \t]*=[ \t]*(.*)/, 1] || "") - %w[$(libdir) $(topdir)]
|
|
|
|
true
|
|
|
|
end
|
|
|
|
|
2002-09-08 13:08:15 +04:00
|
|
|
def extmake(target)
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
print "#{$message} #{target}\n"
|
|
|
|
$stdout.flush
|
2002-09-08 13:08:15 +04:00
|
|
|
if $force_static or $static_ext[target]
|
|
|
|
$static = target
|
|
|
|
else
|
|
|
|
$static = false
|
|
|
|
end
|
|
|
|
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
unless $ignore
|
2002-11-25 14:00:03 +03:00
|
|
|
return true if $nodynamic and not $static
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
|
|
|
|
2004-02-17 13:34:31 +03:00
|
|
|
FileUtils.mkpath target unless File.directory?(target)
|
2004-02-21 08:33:24 +03:00
|
|
|
begin
|
|
|
|
dir = Dir.pwd
|
|
|
|
FileUtils.mkpath target unless File.directory?(target)
|
|
|
|
Dir.chdir target
|
|
|
|
top_srcdir = $top_srcdir
|
|
|
|
topdir = $topdir
|
2005-04-07 18:59:24 +04:00
|
|
|
mk_srcdir = CONFIG["srcdir"]
|
|
|
|
mk_topdir = CONFIG["topdir"]
|
2004-02-21 08:33:24 +03:00
|
|
|
prefix = "../" * (target.count("/")+1)
|
2004-03-18 12:50:14 +03:00
|
|
|
$hdrdir = $top_srcdir = relative_from(top_srcdir, prefix)
|
2004-02-21 08:33:24 +03:00
|
|
|
$topdir = prefix + $topdir
|
2002-09-08 13:08:15 +04:00
|
|
|
$target = target
|
|
|
|
$mdir = target
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
$srcdir = File.join($top_srcdir, "ext", $mdir)
|
2003-08-12 06:12:48 +04:00
|
|
|
$preload = nil
|
2005-02-06 17:51:44 +03:00
|
|
|
$compiled[target] = false
|
2003-08-16 18:58:34 +04:00
|
|
|
makefile = "./Makefile"
|
2005-02-06 17:51:44 +03:00
|
|
|
ok = File.exist?(makefile)
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
unless $ignore
|
2005-02-06 17:51:44 +03:00
|
|
|
Config::CONFIG["srcdir"] = $srcdir
|
|
|
|
Config::CONFIG["topdir"] = $topdir
|
2005-04-07 19:21:04 +04:00
|
|
|
CONFIG["hdrdir"] = ($hdrdir == top_srcdir) ? top_srcdir : "$(topdir)"+top_srcdir[2..-1]
|
2005-04-07 18:59:24 +04:00
|
|
|
CONFIG["srcdir"] = "$(hdrdir)/ext/#{$mdir}"
|
|
|
|
CONFIG["topdir"] = $topdir
|
2005-02-06 17:51:44 +03:00
|
|
|
begin
|
|
|
|
if (!(ok &&= extract_makefile(makefile)) ||
|
|
|
|
!(t = modified?(makefile, MTIMES)) ||
|
|
|
|
%W"#{$srcdir}/makefile.rb #{$srcdir}/extconf.rb #{$srcdir}/depend".any? {|f| modified?(f, [t])})
|
|
|
|
then
|
2005-02-10 06:09:27 +03:00
|
|
|
ok = false
|
2005-02-06 17:51:44 +03:00
|
|
|
init_mkmf
|
|
|
|
Logging::logfile 'mkmf.log'
|
|
|
|
rm_f makefile
|
2003-01-05 11:50:21 +03:00
|
|
|
if File.exist?($0 = "#{$srcdir}/makefile.rb")
|
|
|
|
load $0
|
|
|
|
elsif File.exist?($0 = "#{$srcdir}/extconf.rb")
|
|
|
|
load $0
|
|
|
|
else
|
|
|
|
create_makefile(target)
|
|
|
|
end
|
2004-04-02 13:00:12 +04:00
|
|
|
$extupdate = true
|
2005-02-06 17:51:44 +03:00
|
|
|
ok = File.exist?(makefile)
|
2004-04-02 13:00:12 +04:00
|
|
|
end
|
2005-02-06 17:51:44 +03:00
|
|
|
rescue SystemExit
|
|
|
|
# ignore
|
|
|
|
ensure
|
|
|
|
rm_f "conftest*"
|
|
|
|
config = $0
|
|
|
|
$0 = $PROGRAM_NAME
|
|
|
|
end
|
|
|
|
end
|
|
|
|
ok = yield(ok) if block_given?
|
|
|
|
unless ok
|
|
|
|
open(makefile, "w") do |f|
|
2005-04-07 18:59:24 +04:00
|
|
|
f.print dummy_makefile(CONFIG["srcdir"])
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
2003-08-16 18:58:34 +04:00
|
|
|
return true
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
2004-02-17 13:34:31 +03:00
|
|
|
args = sysquote($mflags)
|
2003-08-16 18:58:34 +04:00
|
|
|
if $static
|
2004-04-22 13:25:16 +04:00
|
|
|
args += ["static"] unless $clean
|
2003-08-16 18:58:34 +04:00
|
|
|
$extlist.push [$static, $target, File.basename($target), $preload]
|
|
|
|
end
|
|
|
|
unless system($make, *args)
|
|
|
|
$ignore or $continue or return false
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
2005-02-06 17:51:44 +03:00
|
|
|
$compiled[target] = true
|
2004-03-23 08:32:01 +03:00
|
|
|
if $clean and $clean != true
|
|
|
|
File.unlink(makefile) rescue nil
|
|
|
|
end
|
2002-09-08 13:08:15 +04:00
|
|
|
if $static
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
$extflags ||= ""
|
2003-08-12 11:55:14 +04:00
|
|
|
$extlibs ||= []
|
2003-08-06 07:11:14 +04:00
|
|
|
$extpath ||= []
|
2004-01-19 07:10:53 +03:00
|
|
|
unless $mswin
|
2004-04-02 13:00:12 +04:00
|
|
|
$extflags = ($extflags.split | $DLDFLAGS.split | $LDFLAGS.split).join(" ")
|
2004-01-19 07:10:53 +03:00
|
|
|
end
|
2004-01-09 05:20:28 +03:00
|
|
|
$extlibs = merge_libs($extlibs, $libs.split, $LOCAL_LIBS.split)
|
2003-08-06 07:11:14 +04:00
|
|
|
$extpath |= $LIBPATH
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
2004-02-21 08:33:24 +03:00
|
|
|
ensure
|
2005-03-28 15:53:52 +04:00
|
|
|
Config::CONFIG["srcdir"] = $top_srcdir
|
2005-04-07 18:59:24 +04:00
|
|
|
Config::CONFIG["topdir"] = topdir
|
|
|
|
CONFIG["srcdir"] = mk_srcdir
|
|
|
|
CONFIG["topdir"] = mk_topdir
|
|
|
|
CONFIG.delete("hdrdir")
|
2004-02-21 08:33:24 +03:00
|
|
|
$hdrdir = $top_srcdir = top_srcdir
|
|
|
|
$topdir = topdir
|
|
|
|
Dir.chdir dir
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
2004-02-17 13:34:31 +03:00
|
|
|
begin
|
|
|
|
Dir.rmdir target
|
|
|
|
target = File.dirname(target)
|
|
|
|
rescue SystemCallError
|
|
|
|
break
|
|
|
|
end while true
|
2002-11-13 10:30:24 +03:00
|
|
|
true
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
|
|
|
|
2005-02-06 17:51:44 +03:00
|
|
|
def compiled?(target)
|
|
|
|
$compiled[target]
|
|
|
|
end
|
|
|
|
|
2003-01-25 21:59:34 +03:00
|
|
|
def parse_args()
|
2004-02-22 06:58:44 +03:00
|
|
|
$mflags = []
|
|
|
|
|
|
|
|
opts = nil
|
2005-02-06 17:51:44 +03:00
|
|
|
$optparser ||= OptionParser.new do |opts|
|
2004-02-22 06:58:44 +03:00
|
|
|
opts.on('-n') {$dryrun = true}
|
|
|
|
opts.on('--[no-]extension [EXTS]', Array) do |v|
|
|
|
|
$extension = (v == false ? [] : v)
|
2004-02-09 11:48:55 +03:00
|
|
|
end
|
2004-02-22 06:58:44 +03:00
|
|
|
opts.on('--[no-]extstatic [STATIC]', Array) do |v|
|
|
|
|
if ($extstatic = v) == false
|
|
|
|
$extstatic = []
|
|
|
|
elsif v
|
|
|
|
$force_static = true
|
|
|
|
$extstatic.delete("static")
|
|
|
|
$extstatic = nil if $extstatic.empty?
|
|
|
|
end
|
2004-02-09 11:48:55 +03:00
|
|
|
end
|
2004-02-22 06:58:44 +03:00
|
|
|
opts.on('--dest-dir=DIR') do |v|
|
|
|
|
$destdir = v
|
|
|
|
end
|
|
|
|
opts.on('--extout=DIR') do |v|
|
|
|
|
$extout = (v unless v.empty?)
|
|
|
|
end
|
|
|
|
opts.on('--make=MAKE') do |v|
|
|
|
|
$make = v || 'make'
|
|
|
|
end
|
|
|
|
opts.on('--make-flags=FLAGS', '--mflags', Shellwords) do |v|
|
|
|
|
if arg = v.first
|
|
|
|
arg.insert(0, '-') if /\A[^-][^=]*\Z/ =~ arg
|
|
|
|
end
|
|
|
|
$mflags.concat(v)
|
|
|
|
end
|
|
|
|
opts.on('--message [MESSAGE]', String) do |v|
|
|
|
|
$message = v
|
|
|
|
end
|
2005-02-06 17:51:44 +03:00
|
|
|
end
|
|
|
|
begin
|
|
|
|
$optparser.parse!(ARGV)
|
|
|
|
rescue OptionParser::InvalidOption => e
|
|
|
|
retry if /^--/ =~ e.args[0]
|
|
|
|
$optparser.warn(e)
|
|
|
|
abort opts.to_s
|
|
|
|
end
|
2002-11-04 00:42:14 +03:00
|
|
|
|
2004-02-22 06:58:44 +03:00
|
|
|
$destdir ||= ''
|
2003-01-27 22:48:02 +03:00
|
|
|
|
2003-01-25 21:59:34 +03:00
|
|
|
$make, *rest = Shellwords.shellwords($make)
|
|
|
|
$mflags.unshift(*rest) unless rest.empty?
|
2002-11-04 00:42:14 +03:00
|
|
|
|
2003-01-26 11:56:01 +03:00
|
|
|
def $mflags.set?(flag)
|
2003-01-27 22:48:02 +03:00
|
|
|
grep(/\A-(?!-).*#{'%c' % flag}/i) { return true }
|
|
|
|
false
|
2003-01-26 11:56:01 +03:00
|
|
|
end
|
2004-02-09 11:48:55 +03:00
|
|
|
def $mflags.defined?(var)
|
|
|
|
grep(/\A#{var}=(.*)/) {return $1}
|
2005-03-02 13:53:53 +03:00
|
|
|
false
|
2004-02-09 11:48:55 +03:00
|
|
|
end
|
2003-01-26 11:56:01 +03:00
|
|
|
|
|
|
|
if $mflags.set?(?n)
|
|
|
|
$dryrun = true
|
|
|
|
else
|
2003-02-10 14:59:26 +03:00
|
|
|
$mflags.unshift '-n' if $dryrun
|
2003-01-26 11:56:01 +03:00
|
|
|
end
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
|
2003-01-26 11:56:01 +03:00
|
|
|
$continue = $mflags.set?(?k)
|
2004-02-09 11:48:55 +03:00
|
|
|
if !$destdir.to_s.empty?
|
|
|
|
$destdir = File.expand_path($destdir)
|
|
|
|
$mflags.defined?("DESTDIR") or $mflags << "DESTDIR=#{$destdir}"
|
|
|
|
end
|
2004-02-09 12:20:52 +03:00
|
|
|
if $extout
|
2004-02-17 06:12:53 +03:00
|
|
|
$extout = '$(topdir)/'+$extout
|
2004-02-17 13:34:31 +03:00
|
|
|
$extout_prefix = $extout ? "$(extout)$(target_prefix)/" : ""
|
|
|
|
$mflags << "extout=#$extout" << "extout_prefix=#$extout_prefix"
|
2004-02-09 11:48:55 +03:00
|
|
|
end
|
2003-01-25 21:59:34 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
parse_args()
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
|
2004-02-09 11:48:55 +03:00
|
|
|
if target = ARGV.shift and /^[a-z-]+$/ =~ target
|
|
|
|
$mflags.push(target)
|
2004-03-23 08:32:01 +03:00
|
|
|
target = target.sub(/^(dist|real)(?=(?:clean)?$)/, '')
|
2004-02-09 11:48:55 +03:00
|
|
|
case target
|
|
|
|
when /clean/
|
|
|
|
$ignore ||= true
|
2004-03-23 08:32:01 +03:00
|
|
|
$clean = $1 ? $1[0] : true
|
2004-02-09 11:48:55 +03:00
|
|
|
when /^install\b/
|
|
|
|
$install = true
|
|
|
|
$ignore ||= true
|
|
|
|
$mflags.unshift("INSTALL_PROG=install -c -p -m 0755",
|
|
|
|
"INSTALL_DATA=install -c -p -m 0644",
|
|
|
|
"MAKEDIRS=mkdir -p") if $dryrun
|
|
|
|
end
|
|
|
|
end
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
unless $message
|
2004-02-09 11:48:55 +03:00
|
|
|
if target
|
|
|
|
$message = target.sub(/^(\w+)e?\b/, '\1ing').tr('-', ' ')
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
else
|
|
|
|
$message = "compiling"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
EXEEXT = CONFIG['EXEEXT']
|
2002-12-31 15:31:12 +03:00
|
|
|
if CROSS_COMPILING
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
$ruby = CONFIG['MINIRUBY']
|
|
|
|
elsif $nmake
|
|
|
|
$ruby = '$(topdir:/=\\)\\miniruby' + EXEEXT
|
|
|
|
else
|
|
|
|
$ruby = '$(topdir)/miniruby' + EXEEXT
|
|
|
|
end
|
2004-03-18 12:50:14 +03:00
|
|
|
$ruby << " -I'$(topdir)' -I'$(hdrdir)/lib'"
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
$config_h = '$(topdir)/config.h'
|
2002-09-08 13:08:15 +04:00
|
|
|
|
2004-01-26 05:35:30 +03:00
|
|
|
MTIMES = [__FILE__, 'rbconfig.rb', srcdir+'/lib/mkmf.rb'].collect {|f| File.mtime(f)}
|
2002-09-08 13:08:15 +04:00
|
|
|
|
|
|
|
# get static-link modules
|
|
|
|
$static_ext = {}
|
2004-02-09 11:48:55 +03:00
|
|
|
if $extstatic
|
2004-02-22 08:33:36 +03:00
|
|
|
$extstatic.each do |target|
|
2004-02-09 11:48:55 +03:00
|
|
|
target = target.downcase if /mswin32|bccwin32/ =~ RUBY_PLATFORM
|
|
|
|
$static_ext[target] = $static_ext.size
|
|
|
|
end
|
|
|
|
end
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
for dir in ["ext", File::join($top_srcdir, "ext")]
|
|
|
|
setup = File::join(dir, CONFIG['setup'])
|
2002-09-08 13:08:15 +04:00
|
|
|
if File.file? setup
|
|
|
|
f = open(setup)
|
|
|
|
while line = f.gets()
|
|
|
|
line.chomp!
|
|
|
|
line.sub!(/#.*$/, '')
|
|
|
|
next if /^\s*$/ =~ line
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
target, opt = line.split(nil, 3)
|
|
|
|
if target == 'option'
|
|
|
|
case opt
|
|
|
|
when 'nodynamic'
|
|
|
|
$nodynamic = true
|
|
|
|
end
|
2002-09-08 13:08:15 +04:00
|
|
|
next
|
|
|
|
end
|
|
|
|
target = target.downcase if /mswin32|bccwin32/ =~ RUBY_PLATFORM
|
2004-01-08 01:06:38 +03:00
|
|
|
$static_ext[target] = $static_ext.size
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
MTIMES << f.mtime
|
2002-09-08 13:08:15 +04:00
|
|
|
$setup = setup
|
|
|
|
f.close
|
|
|
|
break
|
|
|
|
end
|
2004-02-09 11:48:55 +03:00
|
|
|
end unless $extstatic
|
|
|
|
|
|
|
|
ext_prefix = "#{$top_srcdir}/ext"
|
|
|
|
exts = $static_ext.sort_by {|t, i| i}.collect {|t, i| t}
|
|
|
|
exts |= $extension if $extension
|
2004-11-01 08:04:04 +03:00
|
|
|
exts |= Dir.glob("#{ext_prefix}/*/**/extconf.rb").collect {|d|
|
2004-02-09 11:48:55 +03:00
|
|
|
d = File.dirname(d)
|
|
|
|
d.slice!(0, ext_prefix.length + 1)
|
|
|
|
d
|
2005-01-31 18:19:27 +03:00
|
|
|
}.sort unless $extension
|
2004-02-09 11:48:55 +03:00
|
|
|
|
2004-02-09 12:20:52 +03:00
|
|
|
if $extout
|
2004-05-06 08:32:49 +04:00
|
|
|
Config.expand(extout = "#$extout", Config::CONFIG.merge("topdir"=>$topdir))
|
2004-02-09 11:48:55 +03:00
|
|
|
if $install
|
|
|
|
Config.expand(dest = "#{$destdir}#{$rubylibdir}")
|
2004-04-22 13:25:16 +04:00
|
|
|
FileUtils.cp_r(extout+"/.", dest, :verbose => true, :noop => $dryrun)
|
2004-02-09 11:48:55 +03:00
|
|
|
exit
|
|
|
|
end
|
|
|
|
unless $ignore
|
2004-02-21 08:33:24 +03:00
|
|
|
FileUtils.mkpath(extout)
|
2004-02-09 11:48:55 +03:00
|
|
|
end
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
|
|
|
|
2004-02-21 08:33:24 +03:00
|
|
|
dir = Dir.pwd
|
2003-08-17 06:32:07 +04:00
|
|
|
FileUtils::makedirs('ext')
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
Dir::chdir('ext')
|
|
|
|
|
2004-03-18 12:50:14 +03:00
|
|
|
$hdrdir = $top_srcdir = relative_from(srcdir, $topdir = "..")
|
2004-02-09 11:48:55 +03:00
|
|
|
exts.each do |d|
|
2004-01-08 01:06:38 +03:00
|
|
|
extmake(d) or abort
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
2004-02-21 08:33:24 +03:00
|
|
|
$hdrdir = $top_srcdir = srcdir
|
|
|
|
$topdir = "."
|
2002-09-08 13:08:15 +04:00
|
|
|
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
if $ignore
|
2004-04-22 13:25:16 +04:00
|
|
|
FileUtils.rm_f(%W"extinit.c extinit.#{$OBJEXT}") if $clean
|
2002-09-08 13:08:15 +04:00
|
|
|
Dir.chdir ".."
|
2004-02-17 13:34:31 +03:00
|
|
|
if $clean
|
|
|
|
Dir.rmdir('ext') rescue nil
|
2004-04-22 13:25:16 +04:00
|
|
|
FileUtils.rm_rf(extout) if $extout
|
2004-02-17 13:34:31 +03:00
|
|
|
end
|
2002-09-08 13:08:15 +04:00
|
|
|
exit
|
|
|
|
end
|
|
|
|
|
|
|
|
if $extlist.size > 0
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
$extinit ||= ""
|
|
|
|
$extobjs ||= ""
|
2003-08-12 06:12:48 +04:00
|
|
|
list = $extlist.dup
|
2004-09-02 20:54:35 +04:00
|
|
|
built = []
|
2004-01-08 01:06:38 +03:00
|
|
|
while e = list.shift
|
|
|
|
s,t,i,r = e
|
2004-09-02 20:54:35 +04:00
|
|
|
if r and !(r -= built).empty?
|
2004-01-08 01:06:38 +03:00
|
|
|
l = list.size
|
|
|
|
if (while l > 0; break true if r.include?(list[l-=1][1]) end)
|
|
|
|
list.insert(l + 1, e)
|
|
|
|
end
|
2004-04-16 03:27:12 +04:00
|
|
|
next
|
2003-08-12 06:12:48 +04:00
|
|
|
end
|
2002-09-08 13:08:15 +04:00
|
|
|
f = format("%s/%s.%s", s, i, $LIBEXT)
|
|
|
|
if File.exist?(f)
|
2003-08-06 07:11:14 +04:00
|
|
|
$extinit += "\tinit(Init_#{i}, \"#{t}.so\");\n"
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
$extobjs += "ext/#{f} "
|
2004-09-02 20:54:35 +04:00
|
|
|
built << t
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2003-08-06 07:11:14 +04:00
|
|
|
src = <<SRC
|
|
|
|
extern char *ruby_sourcefile, *rb_source_filename();
|
|
|
|
#define init(func, name) (ruby_sourcefile = src = rb_source_filename(name), func(), rb_provide(src))
|
|
|
|
void Init_ext() {\n\tchar* src;\n#$extinit}
|
|
|
|
SRC
|
2003-07-18 12:34:45 +04:00
|
|
|
if !modified?("extinit.c", MTIMES) || IO.read("extinit.c") != src
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
open("extinit.c", "w") {|f| f.print src}
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
|
|
|
|
|
|
|
$extobjs = "ext/extinit.#{$OBJEXT} " + $extobjs
|
|
|
|
if RUBY_PLATFORM =~ /m68k-human|beos/
|
2003-08-12 11:55:14 +04:00
|
|
|
$extflags.delete("-L/usr/local/lib")
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
2003-08-06 07:11:14 +04:00
|
|
|
$extpath.delete("$(topdir)")
|
|
|
|
$extflags = libpathflag($extpath) << " " << $extflags.strip
|
2002-10-22 08:19:26 +04:00
|
|
|
conf = [
|
2003-08-12 06:12:48 +04:00
|
|
|
['SETUP', $setup], [$enable_shared ? 'DLDOBJS' : 'EXTOBJS', $extobjs],
|
2003-08-12 11:55:14 +04:00
|
|
|
['EXTLIBS', $extlibs.join(' ')], ['EXTLDFLAGS', $extflags]
|
2002-10-22 08:19:26 +04:00
|
|
|
].map {|n, v|
|
|
|
|
"#{n}=#{v}" if v and !(v = v.strip).empty?
|
|
|
|
}.compact
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
puts conf
|
2002-10-27 12:04:55 +03:00
|
|
|
$stdout.flush
|
2002-11-04 00:42:14 +03:00
|
|
|
$mflags.concat(conf)
|
2002-09-08 13:08:15 +04:00
|
|
|
end
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
rubies = []
|
|
|
|
%w[RUBY RUBYW].each {|r|
|
2004-04-02 13:00:12 +04:00
|
|
|
if r = arg_config("--"+r.downcase) || config_string(r+"_INSTALL_NAME")
|
|
|
|
rubies << r+EXEEXT
|
|
|
|
end
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
Dir.chdir ".."
|
2004-04-02 13:00:12 +04:00
|
|
|
if !$extlist.empty? and $extupdate
|
2003-07-18 12:34:45 +04:00
|
|
|
rm_f(Config::CONFIG["LIBRUBY_SO"])
|
|
|
|
end
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:03:46 +04:00
|
|
|
puts "making #{rubies.join(', ')}"
|
2002-10-27 12:04:55 +03:00
|
|
|
$stdout.flush
|
2002-11-04 00:42:14 +03:00
|
|
|
$mflags.concat(rubies)
|
2002-12-31 15:31:12 +03:00
|
|
|
|
2003-01-05 10:04:10 +03:00
|
|
|
system($make, *sysquote($mflags)) or exit($?.exitstatus)
|
2002-09-08 13:08:15 +04:00
|
|
|
|
|
|
|
#Local variables:
|
|
|
|
# mode: ruby
|
|
|
|
#end:
|