From: nobuyoshi nakada Date: 2005-08-26T12:30:40+09:00 Subject: Re: [ ruby-Bugs-2308 ] Problem with mkmf and spaces in directory names? Hi, At Fri, 26 Aug 2005 10:49:02 +0900, U.Nakamura wrote in [ruby-core:05683]: > Ruby building process uses mkmf.rb. > The process is running on miniruby.exe, and it can not require > any extention libraries. Does this patch help? Index: lib/mkmf.rb =================================================================== RCS file: /cvs/ruby/src/ruby/lib/mkmf.rb,v retrieving revision 1.224 diff -U2 -p -u -r1.224 mkmf.rb --- lib/mkmf.rb 12 Jul 2005 14:32:36 -0000 1.224 +++ lib/mkmf.rb 26 Aug 2005 03:26:35 -0000 @@ -216,5 +216,4 @@ end def xsystem command - Config.expand(command) Logging::open do puts command.quote @@ -224,5 +223,4 @@ end def xpopen command, *mode, &block - Config.expand(command) Logging::open do case mode[0] @@ -263,29 +261,31 @@ end def link_command(ldflags, opt="", libpath=$LIBPATH) Config::expand(TRY_LINK.dup, - 'hdrdir' => $hdrdir, - 'src' => CONFTEST_C, - 'INCFLAGS' => $INCFLAGS, - 'CPPFLAGS' => $CPPFLAGS, - 'CFLAGS' => "#$CFLAGS", - 'ARCH_FLAG' => "#$ARCH_FLAG", - 'LDFLAGS' => "#$LDFLAGS #{ldflags}", - 'LIBPATH' => libpathflag(libpath), - 'LOCAL_LIBS' => "#$LOCAL_LIBS #$libs", - 'LIBS' => "#$LIBRUBYARG_STATIC #{opt} #$LIBS") + CONFIG.merge('hdrdir' => $hdrdir.quote, + 'src' => CONFTEST_C, + 'INCFLAGS' => $INCFLAGS, + 'CPPFLAGS' => $CPPFLAGS, + 'CFLAGS' => "#$CFLAGS", + 'ARCH_FLAG' => "#$ARCH_FLAG", + 'LDFLAGS' => "#$LDFLAGS #{ldflags}", + 'LIBPATH' => libpathflag(libpath), + 'LOCAL_LIBS' => "#$LOCAL_LIBS #$libs", + 'LIBS' => "#$LIBRUBYARG_STATIC #{opt} #$LIBS")) end def cc_command(opt="") - "$(CC) -c #$INCFLAGS -I#{$hdrdir} " \ - "#$CPPFLAGS #$CFLAGS #$ARCH_FLAG #{opt} #{CONFTEST_C}" + Config::expand("$(CC) -c #$INCFLAGS -I$(hdrdir) " \ + "#$CPPFLAGS #$CFLAGS #$ARCH_FLAG #{opt} #{CONFTEST_C}", + CONFIG.merge('hdrdir' => $hdrdir.quote)) end def cpp_command(outfile, opt="") - "$(CPP) #$INCFLAGS -I#{$hdrdir} " \ - "#$CPPFLAGS #$CFLAGS #{opt} #{CONFTEST_C} #{outfile}" + Config::expand("$(CPP) #$INCFLAGS -I$(hdrdir) " \ + "#$CPPFLAGS #$CFLAGS #{opt} #{CONFTEST_C} #{outfile}", + CONFIG.merge('hdrdir' => $hdrdir.quote)) end def libpathflag(libpath=$LIBPATH) libpath.map{|x| - (x == "$(topdir)" ? LIBPATHFLAG : LIBPATHFLAG+RPATHFLAG) % x + (x == "$(topdir)" ? LIBPATHFLAG : LIBPATHFLAG+RPATHFLAG) % x.quote }.join end @@ -850,5 +850,5 @@ SHELL = /bin/sh #### Start of system configuration section. #### -srcdir = #{srcdir.gsub(/\$\((srcdir)\)|\$\{(srcdir)\}/) {CONFIG[$1||$2]}} +srcdir = #{srcdir.gsub(/\$\((srcdir)\)|\$\{(srcdir)\}/) {CONFIG[$1||$2]}.quote} topdir = #{($extmk ? CONFIG["topdir"] : $topdir).quote} hdrdir = #{$extmk ? CONFIG["hdrdir"].quote : '$(topdir)'} -- Nobu Nakada