import os from Params import pprint import Params import Common def build(bld): obj = bld.create_obj('cc', 'plugin') obj.target = 'xmmsclient_ext' obj.includes = '../../../include ../../../includepriv' obj.source = "rb_xmmsclient_main.c rb_xmmsclient.c rb_playlist.c rb_collection.c rb_result.c".split() obj.uselib_local = 'xmmsclient' obj.uselib = 'ruby' obj.install_in = "ARCHDIR_ruby" obj.env["plugin_PREFIX"] = '' Common.install_files('LIBDIR_ruby', '.', 'xmmsclient.rb') Common.install_files('LIBDIR_ruby', 'xmmsclient', 'sync.rb') Common.install_files('LIBDIR_ruby', 'xmmsclient', 'async.rb') # glib obj = bld.create_obj('cc', 'plugin') obj.target = 'xmmsclient_glib' obj.includes = '../../../include ../../../includepriv' obj.source = ['rb_xmmsclient_glib.c'] obj.uselib_local = 'xmmsclient-glib xmmsclient' obj.uselib = 'ruby glib2' obj.install_in = "ARCHDIR_ruby" obj.env["plugin_PREFIX"] = '' # ecore if 'src/clients/lib/xmmsclient-ecore' in bld.env_of_name('default')['XMMS_OPTIONAL_BUILD']: obj = bld.create_obj('cc', 'plugin') obj.target = 'xmmsclient_ecore' obj.includes = '../../../include ../../../includepriv' obj.source = ['rb_xmmsclient_ecore.c'] obj.uselib_local = 'xmmsclient-ecore xmmsclient' obj.uselib = 'ruby ecore' obj.install_in = "ARCHDIR_ruby" obj.env["plugin_PREFIX"] = '' def configure(conf): if Params.g_options.rubybinary: ruby = Params.g_options.rubybinary else: ruby = conf.find_program('ruby', var='RUBY') if not ruby: return False version = os.popen(ruby + " -e 'puts defined?(VERSION) ? VERSION : RUBY_VERSION'").read().strip() if not version or [int(a) for a in version.split(".")] < [1, 8]: conf.check_message('ruby version', '> 1.8', False, version) return False conf.check_message('ruby version', '> 1.8', True, version) ruby_h = os.popen(ruby + " -rrbconfig -e 'puts File.exist?(Config::CONFIG[\"archdir\"] + \"/ruby.h\")'").read().strip() if ruby_h != 'true': conf.check_message('ruby', 'header file', False) return False conf.check_message('ruby', 'header file', True) dir = os.popen(ruby + " -rrbconfig -e 'puts \"%s\" % [].fill(Config::CONFIG[\"archdir\"], 0..1)'").read().strip() conf.env["CCFLAGS_ruby"] = '-I%s' % dir conf.env["LINKFLAGS_ruby"] = '-L%s' % dir if not Params.g_options.rubyarchdir: conf.env["ARCHDIR_ruby"] = os.popen(ruby + " -rrbconfig -e 'print Config::CONFIG[\"sitearchdir\"]'").read().strip() else: conf.env["ARCHDIR_ruby"] = Params.g_options.rubyarchdir if not Params.g_options.rubylibdir: conf.env["LIBDIR_ruby"] = os.popen(ruby + " -rrbconfig -e 'print Config::CONFIG[\"sitelibdir\"]'").read().strip() else: conf.env["LIBDIR_ruby"] = Params.g_options.rubylibdir return True def set_options(opt): opt.add_option('--with-ruby-archdir', type="string", dest="rubyarchdir") opt.add_option('--with-ruby-libdir', type="string", dest="rubylibdir") opt.add_option('--with-ruby-binary', type='string', dest='rubybinary')