diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib/mkmf.rb | 15 |
2 files changed, 15 insertions, 6 deletions
@@ -1,4 +1,8 @@ -Sun Sep 23 21:48:08 2012 Nobuyoshi Nakada <nobu@ruby-lang.org> +Sun Sep 23 21:51:59 2012 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * lib/mkmf.rb (String#unspace): unescape with backslashes. normal + makes need to escape spaces with backslashes. nmake is not the + case. [Bug #7036] * lib/mkmf.rb (create_makefile): use timestamp file dependencies for directories. diff --git a/lib/mkmf.rb b/lib/mkmf.rb index a01d317756..b77e7da231 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -12,6 +12,11 @@ class String /\s/ =~ self ? "\"#{self}\"" : "#{self}" end + # Escape whitespaces for Makefile. + def unspace + gsub(/\s/, '\\\\\\&') + end + # Generates a string used as cpp macro name. def tr_cpp strip.upcase.tr_s("^A-Z0-9_*", "_").tr_s("*", "P") @@ -1749,9 +1754,9 @@ ECHO = $(ECHO1:0=@echo) #### Start of system configuration section. #### #{"top_srcdir = " + $top_srcdir.sub(%r"\A#{Regexp.quote($topdir)}/", "$(topdir)/") if $extmk} -srcdir = #{srcdir.gsub(/\$\((srcdir)\)|\$\{(srcdir)\}/) {mkintpath(CONFIG[$1||$2])}.quote} -topdir = #{mkintpath($extmk ? CONFIG["topdir"] : $topdir).quote} -hdrdir = #{mkintpath(CONFIG["hdrdir"]).quote} +srcdir = #{srcdir.gsub(/\$\((srcdir)\)|\$\{(srcdir)\}/) {mkintpath(CONFIG[$1||$2]).unspace}} +topdir = #{mkintpath($extmk ? CONFIG["topdir"] : $topdir).unspace} +hdrdir = #{mkintpath(CONFIG["hdrdir"]).unspace} arch_hdrdir = #{$arch_hdrdir.quote} VPATH = #{vpath.join(CONFIG['PATH_SEPARATOR'])} } @@ -1762,9 +1767,9 @@ VPATH = #{vpath.join(CONFIG['PATH_SEPARATOR'])} if destdir = prefix[$dest_prefix_pattern, 1] mk << "\nDESTDIR = #{destdir}\n" end - mk << "prefix = #{with_destdir(prefix)}\n" + mk << "prefix = #{with_destdir(prefix).unspace}\n" CONFIG.each do |key, var| - mk << "#{key} = #{with_destdir(mkintpath(var))}\n" if /.prefix$/ =~ key + mk << "#{key} = #{with_destdir(mkintpath(var)).unspace}\n" if /.prefix$/ =~ key end CONFIG.each do |key, var| next if /^abs_/ =~ key |