# -*- coding: utf-8 -*- %w[../../../rucy/lib ../../lib].each do |path| $: << File.expand_path(File.join File.dirname(__FILE__), *path.split('/')) end require 'rubygems' require 'mkmf' require 'rucy/module' require 'rays/module' DEBUG = ENV['DEBUG'] || false DEFS = [] INCDIRS = %w[/opt/local/include /opt/include] + Rucy.include_dirs + Rays.include_dirs LIBDIRS = %w[] + Rucy.library_dirs + Rays.library_dirs HEADERS = %w[ boost/scoped_array.hpp boost/shared_ptr.hpp ruby.h rucy.h rays.h ] LIBS = %w[stdc++ rucy rays] FRAMEWORKS = %w[] DEFS << '_DEBUG' if DEBUG case RUBY_PLATFORM when /mswin|ming|cygwin/ DEFS << 'WINDOWS' << 'WIN32' << $~[0].upcase LIBS.unshift 'gdi32', 'opengl32' when /darwin/ DEFS << 'COCOA' FRAMEWORKS << 'AppKit' << 'OpenGL' end $CPPFLAGS << DEFS.map {|s| " -D#{s}"}.join $CPPFLAGS << INCDIRS.map {|s| " -I#{s}"}.join $LDFLAGS << LIBDIRS.map {|s| " -L#{s}"}.join $LDFLAGS << FRAMEWORKS.map {|s| " -framework #{s}"}.join $LOCAL_LIBS << ' -lrucy' dir_config 'boost' dir_config 'rucy', Rucy.root_dir dir_config 'rays', Rays.root_dir Config::CONFIG.each {|key, val| val.gsub!(/gcc/, 'g++')} exit 1 unless HEADERS.all? {|s| have_header(s)} exit 1 unless LIBS.all? {|s| have_library(s)} create_makefile 'rays/native'