require 'rbuild-cfamily' if RUBY_PLATFORM =~ /darwin/ then def build_rgc(arch, sdk) objects = build_objects( :sources => $sources, :source_to_object_name => Proc.new do |source| source.sub(/Source\/(.*)\..*/, "Build/#{arch}/\\1.o") end, :extra_cflags => "-I../Thirdparty/Root/#{arch}/include " + "-I../Thirdparty/Root/#{arch}/include/ruby " + "-I../Thirdparty/Root/#{arch}/include/freetype2 " + "-F../Thirdparty/Root/universal/Frameworks " + "-arch #{arch} " + "-isysroot /Developer/SDKs/MacOSX#{sdk}.sdk") archives = [ "../Thirdparty/Root/#{arch}/lib/libfreetype.a", "../Thirdparty/Root/#{arch}/lib/libpng.a", "../Thirdparty/Root/#{arch}/lib/libruby-static.a" ] build_executable( :executable => "Build/#{arch}/RubyGameCommon", :extra_linker_flags => "-arch #{arch} " + "-isysroot /Developer/SDKs/MacOSX#{sdk}.sdk " + "-lstdc++ -lSystem", :objects => objects, :archives => archives, :framework_search_paths => $framework_search_paths, :frameworks => $frameworks, :libraries => $libraries) end $sources = Dir['Source/*.c'] $sources -= ['Source/main.c'] $sources += Dir['Source/*.m'] $framework_search_paths = ['../Thirdparty/Root/universal/Frameworks'] $frameworks = ['Cocoa', 'CoreAudio', 'OpenAL', 'OpenGL', 'GLUT'] $libraries = ['System', 'z'] build_rgc('ppc', '10.3.9') build_rgc('i386', '10.4u') build( :targets => ['RubyGameCommon'], :dependencies => ['Build/ppc/RubyGameCommon', 'Build/i386/RubyGameCommon'], :command => "lipo -create -output RubyGameCommon Build/ppc/RubyGameCommon Build/i386/RubyGameCommon", :message => "Building Universal Binary for RubyGameCommon") elsif RUBY_PLATFORM =~ /linux/ then ruby_header_dir = '.' $LOAD_PATH.each do |path| if File.exists?("#{path}/ruby.h") then ruby_header_dir = path break end end ruby_library = 'ruby' ['ruby', 'ruby1.8'].each do |library| if File.exists?("/usr/lib/lib#{library}.so") then ruby_library = library break end end objects = build_objects( :extra_cflags => "-Ddeprecated=nodeprecated -I#{ruby_header_dir} #{`freetype-config --cflags`.chomp}", :sources => Dir['Source/*.c']) build_executable( :executable => "RubyGameCommon", :objects => objects, :library_search_paths => [], :libraries => [ 'GL', 'GLU', 'glut', 'X11', 'alut', 'openal', 'freetype', 'png', 'z', ruby_library]) end