Hello.  I have been trying without success to successfully compile the
Ruby_OpenGL interface to run under Windows.  I have tried all three of the
distributions from the RAA (31, 32 and 32a).

The first two seem unable to locate the native opengl modules, while 32a
locates them, but make produces the listing appended below.

I am doing this on a Windows ME machines under cygwin 1.3.3 downloaded form
the Cygnus site.  Noboyuki Horie was kind enough to send me some changes to
glu.c that he used to make it work wiht MS VC++.  However, my problems is
that I am trying to get it to work as part of the normal Cygnus
distribution.

I am not really a C programmer and have never used the Cygnus products
before, so I may have misunderstood this task.  I have been trying to run
the three commands
	ruby extconf.rb
	make
	make install
from the cygwin bash command line.  Since I do not have a C complier or make
installed on the Windows machine, they will not run from the MS-DOS prompt.

Basically, I have three questions.

1. Could the Ruby_OpenGL interface be made into a binary distribution for
Windows or must it be recompiled for each target machine?  This is going to
be a big problem if every machine is slightly different and requires a
recompile. (And if such a universal binary exists, could somebody send it to
me!)
2. If I'm on the right track with the above, could my problem be that I do
not have the proper Cygnus components installed?  I'm not sure what
components I need to have available beyond the bash shell, gcc and make. I
note that there was an opengl module, for instance, but loading it did not
seem to make a difference.
3. Is there something in this compiler listing that is obvious to fix for
more experienced C programmers?  I tired editing the glu.c file and applying
the changes that Noboyuki Horie suggested [ruby-talk:21179].  It did
eliminate the first set of error messages, the "warning about passing
argument 3)" but did not eliminate the second set.  I could not figure out
how to proceed from there.

I realize I am out of my depth here, and if the answer is wait until the
next release, then I can put this project on the back burner.  However, I've
burned a lot of hours in the last week trying to figure this out, and I as
least want other who may be proceeding down the same path to have the
benefit of my experience.

Thanks,
Anthony


$ ruby extconf.rb
checking for () in -lopengl32... yes
checking for () in -lglu32... yes
creating Makefile
checking for XAllowDeviceEvents() in -lXi... no
checking for () in -lglut32... yes
creating Makefile
$
$Make all
Now Making opengl extend module
make[1]: Entering directory `/cygdrive/c/cygwin/opengl'
gcc -DUSEIMPORTLIB -Os  -DWIN32 -I/cygdrive/c/RUBY/lib/ruby/1.6/i386-cygwin 
-I/usr/local/cygwin-local/include    -I/usr/local/cygwin-local/include -c -o
glu.o glu.c
make[1]: Leaving directory `/cygdrive/c/cygwin/opengl'
glu.c: In function `glu_TessCallback':
glu.c:787: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c:798: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c:809: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c:820: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c:831: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c:839: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c:846: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c:853: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c:860: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c:867: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c:874: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c:881: warning: passing arg 3 of `gluTessCallback' from incompatible
pointer type
glu.c: In function `InitializeGLU':
glu.c:1479: `GLU_BEGIN' undeclared (first use in this function)
glu.c:1479: (Each undeclared identifier is reported only once
glu.c:1479: for each function it appears in.)
glu.c:1480: `GLU_VERTEX' undeclared (first use in this function)
glu.c:1481: `GLU_END' undeclared (first use in this function)
glu.c:1482: `GLU_ERROR' undeclared (first use in this function)
glu.c:1483: `GLU_EDGE_FLAG' undeclared (first use in this function)
glu.c:1484: `GLU_CW' undeclared (first use in this function)
glu.c:1485: `GLU_CCW' undeclared (first use in this function)
glu.c:1486: `GLU_INTERIOR' undeclared (first use in this function)
glu.c:1487: `GLU_EXTERIOR' undeclared (first use in this function)
glu.c:1488: `GLU_UNKNOWN' undeclared (first use in this function)
make[1]: *** [glu.o] Error 1
make: *** [opengl.so] Error 2
$