summaryrefslogtreecommitdiff
path: root/lib/mkmf.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-28 12:19:49 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-28 12:19:49 +0000
commita0f7f36a5a47098c30125d3ad5c19db71fc34960 (patch)
tree2617e6c1f3be9a4481f35a7b8e831a2b3b0b9f6a /lib/mkmf.rb
parent3baef1fc22f01634b908b598beee280b7788cc36 (diff)
mkmf.rb: each_compile_rules
* lib/mkmf.rb (MakeMakefile#each_compile_rules): splat $(*VPATH*) for each VPATH elements. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/mkmf.rb')
-rw-r--r--lib/mkmf.rb21
1 files changed, 17 insertions, 4 deletions
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 83ff06f029..d41e0c3552 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -1879,6 +1879,19 @@ all install static install-so install-rb: Makefile
RULES
end
+ def each_compile_rules
+ vpath_splat = /\$\(\*VPATH\*\)/
+ COMPILE_RULES.each do |rule|
+ if vpath_splat =~ rule
+ $VPATH.each do |path|
+ yield rule.sub(vpath_splat) {path}
+ end
+ else
+ yield rule
+ end
+ end
+ end
+
# Processes the data contents of the "depend" file. Each line of this file
# is expected to be a file name.
#
@@ -1889,7 +1902,7 @@ RULES
depout = []
cont = implicit = nil
impconv = proc do
- COMPILE_RULES.each {|rule| depout << (rule % implicit[0]) << implicit[1]}
+ each_compile_rules {|rule| depout << (rule % implicit[0]) << implicit[1]}
implicit = nil
end
ruleconv = proc do |line|
@@ -2208,13 +2221,13 @@ site-install-rb: install-rb
compile_command = "\n\t$(ECHO) compiling $(<#{rsep})\n\t$(Q) %s\n\n"
CXX_EXT.each do |e|
- COMPILE_RULES.each do |rule|
+ each_compile_rules do |rule|
mfile.printf(rule, e, $OBJEXT)
mfile.printf(compile_command, COMPILE_CXX)
end
end
C_EXT.each do |e|
- COMPILE_RULES.each do |rule|
+ each_compile_rules do |rule|
mfile.printf(rule, e, $OBJEXT)
mfile.printf(compile_command, COMPILE_C)
end
@@ -2297,7 +2310,7 @@ site-install-rb: install-rb
$LIBPATH = []
$INSTALLFILES = []
$NONINSTALLFILES = [/~\z/, /\A#.*#\z/, /\A\.#/, /\.bak\z/i, /\.orig\z/, /\.rej\z/, /\.l[ao]\z/, /\.o\z/]
- $VPATH = %w[$(srcdir) $(arch_hdrdir)/ruby $(hdrdir)/ruby]
+ $VPATH = %w[$(srcdir) $(topdir) $(arch_hdrdir)/ruby $(hdrdir)/ruby]
$objs = nil
$srcs = nil