class Object
Public Instance Methods
configuration(srcdir)
click to toggle source
# File ruby/lib/lib/ruby/site_ruby/2.2/mkmf-rice.rb, line 124 def configuration(srcdir) configuration = configuration_orig(srcdir) configuration.each do |config| # Make sure we link the extension using the C++ compiler config.gsub!(/^LDSHARED\s*=.*$/, "LDSHARED = #{$LDSHARED_CXX}") # Make sure set the C++ flags correctly config.gsub!(/^CXXFLAGS\s*=.*$/, "CXXFLAGS = $(CFLAGS) #{$CXXFLAGS}") end configuration << "\nCXX = #{$CXX}" return configuration end
Also aliased as: configuration_orig, configuration_orig
create_header(header = 'extconf.hpp')
click to toggle source
# File ruby/lib/lib/ruby/site_ruby/2.2/mkmf-rice.rb, line 146 def create_header(header = 'extconf.hpp') create_header_orig(header) end
Also aliased as: create_header_orig, create_header_orig
create_makefile(target, srcprefix = nil)
click to toggle source
# File ruby/lib/lib/ruby/site_ruby/2.2/mkmf-rice.rb, line 151 def create_makefile(target, srcprefix = nil) makefile_creator = RiceMakefileCreator.new makefile_creator.create_makefile(target, srcprefix) end
Also aliased as: create_makefile_orig, create_makefile_orig
init_mkmf_rice(config = CONFIG)
click to toggle source
A script to override some defaults in mkmf.rb for C++ code compilation.
If this looks like a big hack, that's because it is.
# File ruby/lib/lib/ruby/site_ruby/2.2/mkmf-rice.rb, line 27 def init_mkmf_rice(config = CONFIG) # Set some defaults that we got from autoconf -- they're more likely # to be correct than what Ruby was built with $CXX = "g++" $LIBS = "-lexecinfo -lprocstat -lcrypt -lm -lpthread -L/usr/local/lib -lc" $LIBRUBYARG = "-lruby22" $LIBRUBYARG_STATIC = "-lruby22-static" $RICE_CPPFLAGS = "" $RICE_LDFLAGS = "" $RICE_PREFIX = File.join(File.dirname(File.expand_path(__FILE__))) $RICE_USING_MINGW32 = false # We use this for the samples $DEFLIBPATH.unshift(with_config('libpath')) if with_config('libpath') lib_dirs = [] lib_dir = "#{$RICE_PREFIX}/lib" lib64_dir = "#{$RICE_PREFIX}/lib64" lib_dirs << "-L#{lib_dir}" if File.directory?(lib_dir) lib_dirs << "-L#{lib64_dir}" if File.directory?(lib64_dir) $CPPFLAGS << " #{$RICE_CPPFLAGS} -I#{$RICE_PREFIX}/include" $LDFLAGS << " #{$RICE_LDFLAGS} #{lib_dirs.join(" ")} -lrice" # Turn on debugging and verbose warnings by default on compilers that # support it $CXXFLAGS = '' if $CXX == 'g++' $CXXFLAGS << ' -Wall -g' end # Fix-up the linker used for confidence tests TRY_LINK.sub!(/^#{Regexp.quote("$(CC)")}/, $CXX) TRY_LINK.sub!(/^#{config['CC']}/, $CXX) TRY_LINK.sub!(/#{Regexp.quote("$(CFLAGS)")}/, "$(CXXFLAGS)") # Set $LDSHARED_CXX to the linker to be used for C++ libraries (usually # the C++ compiler itself) case config['target_os'] when 'darwin' $LDSHARED_CXX = replace_cc_with_cxx(config['LDSHARED']) + ' -read_only_relocs suppress' when 'mswin32' if $RICE_USING_MINGW32 then init_rice_mkmf_cross_compile_mingw2_for_vc6 end else $LDSHARED_CXX = replace_cc_with_cxx(config['LDSHARED']) end end
init_rice_mkmf_cross_compile_mingw2_for_vc6()
click to toggle source
# File ruby/lib/lib/ruby/site_ruby/2.2/mkmf-rice.rb, line 89 def init_rice_mkmf_cross_compile_mingw2_for_vc6 $LDSHARED_CXX = "#{$CXX} -shared -s" $OBJEXT = 'o' $DLDFLAGS.gsub!(/^-link.*\.pdb$/, '') constants = { :TRY_LINK => "#{$LDSHARED_CXX} -oconftest $(INCFLAGS) $(CPPFLAGS) " + "$(CFLAGS) $(src) $(LIBPATH) $(LDFLAGS) $(ARCH_FLAG) " + "$(LOCAL_LIBS) $(LIBS)", :LINK_SO => "#{$LDSHARED_CXX} $(DLDFLAGS) $(LIBPATH) -o$@ " + "$(OBJS) $(LOCAL_LIBS) $(LIBS)", :LIBARG => '-l%s', :LIBPATHFLAG => ' -L %s', :COMPILE_RULES => %w[.%s.%s:], :RULE_SUBST => '%s', :COMPILE_CXX => '$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<', :OUTFLAG => '-o', } constants.each do |name, value| Object.instance_eval { remove_const name } Object.const_set(name, value) end end
link_command(ldflags, opt='', libpath=$DEFLIBPATH|$LIBPATH)
click to toggle source
# File ruby/lib/lib/ruby/site_ruby/2.2/mkmf-rice.rb, line 138 def link_command(ldflags, opt='', libpath=$DEFLIBPATH|$LIBPATH) link_command = link_command_orig(ldflags, opt, libpath) return RbConfig::expand( link_command, 'CXXFLAGS' => "#{$CXXFLAGS}") end
Also aliased as: link_command_orig, link_command_orig
replace_cc_with_cxx(str)
click to toggle source
# File ruby/lib/lib/ruby/site_ruby/2.2/mkmf-rice.rb, line 83 def replace_cc_with_cxx(str) return str.sub( /^(cc|\$\(CC\)|#{CONFIG['CC']})(?=\s)/, $CXX) end