aboutsummaryrefslogtreecommitdiffstats
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
parent3baef1fc22f01634b908b598beee280b7788cc36 (diff)
downloadruby-a0f7f36a5a47098c30125d3ad5c19db71fc34960.tar.gz
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
-rw-r--r--ChangeLog5
-rw-r--r--lib/mkmf.rb21
-rw-r--r--win32/Makefile.sub2
3 files changed, 23 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 6227999184..082993361e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Nov 28 21:18:57 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/mkmf.rb (MakeMakefile#each_compile_rules): splat $(*VPATH*) for
+ each VPATH elements.
+
Wed Nov 28 16:40:14 2012 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* vm_core.h (enum rb_thread_status): remove THREAD_TO_KILL
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
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index ed1ab127ea..4d291e27fe 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -829,7 +829,7 @@ s,@LINK_SO@,@if exist $$(@).manifest $$(RM) $$(@:/=\).manifest,;t t
!endif
s,@COMPILE_C@,$$(CC) $$(INCFLAGS) $$(CFLAGS) $$(CPPFLAGS) $$(COUTFLAG)$$(@) -c -Tc$$(<:\=/),;t t
s,@COMPILE_CXX@,$$(CXX) $$(INCFLAGS) $$(CXXFLAGS) $$(CPPFLAGS) $$(COUTFLAG)$$(@) -c -Tp$$(<:\=/),;t t
-s,@COMPILE_RULES@,{$$(hdrdir)}.%s.%s: {$$(topdir)}.%s.%s: {$$(srcdir)}.%s.%s: .%s.%s:,;t t
+s,@COMPILE_RULES@,{$$(*VPATH*)}.%s.%s: .%s.%s:,;t t
s,@RULE_SUBST@,{.;$$(VPATH)}%s,;t t
s,@TRY_LINK@,$$(CC) -Feconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS) -link $$(LDFLAGS) $$(LIBPATH) $$(XLDFLAGS),;t t
s,@COMMON_LIBS@,$(COMMON_LIBS),;t t