1 %define __strip %{_mingw32_strip}
2 %define __objdump %{_mingw32_objdump}
3 %define _use_internal_dependency_generator 0
4 %define __find_requires %{_mingw32_findrequires}
5 %define __find_provides %{_mingw32_findprovides}
7 Name: mingw32-ocaml-lablgl
10 Summary: MinGW Windows port of LablGL is an OpenGL interface
13 Group: Development/Libraries
15 URL: http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgl.html
16 Source0: http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/dist/lablgl-%{version}.tar.gz
18 # Patches from native Fedora package:
19 Patch0: lablgl-tk8.5.patch
21 Patch1000: mingw32-ocaml-lablgl-1.03-make-fixes.patch
22 Patch1001: mingw32-ocaml-lablgl-1.03-no-toplevel.patch
23 Patch1002: mingw32-ocaml-lablgl-1.03-evil-glut-header.patch
25 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
28 BuildRequires: mingw32-filesystem >= 38
29 BuildRequires: mingw32-gcc
30 BuildRequires: mingw32-binutils
32 BuildRequires: mingw32-ocaml >= 3.11.0
34 # labltk is used by the native package, but is essentially optional.
35 #BuildRequires: mingw32-ocaml-labtk
37 # Because of the evil glut patch above, we in fact use the
38 # native GLUT header files.
39 BuildRequires: freeglut-devel
42 LablGL is is an Objective Caml interface to OpenGL. Support is
43 included for use inside LablTk, and LablGTK also includes specific
44 support for LablGL. It can be used either with proprietary OpenGL
45 implementations (SGI, Digital Unix, Solaris...), with XFree86 GLX
46 extension, or with open-source Mesa.
48 This is the MinGW Windows port of this package. Currently it does not
49 support Togl (Tk integration).
53 %setup -q -n lablgl-%{version}
60 cat > Makefile.config <<__EOF__
61 CAMLC = %{_mingw32_target}-ocamlc
62 CAMLOPT = %{_mingw32_target}-ocamlopt
63 BINDIR = %{_mingw32_bindir}
64 #XINCLUDES = -I%{_prefix}/X11R6/include
65 #XLIBS = -lXext -lXmu -lX11
66 #TKINCLUDES = -I%{_includedir}
67 GLINCLUDES = -DHAS_GLEXT_H -DGL_GLEXT_PROTOTYPES -DGLU_VERSION_1_3
68 GLLIBS = -lglu32 -lopengl32
70 RANLIB = i686-pc-mingw32-ranlib
75 # NB: The next two lines have a space after them.
76 MKLIB = i686-pc-mingw32-ar rcs
77 MKDLL = i686-pc-mingw32-ocamlmklib -o
78 LIBDIR = %{_libdir}/%{_mingw32_target}-ocaml
79 DLLDIR = %{_libdir}/%{_mingw32_target}-ocaml/stublibs
80 INSTALLDIR = %{_libdir}/%{_mingw32_target}-ocaml/lablGL
82 #COPTS = $RPM_OPT_FLAGS
87 make LIBRARIAN=i686-pc-mingw32-ocamlmklib lib glut libopt glutopt
91 rm -rf $RPM_BUILD_ROOT
93 mkdir -p $RPM_BUILD_ROOT%{_mingw32_bindir}
94 mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{_mingw32_target}-ocaml/lablGL
95 mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{_mingw32_target}-ocaml/stublibs
96 make INSTALLDIR=$RPM_BUILD_ROOT%{_libdir}/%{_mingw32_target}-ocaml/lablGL \
97 DLLDIR=$RPM_BUILD_ROOT%{_libdir}/%{_mingw32_target}-ocaml/stublibs \
98 BINDIR=$RPM_BUILD_ROOT%{_mingw32_bindir} \
101 # Make and install a META file.
105 archive(byte) = "lablgl.cma"
106 archive(native) = "lablgl.cmxa"
108 cp META $RPM_BUILD_ROOT%{_libdir}/%{_mingw32_target}-ocaml/lablGL
110 # Remove unnecessary *.ml files (ones which have a *.mli).
111 pushd $RPM_BUILD_ROOT%{_libdir}/%{_mingw32_target}-ocaml/lablGL
113 b=`basename $f .ml`; \
114 if [ -f "$b.mli" ]; then \
122 rm -rf $RPM_BUILD_ROOT
126 %defattr(-,root,root)
127 %{_mingw32_bindir}/lablglut.bat
128 %{_libdir}/%{_mingw32_target}-ocaml/lablGL/
129 %{_libdir}/%{_mingw32_target}-ocaml/stublibs/dlllablgl.dll
130 %{_libdir}/%{_mingw32_target}-ocaml/stublibs/dlllablglut.dll
134 * Sun Nov 23 2008 Richard W.M. Jones <rjones@redhat.com> - 1.03-3
135 - Initial RPM release.