Permalink
Browse files

* lib/mkmf.rb (create_makefile): add dependency to header files when

  depend files don't exist.  now we can remove simple (and often
  wrong) depend files in most cases.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information...
1 parent 3721fb0 commit ce5af582a0552d1ccbe66e8b3ee3ca046f6b18c3 @unak unak committed Aug 23, 2012
Showing with 11 additions and 1 deletion.
  1. +6 −0 ChangeLog
  2. +5 −1 lib/mkmf.rb
View
6 ChangeLog
@@ -1,3 +1,9 @@
+Thu Aug 23 16:12:40 2012 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * lib/mkmf.rb (create_makefile): add dependency to header files when
+ depend files don't exist. now we can remove simple (and often
+ wrong) depend files in most cases.
+
Thu Aug 23 16:02:20 2012 Koichi Sasada <ko1@atdot.net>
* ext/date/depend: add dependency to $(ruby_headers).
View
6 lib/mkmf.rb
@@ -50,6 +50,7 @@ module MakeMakefile
CXX_EXT.concat(%w[C])
end
SRC_EXT = C_EXT + CXX_EXT
+ HDR_EXT = %w[h hpp]
$static = nil
$config_h = '$(arch_hdrdir)/ruby/config.h'
$default_static = $static
@@ -2016,6 +2017,8 @@ def create_makefile(target, srcprefix = nil)
end
$srcs = srcs
+ hdrs = Dir[File.join(srcdir, "*.{#{HDR_EXT.join(%q{,})}}")]
+
target = nil if $objs.empty?
if target and EXPORT_PREFIX
@@ -2069,6 +2072,7 @@ def create_makefile(target, srcprefix = nil)
ORIG_SRCS = #{orig_srcs.collect(&File.method(:basename)).join(' ')}
SRCS = $(ORIG_SRCS) #{(srcs - orig_srcs).collect(&File.method(:basename)).join(' ')}
OBJS = #{$objs.join(" ")}
+HDRS = #{hdrs.map{|h| '$(srcdir)/' + File.basename(h)}.join(' ')}
TARGET = #{target}
TARGET_NAME = #{target && target[/\A\w+/]}
TARGET_ENTRY = #{EXPORT_PREFIX || ''}Init_$(TARGET_NAME)
@@ -2228,7 +2232,7 @@ def create_makefile(target, srcprefix = nil)
if File.exist?(depend)
mfile.print("###\n", *depend_rules(File.read(depend)))
else
- mfile.print "$(OBJS): $(ruby_headers)\n"
+ mfile.print "$(OBJS): $(HDRS) $(ruby_headers)\n"
end
$makefile_created = true

0 comments on commit ce5af58

Please sign in to comment.