From: David Masover Date: 2008-05-28T17:14:23+09:00 Subject: ruby-opengl gem uses ruby1.9, even from gem1.8 This is on an Ubuntu Hardy system, on x86_64. Both Ruby 1.8 and 1.9 are installed. I was tracking down the lack of ruby.h, which surprised me, as ruby1.8-dev is installed. Scrolling up even further, though, and something just seems wrong about these three lines: rake RUBYARCHDIR=/var/lib/gems/1.8/gems/ruby-opengl-0.60.0/lib RUBYLIBDIR=/var/lib/gems/1.8/gems/ruby-opengl-0.60.0/lib extension /usr/bin/ruby1.9 mkrf_conf.rb (in /var/lib/gems/1.8/gems/ruby-opengl-0.60.0) Why is ruby1.9 being used to run mkrf_conf.rb? I am using a 1.8 gem -- as you can see, it's trying to install in a 1.8 path, and: $ head -1 `which gem` #! /usr/bin/ruby1.8 $ head -1 `which gem1.9` #!/usr/bin/ruby1.9 I am sure I was using 'gem', and not 'gem1.9'. Full log from /var/lib/gems/1.8/gems/ruby-opengl-0.60.0/gem_make.out: rake RUBYARCHDIR=/var/lib/gems/1.8/gems/ruby-opengl-0.60.0/lib RUBYLIBDIR=/var/lib/gems/1.8/gems/ruby-opengl-0.60.0/lib extension /usr/bin/ruby1.9 mkrf_conf.rb (in /var/lib/gems/1.8/gems/ruby-opengl-0.60.0) rake cc -fPIC -fno-strict-aliasing -g -fPIC -Wall -DRUBY_VERSION=190 -I/usr/include/ruby-1.9.0 -I/usr/include/ruby-1.9.0/x86_64-linux -I/usr/lib/ruby/1.9.0/x86_64-linux -I/usr/local/lib/site_ruby/1.9.0 -I. -c gl.c (in /var/lib/gems/1.8/gems/ruby-opengl-0.60.0/ext/gl) In file included from gl.c:18: ../common/common.h:25:18: error: ruby.h: No such file or directory In file included from ../common/common.h:51, from gl.c:18: ../common/gl-error.h:16: warning: parameter names (without types) in function declaration ../common/gl-error.h:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘error_checking’ ../common/gl-error.h:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘inside_begin_end’ In file included from ../common/common.h:54, from gl.c:18: ../common/conv.h: In function ‘num2double’: ../common/conv.h:55: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:55: warning: implicit declaration of function ‘FIXNUM_P’ ../common/conv.h:55: warning: implicit declaration of function ‘FIX2LONG’ ../common/conv.h:55: warning: implicit declaration of function ‘TYPE’ ../common/conv.h:55: error: ‘T_FLOAT’ undeclared (first use in this function) ../common/conv.h:55: error: (Each undeclared identifier is reported only once ../common/conv.h:55: error: for each function it appears in.) ../common/conv.h:55: warning: implicit declaration of function ‘RFLOAT’ ../common/conv.h:55: error: invalid type argument of ‘->’ ../common/conv.h:55: error: ‘Qtrue’ undeclared (first use in this function) ../common/conv.h:55: error: ‘Qfalse’ undeclared (first use in this function) ../common/conv.h:55: error: ‘Qnil’ undeclared (first use in this function) ../common/conv.h:55: warning: implicit declaration of function ‘rb_num2dbl’ ../common/conv.h: In function ‘num2int’: ../common/conv.h:62: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:62: error: ‘T_FLOAT’ undeclared (first use in this function) ../common/conv.h:62: error: invalid type argument of ‘->’ ../common/conv.h:62: error: ‘Qtrue’ undeclared (first use in this function) ../common/conv.h:62: error: ‘Qfalse’ undeclared (first use in this function) ../common/conv.h:62: error: ‘Qnil’ undeclared (first use in this function) ../common/conv.h:62: warning: implicit declaration of function ‘NUM2LONG’ ../common/conv.h: In function ‘num2uint’: ../common/conv.h:63: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:63: warning: implicit declaration of function ‘FIX2ULONG’ ../common/conv.h:63: error: ‘T_FLOAT’ undeclared (first use in this function) ../common/conv.h:63: error: invalid type argument of ‘->’ ../common/conv.h:63: error: ‘Qtrue’ undeclared (first use in this function) ../common/conv.h:63: error: ‘Qfalse’ undeclared (first use in this function) ../common/conv.h:63: error: ‘Qnil’ undeclared (first use in this function) ../common/conv.h:63: warning: implicit declaration of function ‘NUM2ULONG’ ../common/conv.h: At top level: ../common/conv.h:114: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cond_GLBOOL2RUBY’ ../common/conv.h:115: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cond_GLBOOL2RUBY_U’ ../common/conv.h:116: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cond_GLBOOL2RUBY_LL’ ../common/conv.h:117: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cond_GLBOOL2RUBY_ULL’ ../common/conv.h:118: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cond_GLBOOL2RUBY_F’ ../common/conv.h:119: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cond_GLBOOL2RUBY_D’ ../common/conv.h: In function ‘ary2cint’: ../common/conv.h:142: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:142: warning: implicit declaration of function ‘RARRAY’ ../common/conv.h:142: warning: implicit declaration of function ‘rb_Array’ ../common/conv.h:142: warning: assignment makes pointer from integer without a cast ../common/conv.h:142: error: dereferencing pointer to incomplete type ../common/conv.h:142: error: dereferencing pointer to incomplete type ../common/conv.h:142: error: dereferencing pointer to incomplete type ../common/conv.h:142: warning: implicit declaration of function ‘rb_ary_entry’ ../common/conv.h:142: error: ‘VALUE’ undeclared (first use in this function) ../common/conv.h:142: error: expected ‘)’ before ‘ary’ ../common/conv.h: In function ‘ary2cuint’: ../common/conv.h:143: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:143: warning: assignment makes pointer from integer without a cast ../common/conv.h:143: error: dereferencing pointer to incomplete type ../common/conv.h:143: error: dereferencing pointer to incomplete type ../common/conv.h:143: error: dereferencing pointer to incomplete type ../common/conv.h:143: error: ‘VALUE’ undeclared (first use in this function) ../common/conv.h:143: error: expected ‘)’ before ‘ary’ ../common/conv.h: In function ‘ary2cbyte’: ../common/conv.h:144: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:144: warning: assignment makes pointer from integer without a cast ../common/conv.h:144: error: dereferencing pointer to incomplete type ../common/conv.h:144: error: dereferencing pointer to incomplete type ../common/conv.h:144: error: dereferencing pointer to incomplete type ../common/conv.h:144: error: ‘VALUE’ undeclared (first use in this function) ../common/conv.h:144: error: expected ‘)’ before ‘ary’ ../common/conv.h: In function ‘ary2cubyte’: ../common/conv.h:145: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:145: warning: assignment makes pointer from integer without a cast ../common/conv.h:145: error: dereferencing pointer to incomplete type ../common/conv.h:145: error: dereferencing pointer to incomplete type ../common/conv.h:145: error: dereferencing pointer to incomplete type ../common/conv.h:145: error: ‘VALUE’ undeclared (first use in this function) ../common/conv.h:145: error: expected ‘)’ before ‘ary’ ../common/conv.h: In function ‘ary2cshort’: ../common/conv.h:146: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:146: warning: assignment makes pointer from integer without a cast ../common/conv.h:146: error: dereferencing pointer to incomplete type ../common/conv.h:146: error: dereferencing pointer to incomplete type ../common/conv.h:146: error: dereferencing pointer to incomplete type ../common/conv.h:146: error: ‘VALUE’ undeclared (first use in this function) ../common/conv.h:146: error: expected ‘)’ before ‘ary’ ../common/conv.h: In function ‘ary2cushort’: ../common/conv.h:147: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:147: warning: assignment makes pointer from integer without a cast ../common/conv.h:147: error: dereferencing pointer to incomplete type ../common/conv.h:147: error: dereferencing pointer to incomplete type ../common/conv.h:147: error: dereferencing pointer to incomplete type ../common/conv.h:147: error: ‘VALUE’ undeclared (first use in this function) ../common/conv.h:147: error: expected ‘)’ before ‘ary’ ../common/conv.h: In function ‘ary2cboolean’: ../common/conv.h:148: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:148: warning: assignment makes pointer from integer without a cast ../common/conv.h:148: error: dereferencing pointer to incomplete type ../common/conv.h:148: error: dereferencing pointer to incomplete type ../common/conv.h:148: error: dereferencing pointer to incomplete type ../common/conv.h:148: error: ‘VALUE’ undeclared (first use in this function) ../common/conv.h:148: error: expected ‘)’ before ‘ary’ ../common/conv.h: In function ‘ary2cfloat’: ../common/conv.h:149: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:149: warning: assignment makes pointer from integer without a cast ../common/conv.h:149: error: dereferencing pointer to incomplete type ../common/conv.h:149: error: dereferencing pointer to incomplete type ../common/conv.h:149: error: dereferencing pointer to incomplete type ../common/conv.h:149: error: ‘VALUE’ undeclared (first use in this function) ../common/conv.h:149: error: expected ‘)’ before ‘ary’ ../common/conv.h: In function ‘ary2cdouble’: ../common/conv.h:150: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:150: warning: assignment makes pointer from integer without a cast ../common/conv.h:150: error: dereferencing pointer to incomplete type ../common/conv.h:150: error: dereferencing pointer to incomplete type ../common/conv.h:150: error: dereferencing pointer to incomplete type ../common/conv.h:150: error: ‘VALUE’ undeclared (first use in this function) ../common/conv.h:150: error: expected ‘)’ before ‘ary’ ../common/conv.h: In function ‘ary2cmatdouble’: ../common/conv.h:176: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:176: warning: implicit declaration of function ‘rb_funcall’ ../common/conv.h:176: warning: implicit declaration of function ‘rb_intern’ ../common/conv.h:176: error: invalid type argument of ‘->’ ../common/conv.h:176: warning: implicit declaration of function ‘rb_raise’ ../common/conv.h:176: error: ‘rb_eArgError’ undeclared (first use in this function) ../common/conv.h: In function ‘ary2cmatfloat’: ../common/conv.h:177: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:177: error: invalid type argument of ‘->’ ../common/conv.h:177: error: ‘rb_eArgError’ undeclared (first use in this function) ../common/conv.h: In function ‘ary2cmatdoublecount’: ../common/conv.h:200: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:200: warning: implicit declaration of function ‘RARRAY_LEN’ ../common/conv.h:200: warning: implicit declaration of function ‘xfree’ ../common/conv.h:200: error: ‘rb_eArgError’ undeclared (first use in this function) ../common/conv.h: In function ‘ary2cmatfloatcount’: ../common/conv.h:201: error: expected declaration specifiers before ‘VALUE’ ../common/conv.h:201: error: ‘rb_eArgError’ undeclared (first use in this function) In file included from gl.c:18: ../common/common.h: At top level: ../common/common.h:81: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cProc’ ../common/common.h: In function ‘glformat_size’: ../common/common.h:173: error: ‘rb_eArgError’ undeclared (first use in this function) ../common/common.h: In function ‘gltype_glformat_unit_size’: ../common/common.h:231: error: ‘rb_eArgError’ undeclared (first use in this function) ../common/common.h: In function ‘get_uniform_size’: ../common/common.h:316: error: ‘rb_eTypeError’ undeclared (first use in this function) ../common/common.h: At top level: ../common/common.h:338: error: expected declaration specifiers or ‘...’ before ‘VALUE’ ../common/common.h: In function ‘CheckDataSize’: ../common/common.h:344: warning: implicit declaration of function ‘RSTRING_LEN’ ../common/common.h:344: error: ‘data’ undeclared (first use in this function) ../common/common.h:345: error: ‘rb_eArgError’ undeclared (first use in this function) ../common/common.h: At top level: ../common/common.h:349: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘allocate_buffer_with_string’ ../common/common.h: In function ‘load_gl_function’: ../common/common.h:390: error: ‘rb_eNotImpError’ undeclared (first use in this function) ../common/common.h: At top level: ../common/common.h:395: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘pack_array_or_pass_string’ gl.c:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘module’ gl.c:22: warning: parameter names (without types) in function declaration gl.c:23: warning: parameter names (without types) in function declaration gl.c:24: warning: parameter names (without types) in function declaration gl.c:25: warning: parameter names (without types) in function declaration gl.c:26: warning: parameter names (without types) in function declaration gl.c:27: warning: parameter names (without types) in function declaration gl.c:28: warning: parameter names (without types) in function declaration gl.c:29: warning: parameter names (without types) in function declaration gl.c:30: warning: parameter names (without types) in function declaration gl.c:31: warning: parameter names (without types) in function declaration gl.c:32: warning: parameter names (without types) in function declaration gl.c:33: warning: parameter names (without types) in function declaration gl.c:34: warning: parameter names (without types) in function declaration gl.c:35: warning: parameter names (without types) in function declaration gl.c: In function ‘GetOpenglVersion’: gl.c:49: error: ‘error_checking’ undeclared (first use in this function) gl.c:49: error: ‘Qtrue’ undeclared (first use in this function) gl.c:49: error: ‘inside_begin_end’ undeclared (first use in this function) gl.c:49: error: ‘Qfalse’ undeclared (first use in this function) gl.c:51: warning: implicit declaration of function ‘sscanf’ gl.c:51: warning: incompatible implicit declaration of built-in function ‘sscanf’ gl.c: In function ‘GetOpenglExtensions’: gl.c:79: error: ‘error_checking’ undeclared (first use in this function) gl.c:79: error: ‘Qtrue’ undeclared (first use in this function) gl.c:79: error: ‘inside_begin_end’ undeclared (first use in this function) gl.c:79: error: ‘Qfalse’ undeclared (first use in this function) gl.c:81: warning: implicit declaration of function ‘strlen’ gl.c:81: warning: incompatible implicit declaration of built-in function ‘strlen’ gl.c:82: warning: implicit declaration of function ‘ALLOC_N’ gl.c:82: error: expected expression before ‘GLchar’ gl.c:82: warning: assignment makes pointer from integer without a cast gl.c:83: warning: implicit declaration of function ‘strcpy’ gl.c:83: warning: incompatible implicit declaration of built-in function ‘strcpy’ gl.c: In function ‘CheckExtension’: gl.c:106: warning: incompatible implicit declaration of built-in function ‘strlen’ gl.c:107: error: expected expression before ‘GLchar’ gl.c:107: warning: assignment makes pointer from integer without a cast gl.c:108: warning: incompatible implicit declaration of built-in function ‘strcpy’ gl.c:112: warning: implicit declaration of function ‘strstr’ gl.c:112: warning: incompatible implicit declaration of built-in function ‘strstr’ gl.c: In function ‘CheckVersionExtension’: gl.c:128: warning: incompatible implicit declaration of built-in function ‘sscanf’ gl.c: At top level: gl.c:140: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘IsAvailable’ gl.c:142: error: expected identifier or ‘(’ before ‘{’ token gl.c: In function ‘CheckBufferBinding’: gl.c:175: error: ‘rb_eRuntimeError’ undeclared (first use in this function) gl.c:179: error: ‘error_checking’ undeclared (first use in this function) gl.c:179: error: ‘Qtrue’ undeclared (first use in this function) gl.c:179: error: ‘inside_begin_end’ undeclared (first use in this function) gl.c:179: error: ‘Qfalse’ undeclared (first use in this function) gl.c: In function ‘Init_gl’: gl.c:185: error: ‘VALUE’ undeclared (first use in this function) gl.c:185: error: expected ‘;’ before ‘VERSION’ gl.c:187: error: ‘module’ undeclared (first use in this function) gl.c:187: warning: implicit declaration of function ‘rb_define_module’ gl.c:189: warning: implicit declaration of function ‘rb_define_const’ gl.c:189: error: ‘VERSION’ undeclared (first use in this function) gl.c:208: warning: implicit declaration of function ‘rb_define_module_function’ gl.c:208: error: ‘IsAvailable’ undeclared (first use in this function) rake aborted! Command failed with status (1): [cc -fPIC -fno-strict-aliasing -g -fPIC ...] /var/lib/gems/1.8/gems/ruby-opengl-0.60.0/ext/gl/Rakefile:29:in `block in ' (See full trace by running task with --trace) rake aborted! Command failed with status (1): [rake...] (See full trace by running task with --trace)