[opam-devel] [ocaml-opengl] lablgl.1.04
Wojciech Meyer
wojciech.meyer at gmail.com
Sat Mar 30 19:12:09 GMT 2013
Hi Florent,
For the Windows users: I'd talk to Adrien Nader and maybe provide a
binary package for LablGL for Windows through Yypkg. At the moment the
packages are crosscompiled on the linux box and there are about 50 of
them. I'm putting Adrien on the recipient list.
- Wojciech
Florent Monnier <monnier.florent at gmail.com> writes:
> Hi,
>
> On my Windows test environment I can not use "lablgl-20120306" because
> of the glShader module that I myself provided before I get a Windows
> test environment.
>
> But the vanilla "lablgl-1.04" works fine.
>
> If I've understood correctly Opam is a source package manager, so
> maybe opam could provide "lablgl.1.04" for Windows users that have a
> similar environment than mine ?
>
> My windows test environment is:
> Windows 7 starter with protz's ocaml version 4.00.1
>
> Well in this environment only lablgl itself compiles out of the box.
> LablGlut does not.
> Togl (Tk) does not either.
> (I think that the devel libs for both glut and tkgl are there)
>
> LablGlut and Togl are for windowing, so if we use OCamlSDL instead
> this is just fine we don't need these. OCamlSDL1 compiles out of the
> box in my win env.
>
> In this environment I compile the Vanilla LablGL like this:
>
> cp Makefile.config.mingw Makefile.config
> # need to add -I/usr/include, the patch below does this:
> patch < Makefile.config-cygwin-needs-I_usr_include.patch
>
> # don't build anything else than lablgl itself or we get errors:
> make lib
> make libopt
>
> LABLGL_INSTALLDIR="/tmp/mylblgl0"
> make install INSTALLDIR="$LABLGL_INSTALLDIR"
> # it seems that the file "dlllablgl.dll" is not installed, so:
> cp src/dlllablgl.dll "$LABLGL_INSTALLDIR"/
>
> Now a hello-world works fine.
> (I'm providing this hello at the end after the config patch)
>
> ===============
>
> $ cat Makefile.config-cygwin-needs-I_usr_include.patch
> +++ Makefile.config~ 2013-03-12 18:11:58.945140000 +0100
> --- Makefile.config 2013-03-30 13:55:08.524315300 +0100
> @@ -35,7 +35,7 @@
> -lws2_32 -luser32 -lgdi32
>
> # Where to find OpenGL/Mesa/Glut headers and libraries
> -GLINCLUDES = -DHAS_GLEXT_H -DGL_GLEXT_PROTOTYPES -DGLU_VERSION_1_3
> +GLINCLUDES = -I/usr/include -DHAS_GLEXT_H -DGL_GLEXT_PROTOTYPES
> -DGLU_VERSION_1_3
> GLLIBS = -lglu32 -lopengl32
> GLLIBS0 = $(GLLIBS)
> GLUTLIBS = -lglut32
>
>
> ============
>
> $ cat lblgl_hello.ml
> let display () =
> GlClear.color (0.0, 0.0, 0.0);
> GlClear.clear [`color];
> GlDraw.color (1.0, 1.0, 0.0);
> GlMat.mode `projection;
> GlMat.load_identity ();
> GlMat.ortho ~x:(-1.0,1.0) ~y:(-1.0,1.0) ~z:(-1.0,1.0);
> GlDraw.begins `polygon;
> GlDraw.vertex ~x:(-0.5) ~y:(-0.5) ();
> GlDraw.vertex ~x:(-0.5) ~y:(0.5) ();
> GlDraw.vertex ~x:(0.5) ~y:(0.5) ();
> GlDraw.vertex ~x:(0.5) ~y:(-0.5) ();
> GlDraw.ends ();
> Gl.flush ()
>
> let () =
> Sdl.init [`EVERYTHING];
> let _ =
> Sdlvideo.set_video_mode ~w:640 ~h:400
> [`HWSURFACE; `DOUBLEBUF; `OPENGL; `RESIZABLE]
> in
> for i = 1 to 6 do
> display ();
> Sdlgl.swap_buffers ();
> Sdltimer.delay 1000;
> done;
> Sdl.quit ()
>
>
> # using full windows path, because protz's ocaml doesn't like cygwin ones:
> $ ocaml bigarray.cma -I +site-lib/sdl sdl.cma -I
> C:/cygwin/tmp/mylblgl0 lablgl.cma lblgl_hello.ml
>
>
> ===========
>
> # completely untested, just copied and modified from "lablgl.20120306"
>
> $ cat opam
>
> opam-version: "1"
> maintainer: "contact at ocamlpro.com"
> homepage: "https://forge.ocamlcore.org/projects/lablgl/"
> authors: [
> "Jacques Garrigue"
> "Isaac Trotts"
> "Erick Tryzelaar"
> "Christophe Raffali"
> ]
> # "Jon Harrop" contributed the files "gluTess.ml" / "ml_glutess.c"
> # should he be considered as one of the authors? or just a contributor?
> build: [
> ["cp" "Makefile.config.ex" "Makefile.config"]
> ["cp" "Makefile.config.osx" "Makefile.config"] {"%{os}%" = "darwin"}
> ["cp" "Makefile.config.mingw" "Makefile.config"] {"%{os}%" =
> "windows 7 starter with protz's ocaml 4"}
>
> ["mkdir" "-p" "%{bin}%"]
>
> # [make "glut"] ### do not build this one, it doesn't compile out of
> the box in my W env
> # [make "glutopt"] ### do not build this one, it doesn't compile out
> of the box in my W env
>
> ### in my W env, only build lablgl.{cma,cmxa}
> [make "lib"]
> [make "libopt"]
>
> [make "install" "-C" "src" "BINDIR=%{bin}%"
> "INSTALLDIR=%{lib}%/lablgl" "DLLDIR=%{lib}%/stublibs"]
> # it seems that the makefile forgets to install this one:
> ["cp" "src/dlllablgl.dll" "DLLDIR=%{lib}%/stublibs"] {"%{os:env}%" =
> "win7::protz"}
>
> ### do not install LablGlut, it doesn't compile out of the box in my W env
> ### [make "install" "-C" "LablGlut/src" "BINDIR=%{bin}%"
> "INSTALLDIR=%{lib}%/lablgl" "DLLDIR=%{lib}%/stublibs"]
> ]
--
Wojciech Meyer
http://danmey.org
More information about the opam-devel
mailing list