diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | lib/mkmf.rb | 31 |
2 files changed, 36 insertions, 6 deletions
@@ -1,4 +1,13 @@ -Fri Jan 23 14:36:06 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> +Fri Jan 23 15:12:52 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * lib/mkmf.rb (mkintpath): new function which converts native path + to format acceptable in Makefile. + + * lib/mkmf.rb (configuration): leaves PATH_SEPARATOR unchanged. + + * lib/mkmf.rb (configuration): convers srcdir, topdir and hdrdir. + a patch by Alexey Borzenkov <snaury AT gmail.com> at + [ruby-core:21448]. * lib/mkmf.rb (try_func): got rid of c-mode confusion. diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 0f6f61d984..da84cb85cc 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -1299,6 +1299,29 @@ def winsep(s) s.tr('/', '\\') end +# Converts native path to format acceptable in Makefile +# +# Internal use only. +# +if !CROSS_COMPILING + case CONFIG['build_os'] + when 'mingw32' + def mkintpath(path) + # mingw uses make from msys and it needs special care + # converts from C:\some\path to /C/some/path + path = path.dup + path.tr!('\\', '/') + path.sub!(/\A([A-Za-z]):(?=\/)/, '/\1') + path + end + end +end +unless defined?(mkintpath) + def mkintpath(path) + path + end +end + def configuration(srcdir) mk = [] vpath = $VPATH.dup @@ -1308,8 +1331,6 @@ def configuration(srcdir) if CONFIG['target_os'] != 'cygwin' vpath = vpath.map {|p| p.sub(/.*/, '$(shell cygpath -u \&)')} end - when 'mingw32' - CONFIG['PATH_SEPARATOR'] = ';' end end CONFIG["hdrdir"] ||= $hdrdir @@ -1318,9 +1339,9 @@ SHELL = /bin/sh #### Start of system configuration section. #### #{"top_srcdir = " + $top_srcdir.sub(%r"\A#{Regexp.quote($topdir)}/", "$(topdir)/") if $extmk} -srcdir = #{srcdir.gsub(/\$\((srcdir)\)|\$\{(srcdir)\}/) {CONFIG[$1||$2]}.quote} -topdir = #{($extmk ? CONFIG["topdir"] : $topdir).quote} -hdrdir = #{CONFIG["hdrdir"].quote} +srcdir = #{srcdir.gsub(/\$\((srcdir)\)|\$\{(srcdir)\}/) {mkintpath(CONFIG[$1||$2])}.quote} +topdir = #{mkintpath($extmk ? CONFIG["topdir"] : $topdir).quote} +hdrdir = #{mkintpath(CONFIG["hdrdir"]).quote} arch_hdrdir = #{$arch_hdrdir} VPATH = #{vpath.join(CONFIG['PATH_SEPARATOR'])} } |