diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-06-09 07:41:44 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-06-09 07:41:44 +0000 |
commit | a5c0e5a382d577b900c9a49fa09547dbf602e16c (patch) | |
tree | 30c1de7503dcad76dccfe713f2a7894277cf0150 /lib | |
parent | 53a2b14909a271e54c1e5d771075be608e37fb15 (diff) |
* ext/extmk.rb.in: Use -F and -T for mswin32 because cl.exe doesn't support -o officially and cl.exe considers that *.cc and *.cxx are OBJs.
* lib/mkmf.rb: ditto.
* win32/Makefile.sub: Use del instead of rm. All these changes are derived from Nobuyoshi Nakada's patch. Thanks.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mkmf.rb | 69 |
1 files changed, 37 insertions, 32 deletions
diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 22d2b2e002..3fcb272eba 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -39,7 +39,12 @@ end $log = open('mkmf.log', 'w') -LINK = "#{CONFIG['CC']} -o conftest -I#{$hdrdir} #{CFLAGS} -I#{CONFIG['includedir']} %s %s #{CONFIG['LDFLAGS']} %s conftest.c %s %s #{CONFIG['LIBS']}" +if /mswin32/ =~ RUBY_PLATFORM + OUTFLAG = '-Fe' +else + OUTFLAG = '-o ' +end +LINK = "#{CONFIG['CC']} #{OUTFLAG}conftest -I#{$hdrdir} #{CFLAGS} -I#{CONFIG['includedir']} %s %s #{CONFIG['LDFLAGS']} %s conftest.c %s %s #{CONFIG['LIBS']}" CPP = "#{CONFIG['CPP']} -E %s -I#{$hdrdir} #{CFLAGS} -I#{CONFIG['includedir']} %s %s conftest.c" def rm_f(*files) @@ -497,49 +502,49 @@ EOMF install_rb(mfile, "$(sitelibdir)", srcdir) mfile.printf "\n" - if /mswin32/ !~ RUBY_PLATFORM - mfile.print " -.c.#{$OBJEXT}: - $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< - + unless /mswin32/ =~ RUBY_PLATFORM + src = '$<' + copt = cxxopt = '' + else + if /nmake/i =~ $make + src = '$(<:\\=/)' + else + src = '$(subst /,\\\\,$<)' + end + copt = '-Tc' + cxxopt = '-Tp' + end + unless /nmake/i =~ $make + mfile.puts " .cc.#{$OBJEXT}: - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c #{cxxopt}#{src} .cpp.#{$OBJEXT}: - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c #{cxxopt}#{src} .cxx.#{$OBJEXT}: - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c #{cxxopt}#{src} .C.#{$OBJEXT}: - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c #{cxxopt}#{src} +.c.#{$OBJEXT}: + $(CC) $(CFLAGS) $(CPPFLAGS) -c #{copt}#{src} " - elsif /nmake/i =~ $make + else mfile.print " -{$(srcdir)}.c.#{$OBJEXT}: - $(CC) $(CFLAGS) -I$(<D) $(CPPFLAGS) -c $(<:/=\\) +{$(srcdir)}.c{}.#{$OBJEXT}: + $(CC) -I. -I$(<D) $(CFLAGS) $(CPPFLAGS) -c #{copt}#{src} .c.#{$OBJEXT}: - $(CC) $(CFLAGS) -I$(<D) $(CPPFLAGS) -c $(<:/=\\) - + $(CC) $(CFLAGS) $(CPPFLAGS) -c #{copt}#{src} {$(srcdir)}.cc{}.#{$OBJEXT}: - $(CXX) -I. -I$(<D) $(CXXFLAGS) $(CPPFLAGS) -c $(<:/=\\) + $(CXX) -I. -I$(<D) $(CXXFLAGS) $(CPPFLAGS) -c #{cxxopt}#{src} .cc.#{$OBJEXT}: - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(<:/=\\) + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c #{cxxopt}#{src} {$(srcdir)}.cpp{}.#{$OBJEXT}: - $(CXX) -I. -I$(<D) $(CXXFLAGS) $(CPPFLAGS) -c $(<:/=\\) + $(CXX) -I. -I$(<D) $(CXXFLAGS) $(CPPFLAGS) -c #{cxxopt}#{src} .cpp.#{$OBJEXT}: - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(<:/=\\) + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c #{cxxopt}#{src} {$(srcdir)}.cxx{}.#{$OBJEXT}: - $(CXX) -I. -I$(<D) $(CXXFLAGS) $(CPPFLAGS) -c $(<:/=\\) + $(CXX) -I. -I$(<D) $(CXXFLAGS) $(CPPFLAGS) -c #{cxxopt}#{src} .cxx.#{$OBJEXT}: - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(<:/=\\) -" - else - mfile.print " -.SUFFIXES: .#{$OBJEXT} - -.c.#{$OBJEXT}: - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(subst /,\\\\,$<) - -.cc.#{$OBJEXT} .cpp.#{$OBJEXT} .cxx.#{$OBJEXT} .C.#{$OBJEXT}: - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(subst /,\\\\,$<) + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c #{cxxopt}#{src} " end @@ -552,7 +557,7 @@ EOMF mfile.print "\tenv LIB='$(subst /,\\\\,$(LIBPATH));$(LIB)' \\\n" end end - mfile.print "\t$(LDSHARED) $(DLDFLAGS) -o $(DLLIB) $(OBJS) $(LIBS) $(LOCAL_LIBS)\n" + mfile.print "\t$(LDSHARED) $(DLDFLAGS) #{OUTFLAG}$(DLLIB) $(OBJS) $(LIBS) $(LOCAL_LIBS)\n" elsif not File.exist?(target + ".c") and not File.exist?(target + ".cc") mfile.print "$(DLLIB): $(OBJS)\n" case RUBY_PLATFORM |