]> git.pld-linux.org Git - packages/ocaml.git/blame - ocaml.spec
- whitespace cleanup
[packages/ocaml.git] / ocaml.spec
CommitLineData
3105856a
JB
1#
2# Conditional build:
543c01fb 3%bcond_without emacs # emacs subpackage
5d260c4d 4%bcond_without x # X11 support
543c01fb
JB
5%bcond_without ocaml_opt # native, optimized compiler
6
7# ppc64, sparc64 and x32 variants not supported currently
8# alpha, hppa, ia64, mips removed since 4.00
5d260c4d 9%ifnarch %{ix86} %{x8664} arm aarch64 ppc sparc sparcv9
543c01fb 10%undefine with_ocaml_opt
dc9de8a5 11%endif
4797676b 12
e091ab7c 13%define sver 4.02
db184753 14
65fbc6c7 15Summary: The Objective Caml compiler and programming environment
6e95eae7 16Summary(pl.UTF-8): Kompilator OCamla (Objective Caml) oraz środowisko programistyczne
65fbc6c7 17Name: ocaml
27676bd0 18Version: 4.02.2
6cd4c8e4 19Release: 2
4694cc06 20Epoch: 1
e091ab7c 21License: QPL v1.0 with linking exception (compiler), LGPL v2 with linking exception (library)
65fbc6c7 22Group: Development/Languages
e091ab7c 23Source0: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{version}.tar.xz
27676bd0 24# Source0-md5: a453ab62931776a78ba761112db9e00b
e091ab7c
JB
25Source1: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman-html.tar.gz
26# Source1-md5: 915a1949f7af7186e16354e9682dc1e5
307e1de8 27Source2: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.ps.gz
e091ab7c 28# Source2-md5: e85016fa23b6525d1d10da06010fd90a
9de25172 29Source3: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.info.tar.gz
e091ab7c
JB
30# Source3-md5: 265b7db123e925e8b7b70ca2266b4206
31Source4: https://github.com/mmottl/pure-fun/archive/v1.0.13/pure-fun-1.0.13.tar.gz
32# Source4-md5: 0a6ff033df78d0880fe4883ace025ebe
33# note: dead URL
34Source5: http://www.ocaml.info/ocaml_sources/ds-contrib.tar.gz
35# Source5-md5: 77fa1da7375dea1393cc0b6cd802d7e1
9de25172
JB
36Patch1: %{name}-CFLAGS.patch
37Patch2: %{name}-as_needed.patch
dc9de8a5 38Patch3: x32.patch
8b0de54e 39URL: http://caml.inria.fr/
3232e3f5 40%{?with_x:BuildRequires: xorg-lib-libX11-devel}
f4710e3c 41%if %{with emacs}
69735a4b 42BuildRequires: sed >= 4.0
3889f6d2
JR
43BuildRequires: emacs
44BuildRequires: emacs-common
f4710e3c 45%endif
4e386054 46Requires: %{name}-runtime = %{epoch}:%{version}-%{release}
c9701af2 47Provides: ocaml-bytes-devel
5a1e52bf
PG
48Provides: ocaml-ocamldoc
49Obsoletes: ocaml-ocamldoc
c9701af2 50Obsoletes: ocaml-bytes-devel
151fbae6 51BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
65fbc6c7 52
0053154a
PS
53%define specflags -fno-strict-aliasing
54
65fbc6c7
AM
55%description
56Objective Caml is a high-level, strongly-typed, functional and
57object-oriented programming language from the ML family of languages.
58
59This package comprises two batch compilers (a fast bytecode compiler
5ca6b9fb
MP
60and an optimizing native-code compiler), an interactive toplevel
61system, Lex&Yacc tools, a replay debugger, and a comprehensive
62library.
65fbc6c7 63
3f556f71 64%description -l pl.UTF-8
e091ab7c
JB
65OCaml (Objective Caml) jest funkcyjnym, obiektowo zorientowanym
66językiem wysokiego poziomu z silnym typowaniem. Należy do rodziny
67języków ML.
65fbc6c7 68
8151bf1e 69Ten pakiet zawiera dwa kompilatory (szybki kompilator do bajtkodu
e091ab7c
JB
70oraz optymalizujący kompilator do kodu natywnego), interaktywne
71środowisko pracy, narzędzia do tworzenia analizatorów leksykalnych
72oraz składniowych (ocamllex, ocamlyacc), odpluskwiacz (ocamldebug) i
73biblioteki.
65fbc6c7 74
79502218
JB
75%package runtime
76Summary: Runtime system for OCaml
6e95eae7 77Summary(pl.UTF-8): Środowisko uruchomieniowe dla OCamla
79502218
JB
78Group: Libraries
79
80%description runtime
81This package contains binaries needed to run bytecode OCaml programs:
82ocamlrun bytecode interpreter, and basic dynamic link libraries.
83
3f556f71
JR
84%description runtime -l pl.UTF-8
85Pakiet ten zawiera binaria potrzebne do uruchamiania programów w
e091ab7c
JB
86OCamlu skompilowanych do bajtkodu: interpreter bajtkodu (ocamlrun)
87oraz podstawowe biblioteki linkowane dynamicznie.
79502218
JB
88
89%package lib-source
90Summary: Sources of OCaml standard library
6e95eae7 91Summary(pl.UTF-8): Źródła biblioteki standardowej OCamla
79502218
JB
92Group: Development/Languages
93Requires: %{name} = %{epoch}:%{version}-%{release}
94
95%description lib-source
e091ab7c
JB
96This sources come helpful during debugging of user programs with
97ocamldebug.
79502218 98
3f556f71
JR
99%description lib-source -l pl.UTF-8
100Źródła te są przydatne przy odpluskwianiu programów użytkownika
101z użyciem ocamldebug.
79502218 102
69735a4b 103%package doc-html
104Summary: HTML documentation for OCaml
6e95eae7 105Summary(pl.UTF-8): Dokumentacja dla OCamla w formacie HTML
69735a4b 106Group: Development/Tools
107
108%description doc-html
109HTML documentation for OCaml.
110
3f556f71 111%description doc-html -l pl.UTF-8
69735a4b 112Dokumentacja dla OCamla w formacie HTML.
113
13b509d1 114%package doc-ps
4797676b 115Summary: PostScript documentation for OCaml
6e95eae7 116Summary(pl.UTF-8): Dokumentacja dla OCamla w formacie PostScript
4797676b 117Group: Development/Tools
4797676b 118
13b509d1 119%description doc-ps
69735a4b 120PostScript documentation for OCaml.
4797676b 121
3f556f71 122%description doc-ps -l pl.UTF-8
69735a4b 123Dokumentacja dla OCamla w formacie PostScript.
124
125%package doc-info
126Summary: Info documentation for OCaml
6e95eae7 127Summary(pl.UTF-8): Dokumentacja info dla OCamla
69735a4b 128Group: Development/Tools
129
130%description doc-info
131Info documentation for OCaml.
132
3f556f71 133%description doc-info -l pl.UTF-8
69735a4b 134Dokumentacja info dla OCamla.
4797676b 135
65fbc6c7 136%package emacs
c4a5fbda 137Summary: Emacs mode for OCaml
6e95eae7 138Summary(pl.UTF-8): Tryb OCamla dla Emacsa
65fbc6c7 139Group: Development/Tools
4694cc06 140Requires: %{name} = %{epoch}:%{version}-%{release}
65fbc6c7
AM
141
142%description emacs
981ff793 143Emacs mode files for Objective Caml language.
65fbc6c7 144
3f556f71 145%description emacs -l pl.UTF-8
8151bf1e 146Pliki trybu OCamla dla Emacsa.
56260732 147
79502218
JB
148%package x11graphics
149Summary: X11 graphic output for OCaml
6e95eae7 150Summary(pl.UTF-8): Dostęp do X11 dla OCamla
79502218 151Group: Development/Libraries
4694cc06 152Requires: %{name} = %{epoch}:%{version}-%{release}
56260732 153
79502218
JB
154%description x11graphics
155x11graphics module gives OCaml program access to drawing in X11
156windows. This package contains files needed to run bytecode OCaml
157programs using x11graphics.
56260732 158
3f556f71
JR
159%description x11graphics -l pl.UTF-8
160Moduł x11graphics daje programom napisanym w OCamlu możliwość
79502218 161korzystania z interfejsu graficznego X11. Pakiet ten zawiera binaria
3f556f71 162potrzebne do uruchamiania programów używających x11graphics.
981ff793
MM
163
164%package x11graphics-devel
165Summary: X11 graphic output for OCaml
6e95eae7 166Summary(pl.UTF-8): Dostęp do X11 dla OCamla
981ff793 167Group: Development/Libraries
4694cc06 168Requires: %{name}-x11graphics = %{epoch}:%{version}-%{release}
981ff793
MM
169
170%description x11graphics-devel
171x11graphics module gives OCaml program access to drawing in X11
172windows. This package contains files needed to develop OCaml programs
173using x11graphics.
174
3f556f71
JR
175%description x11graphics-devel -l pl.UTF-8
176Moduł x11graphics daje programom napisanym w OCamlu możliwość
8151bf1e 177korzystania z interfejsu graficznego X11. Pakiet ten zawiera pliki
3f556f71 178niezbędne do tworzenia programów używających x11graphics.
56260732 179
6dfc0e1a 180%package compiler-objects
981ff793 181Summary: Compiled parts of OCaml compiler
6e95eae7 182Summary(pl.UTF-8): Skompilowane części kompilatora OCamla
981ff793 183Group: Development/Languages
4694cc06 184Requires: %{name} = %{epoch}:%{version}-%{release}
6adc6dd7 185Provides: ocaml-devel
27676bd0 186Obsoletes: ocaml-devel
981ff793 187
6dfc0e1a 188%description compiler-objects
981ff793
MM
189This package contains *.cmi and *.cmo files being parts of OCaml
190compiler. They are needed to compile some programs.
191
3f556f71
JR
192%description compiler-objects -l pl.UTF-8
193Pakiet ten zawiera pliki *.cmi oraz *.cmo będące częściami kompilatora
194OCamla. Są one wymagane do kompilacji niektórych programów.
981ff793 195
13b509d1
MM
196%package ocamldoc-devel
197Summary: Files needed to develop programs using ocamldoc
6e95eae7 198Summary(pl.UTF-8): Pliki potrzebne do tworzenia programów używających ocamldoc
13b509d1 199Group: Development/Languages
4694cc06 200Requires: %{name} = %{epoch}:%{version}-%{release}
13b509d1
MM
201
202%description ocamldoc-devel
203You need this package if you are going to write ocamldoc front end or
204something like that.
205
3f556f71
JR
206%description ocamldoc-devel -l pl.UTF-8
207Będziesz potrzebować tego pakietu, jeśli zamierzasz pisać front end
208dla ocamldoc lub coś podobnego.
13b509d1 209
53fbd845
MM
210# maybe we'll want to add some more stuff here?
211%package examples
212Summary: Example source code for OCaml
6e95eae7 213Summary(pl.UTF-8): Przykładowe kody źródłowe w OCamlu
53fbd845 214Group: Development/Languages
4694cc06 215Requires: %{name} = %{epoch}:%{version}-%{release}
53fbd845
MM
216
217%description examples
63004413 218This packages contains sources for Okasaki's Purely Functional
53fbd845
MM
219Datastructures in OCaml, along with some contributions.
220
3f556f71
JR
221%description examples -l pl.UTF-8
222Pakiet ten zawiera źródła Czysto Funkcyjnych Struktur Danych
8151bf1e 223autorstwa Okasaki'ego, napisane w OCamlu, wraz z dodatkami.
53fbd845 224
65fbc6c7 225%prep
e091ab7c 226%setup -q -a1 -a3
19e77905 227mkdir examples
e091ab7c
JB
228tar xzf %{SOURCE4} -C examples
229tar xzf %{SOURCE5} -C examples
56260732 230# order mess with docs somewhat
69735a4b 231mkdir -p docs/html
56260732 232mv htmlman docs/html/ocaml
fa4b2219 233cp %{SOURCE2} docs/ocaml.ps.gz
4c1e0f62 234%patch1 -p1
56260732 235%patch2 -p1
dc9de8a5 236%patch3 -p1
69735a4b 237
5d260c4d 238%build
ed19172f 239cp -f /usr/share/automake/config.sub config/gnu
65fbc6c7 240./configure \
dc9de8a5 241 -host %{_target_platform} \
5d260c4d 242 -cc "%{__cc}" \
65fbc6c7
AM
243 -bindir %{_bindir} \
244 -libdir %{_libdir}/%{name} \
245 -mandir %{_mandir}/man1 \
2e6ceb74 246 -with-pthread \
0053154a 247 -x11lib %{_libdir}
65fbc6c7 248
543c01fb 249%{__make} -j1 world bootstrap %{?with_ocaml_opt:opt.opt} \
dc9de8a5
JR
250 CFLAGS="%{rpmcflags} -Wall -DUSE_INTERP_RESULT"
251
252%{__make} -C tools objinfo \
253 CFLAGS="%{rpmcflags} -Wall -DUSE_INTERP_RESULT" -j1
65fbc6c7
AM
254
255%install
5ca6b9fb 256rm -rf $RPM_BUILD_ROOT
e091ab7c 257install -d $RPM_BUILD_ROOT{%{_includedir},%{_infodir},%{_examplesdir}/%{name}-%{version}}
7ff0f82f 258install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/site-lib
e42e1457 259
7ae05805 260%{__make} install \
13b509d1
MM
261 BINDIR=$RPM_BUILD_ROOT%{_bindir} \
262 LIBDIR=$RPM_BUILD_ROOT%{_libdir}/%{name} \
263 MANDIR=$RPM_BUILD_ROOT%{_mandir}
264
265cat > $RPM_BUILD_ROOT%{_libdir}/%{name}/ld.conf <<EOF
266%{_libdir}/%{name}/stublibs
267%{_libdir}/%{name}
268EOF
4797676b 269
f4710e3c 270%if %{with emacs}
3889f6d2
JR
271%{__make} -C emacs install \
272 DESTDIR=$RPM_BUILD_ROOT \
273 EMACSDIR="$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp" \
274 EMACS="emacs"
56260732
MM
275%endif
276
981ff793 277# symlink .opt versions of compilers (if present)
13b509d1 278for f in ocamlc ocamlopt ocamldoc ocamllex; do
067af37d
MM
279 if test -f $RPM_BUILD_ROOT%{_bindir}/$f.opt; then
280 mv -f $RPM_BUILD_ROOT%{_bindir}/$f \
281 $RPM_BUILD_ROOT%{_bindir}/$f.byte
282 ln -sf %{_bindir}/$f.opt $RPM_BUILD_ROOT%{_bindir}/$f
283 fi
1511bcd5 284done
65fbc6c7 285
981ff793 286# move includes to the proper place
ba35c88b 287mv -f $RPM_BUILD_ROOT%{_libdir}/%{name}/caml $RPM_BUILD_ROOT%{_includedir}/caml
981ff793 288# but leave compatibility symlink
379cf672 289ln -s ../../include/caml $RPM_BUILD_ROOT%{_libdir}/%{name}/caml
981ff793 290
360c386d
MM
291# compiled sources of compiler, needed by some programs
292for f in {asm,byte}comp parsing typing utils ; do
293 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
dc9de8a5 294 cp $f/*.{cmi,cmo} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
543c01fb 295 %{?with_ocaml_opt:cp $f/*.{cmx,o} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f}
360c386d 296done
981ff793
MM
297
298# this isn't installed by default, but is useful
299install tools/objinfo $RPM_BUILD_ROOT%{_bindir}/ocamlobjinfo
53fbd845 300cp -r examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
56260732
MM
301ln -sf %{_libdir}/%{name}/{scrape,add}labels $RPM_BUILD_ROOT%{_bindir}
302
13b509d1 303# shutup checkfiles
9de25172 304%{__rm} -r $RPM_BUILD_ROOT%{_mandir}/man3
13b509d1 305
69735a4b 306# install info pages
307cp -f infoman/*.gz $RPM_BUILD_ROOT%{_infodir}
308
65fbc6c7
AM
309%clean
310rm -rf $RPM_BUILD_ROOT
311
9de25172 312%post doc-info -p /sbin/postshell
4a452533 313-/usr/sbin/fix-info-dir -c %{_infodir}
69735a4b 314
9de25172 315%postun doc-info -p /sbin/postshell
4a452533 316-/usr/sbin/fix-info-dir -c %{_infodir}
69735a4b 317
65fbc6c7
AM
318%files
319%defattr(644,root,root,755)
e091ab7c 320%doc Changes LICENSE README
9de25172 321%attr(755,root,root) %{_bindir}/addlabels
e091ab7c
JB
322%attr(755,root,root) %{_bindir}/ocaml
323%attr(755,root,root) %{_bindir}/ocamlbuild*
324%attr(755,root,root) %{_bindir}/ocamlc
543c01fb 325%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlc.*}
e091ab7c
JB
326%attr(755,root,root) %{_bindir}/ocamlcp
327%attr(755,root,root) %{_bindir}/ocamldebug
328%attr(755,root,root) %{_bindir}/ocamldep*
329%attr(755,root,root) %{_bindir}/ocamldoc*
330%attr(755,root,root) %{_bindir}/ocamllex*
331%attr(755,root,root) %{_bindir}/ocamlmklib
332%attr(755,root,root) %{_bindir}/ocamlmktop
333%attr(755,root,root) %{_bindir}/ocamlobjinfo
543c01fb
JB
334%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlopt}
335%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlopt.*}
e091ab7c
JB
336%attr(755,root,root) %{_bindir}/ocamloptp
337%attr(755,root,root) %{_bindir}/ocamlprof
338%attr(755,root,root) %{_bindir}/ocamlyacc
9de25172 339%attr(755,root,root) %{_bindir}/scrapelabels
ba35c88b 340%{_includedir}/caml
530dec71 341%{_libdir}/%{name}/caml
e091ab7c 342%{_libdir}/%{name}/compiler-libs
530dec71 343%{_libdir}/%{name}/threads
4c1e0f62
MM
344%dir %{_libdir}/%{name}/vmthreads
345%dir %{_libdir}/%{name}/vmthreads/*.cm*
346%dir %{_libdir}/%{name}/vmthreads/*.a
13b509d1 347%{_libdir}/%{name}/*.a
543c01fb 348%{?with_ocaml_opt:%{_libdir}/%{name}/*.o}
13b509d1
MM
349%{_libdir}/%{name}/*.cm*
350%exclude %{_libdir}/%{name}/*graphics*
dd90c8d9 351%{_libdir}/%{name}/Makefile.config
4251bfb1 352%{_libdir}/%{name}/ld.conf
56260732
MM
353%{_libdir}/%{name}/camlheader
354%{_libdir}/%{name}/camlheader_ur
7ff0f82f 355%{_libdir}/%{name}/ocamlbuild
13b509d1 356%dir %{_libdir}/%{name}/ocamldoc
13b509d1
MM
357%{_libdir}/%{name}/ocamldoc/*.hva
358%attr(755,root,root) %{_libdir}/%{name}/expunge
359%attr(755,root,root) %{_libdir}/%{name}/extract_crc
9de25172
JB
360%attr(755,root,root) %{_libdir}/%{name}/objinfo_helper
361%{_mandir}/man1/ocaml*
362%exclude %{_mandir}/man1/ocamlrun.1*
13b509d1 363
79502218
JB
364%files runtime
365%defattr(644,root,root,755)
366%attr(755,root,root) %{_bindir}/ocamlrun
367%dir %{_libdir}/%{name}
27676bd0 368%{_libdir}/%{name}/VERSION
7ff0f82f 369%dir %{_libdir}/%{name}/site-lib
79502218
JB
370%dir %{_libdir}/%{name}/stublibs
371%attr(755,root,root) %{_libdir}/%{name}/stublibs/dll*.so
372%exclude %{_libdir}/%{name}/stublibs/dllgraphics.so
6cd4c8e4 373%{?with_ocaml_opt:%attr(755,root,root) %{_libdir}/%{name}/libasmrun_shared.so}
42946d4f 374%attr(755,root,root) %{_libdir}/%{name}/libcamlrun_shared.so
9de25172 375%{_mandir}/man1/ocamlrun.1*
79502218 376
13b509d1
MM
377%files lib-source
378%defattr(644,root,root,755)
379%{_libdir}/%{name}/*.ml
8151bf1e 380%{_libdir}/%{name}/*.mli
4c1e0f62 381%{_libdir}/%{name}/*/*.mli
13b509d1 382
79502218 383%files doc-html
763b9075 384%defattr(644,root,root,755)
79502218
JB
385%doc docs/html/ocaml/*
386
387%files doc-ps
388%defattr(644,root,root,755)
389%doc docs/*.ps.gz
390
391%files doc-info
392%defattr(644,root,root,755)
393%{_infodir}/ocaml.info*
53fbd845 394
13b509d1
MM
395# they are poor, html is much better
396#%files manpages
e68873d9 397#%%{_mandir}/man3/*
65fbc6c7 398
79502218
JB
399%if %{with emacs}
400%files emacs
56260732 401%defattr(644,root,root,755)
79502218
JB
402%{_datadir}/emacs/site-lisp/*.el*
403%endif
56260732 404
b552f088 405%if %{with x}
79502218
JB
406%files x11graphics
407%defattr(644,root,root,755)
408%attr(755,root,root) %{_libdir}/%{name}/stublibs/dllgraphics.so
409
981ff793 410%files x11graphics-devel
56260732 411%defattr(644,root,root,755)
13b509d1 412%{_libdir}/%{name}/graphics*.cm*
543c01fb 413%{?with_ocaml_opt:%{_libdir}/%{name}/graphics.a}
56260732 414%{_libdir}/%{name}/libgraphics.a
56260732
MM
415%endif
416
79502218 417%files compiler-objects
69735a4b 418%defattr(644,root,root,755)
79502218 419%{_libdir}/%{name}/compiler
69735a4b 420
79502218 421%files ocamldoc-devel
73a93122 422%defattr(644,root,root,755)
79502218 423%{_libdir}/%{name}/ocamldoc/*.cm*
543c01fb 424%{?with_ocaml_opt:%{_libdir}/%{name}/ocamldoc/*.a}
69735a4b 425
79502218 426%files examples
69735a4b 427%defattr(644,root,root,755)
79502218 428%{_examplesdir}/%{name}-%{version}
This page took 0.134391 seconds and 4 git commands to generate.