[MLton] OpenGL
Stephen Weeks
MLton@mlton.org
Wed, 21 Jan 2004 20:24:51 -0800
> That's unfortunate - you need glut.h. As you might have guessed I'm not up
> on the latest Linux stuff but Google just turned this up re installing GLUT
> and RH 9.0:
>
> http://www.opengl.org/discussion_boards/ubb/Forum2/HTML/015138.html
Thanks for the link. I went ahead and installed the rpms for RedHat 8
as suggested by one poster at opengl.org. With that in place, some
case sensitivity fixes, and the right linker args, I built and ran:
atom, hello, shortest, solar, spin_cube, and triangle. Quite neat!
BTW, when I run, I get the following warning.
Xlib: extension "XFree86-DRI" missing on display ":0.0".
As to the changes, you might want to add GLUT_h.h, GLU_h.h, and GL_h.h
to the .cvsignore. Also, I created GL.cm with the contents
Group is
GL.sig
GL.sml
GLUT.sig
GLUT.sml
GLU.sig
GLU.sml
(note the case). I tweaked all the other .cm files to refer to this.
E.g. atom.cm is
Group is
GL.cm
atom.sml
Finally, I changed the Makefile as below.
BTW, in my cygwin.bat file I have
set CYGWIN=binmode check_case:strict ntsec tty
I believe the check_case:strict makes Cygwin case sensitive, which
might be good to do while you're developing code that has to work on
Linux too.
Overall, it looks great. I'm looking forward to running blender.
--------------------------------------------------------------------------------
Index: Makefile
===================================================================
RCS file: /cvsroot/mlton/mlton/lib/opengl/mlton/Makefile,v
retrieving revision 1.10
diff -u -r1.10 Makefile
--- Makefile 21 Jan 2004 07:55:09 -0000 1.10
+++ Makefile 22 Jan 2004 04:17:05 -0000
@@ -1,6 +1,6 @@
mlton = mlton
MLTONFLAGS = -verbose 0
-GL_LINK_OPTS = -link-opt -L/lib/w32api -link-opt -lglut32 -link-opt -lglu32 -link-opt -lopengl32
+GL_LINK_OPTS = -link-opt '-lglut -lGLU -lGL'
CPPFLAGS = -P -C -x c -E
@@ -79,25 +79,25 @@
test: shortest hello solar atom triangle spin_cube blender
shortest: $(GLUT_SML) $(GL_SML) shortest.sml
- mlton $(GL_LINK_OPTS) shortest.cm Gl_c.c Glut_c.c
+ mlton $(GL_LINK_OPTS) shortest.cm GL_c.o GLUT_c.o
hello: $(GLUT_SML) $(GLU_SML) $(GL_SML) hello.sml
- mlton $(GL_LINK_OPTS) hello.cm Gl_c.c Glut_c.c
+ mlton $(GL_LINK_OPTS) hello.cm GL_c.o GLUT_c.o
solar: $(GLUT_SML) $(GLU_SML) $(GL_SML) solar.sml
- mlton $(GL_LINK_OPTS) solar.cm Gl_c.c Glut_c.c
+ mlton $(GL_LINK_OPTS) solar.cm GL_c.o GLUT_c.o
atom: $(GLUT_SML) $(GLU_SML) $(GL_SML) atom.sml
- mlton $(GL_LINK_OPTS) atom.cm Gl_c.c Glut_c.c
+ mlton $(GL_LINK_OPTS) atom.cm GL_c.o GLUT_c.o
triangle: $(GLUT_SML) $(GLU_SML) $(GL_SML) triangle.sml
- mlton $(GL_LINK_OPTS) triangle.cm Gl_c.c Glut_c.c
+ mlton $(GL_LINK_OPTS) triangle.cm GL_c.o GLUT_c.o
spin_cube: $(GLUT_SML) $(GLU_SML) $(GL_SML) spin_cube.sml
- mlton $(GL_LINK_OPTS) spin_cube.cm Gl_c.c Glut_c.c
+ mlton $(GL_LINK_OPTS) spin_cube.cm GL_c.o GLUT_c.o
blender: $(GLUT_SML) $(GLU_SML) $(GL_SML) blender.sml
- mlton $(GL_LINK_OPTS) blender.cm Gl_c.c Glut_c.c
+ mlton $(GL_LINK_OPTS) blender.cm GL_c.o GLUT_c.o
clean:
rm -f *_h.h *.stackdump *~ *.o *.exe Glut *.a hello shortest atom solar triangle spin_cube blender