- don't meddle with profiling builds (error: -pg and -fomit-frame-pointer are incompa...
[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
fa136354 13%define sver 4.04
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
fa136354
JR
18Version: 4.04.1
19Release: 1
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
fa136354 24# Source0-md5: 092139f2a256d1f3d2571f64ab475aa9
e091ab7c 25Source1: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman-html.tar.gz
fa136354 26# Source1-md5: 5c58a4fce99b20e02c3208ad956bcb9d
307e1de8 27Source2: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.ps.gz
fa136354 28# Source2-md5: a408f706789b9b84b0eb68da3db05f15
9de25172 29Source3: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.info.tar.gz
fa136354 30# Source3-md5: 8c9df1da0e36a69817f43115fa87360c
e091ab7c
JB
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
65fbc6c7 252%install
5ca6b9fb 253rm -rf $RPM_BUILD_ROOT
e091ab7c 254install -d $RPM_BUILD_ROOT{%{_includedir},%{_infodir},%{_examplesdir}/%{name}-%{version}}
7ff0f82f 255install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/site-lib
e42e1457 256
7ae05805 257%{__make} install \
13b509d1
MM
258 BINDIR=$RPM_BUILD_ROOT%{_bindir} \
259 LIBDIR=$RPM_BUILD_ROOT%{_libdir}/%{name} \
260 MANDIR=$RPM_BUILD_ROOT%{_mandir}
261
262cat > $RPM_BUILD_ROOT%{_libdir}/%{name}/ld.conf <<EOF
263%{_libdir}/%{name}/stublibs
264%{_libdir}/%{name}
265EOF
4797676b 266
f4710e3c 267%if %{with emacs}
3889f6d2
JR
268%{__make} -C emacs install \
269 DESTDIR=$RPM_BUILD_ROOT \
270 EMACSDIR="$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp" \
271 EMACS="emacs"
56260732
MM
272%endif
273
981ff793 274# symlink .opt versions of compilers (if present)
13b509d1 275for f in ocamlc ocamlopt ocamldoc ocamllex; do
067af37d
MM
276 if test -f $RPM_BUILD_ROOT%{_bindir}/$f.opt; then
277 mv -f $RPM_BUILD_ROOT%{_bindir}/$f \
278 $RPM_BUILD_ROOT%{_bindir}/$f.byte
279 ln -sf %{_bindir}/$f.opt $RPM_BUILD_ROOT%{_bindir}/$f
280 fi
1511bcd5 281done
65fbc6c7 282
981ff793 283# move includes to the proper place
ba35c88b 284mv -f $RPM_BUILD_ROOT%{_libdir}/%{name}/caml $RPM_BUILD_ROOT%{_includedir}/caml
981ff793 285# but leave compatibility symlink
379cf672 286ln -s ../../include/caml $RPM_BUILD_ROOT%{_libdir}/%{name}/caml
981ff793 287
360c386d
MM
288# compiled sources of compiler, needed by some programs
289for f in {asm,byte}comp parsing typing utils ; do
290 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
dc9de8a5 291 cp $f/*.{cmi,cmo} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
543c01fb 292 %{?with_ocaml_opt:cp $f/*.{cmx,o} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f}
360c386d 293done
981ff793
MM
294
295# this isn't installed by default, but is useful
fa136354 296#install tools/objinfo $RPM_BUILD_ROOT%{_bindir}/ocamlobjinfo
53fbd845 297cp -r examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
56260732
MM
298ln -sf %{_libdir}/%{name}/{scrape,add}labels $RPM_BUILD_ROOT%{_bindir}
299
13b509d1 300# shutup checkfiles
9de25172 301%{__rm} -r $RPM_BUILD_ROOT%{_mandir}/man3
13b509d1 302
69735a4b 303# install info pages
304cp -f infoman/*.gz $RPM_BUILD_ROOT%{_infodir}
305
65fbc6c7
AM
306%clean
307rm -rf $RPM_BUILD_ROOT
308
9de25172 309%post doc-info -p /sbin/postshell
4a452533 310-/usr/sbin/fix-info-dir -c %{_infodir}
69735a4b 311
9de25172 312%postun doc-info -p /sbin/postshell
4a452533 313-/usr/sbin/fix-info-dir -c %{_infodir}
69735a4b 314
65fbc6c7
AM
315%files
316%defattr(644,root,root,755)
fa136354 317%doc Changes LICENSE README.adoc
9de25172 318%attr(755,root,root) %{_bindir}/addlabels
e091ab7c 319%attr(755,root,root) %{_bindir}/ocaml
e091ab7c 320%attr(755,root,root) %{_bindir}/ocamlc
543c01fb 321%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlc.*}
e091ab7c 322%attr(755,root,root) %{_bindir}/ocamlcp
fa136354 323%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlcp.*}
e091ab7c 324%attr(755,root,root) %{_bindir}/ocamldebug
fa136354
JR
325%attr(755,root,root) %{_bindir}/ocamldep
326%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamldep.*}
327%attr(755,root,root) %{_bindir}/ocamldoc
328%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamldoc.*}
329%attr(755,root,root) %{_bindir}/ocamllex
330%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamllex.*}
e091ab7c 331%attr(755,root,root) %{_bindir}/ocamlmklib
fa136354 332%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlmklib.*}
e091ab7c 333%attr(755,root,root) %{_bindir}/ocamlmktop
fa136354 334%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlmktop.*}
e091ab7c 335%attr(755,root,root) %{_bindir}/ocamlobjinfo
fa136354 336%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlobjinfo.*}
543c01fb
JB
337%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlopt}
338%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlopt.*}
e091ab7c 339%attr(755,root,root) %{_bindir}/ocamloptp
fa136354 340%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamloptp.*}
e091ab7c 341%attr(755,root,root) %{_bindir}/ocamlprof
fa136354 342%{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlprof.*}
e091ab7c 343%attr(755,root,root) %{_bindir}/ocamlyacc
9de25172 344%attr(755,root,root) %{_bindir}/scrapelabels
ba35c88b 345%{_includedir}/caml
530dec71 346%{_libdir}/%{name}/caml
e091ab7c 347%{_libdir}/%{name}/compiler-libs
530dec71 348%{_libdir}/%{name}/threads
4c1e0f62
MM
349%dir %{_libdir}/%{name}/vmthreads
350%dir %{_libdir}/%{name}/vmthreads/*.cm*
351%dir %{_libdir}/%{name}/vmthreads/*.a
13b509d1 352%{_libdir}/%{name}/*.a
543c01fb 353%{?with_ocaml_opt:%{_libdir}/%{name}/*.o}
13b509d1
MM
354%{_libdir}/%{name}/*.cm*
355%exclude %{_libdir}/%{name}/*graphics*
dd90c8d9 356%{_libdir}/%{name}/Makefile.config
4251bfb1 357%{_libdir}/%{name}/ld.conf
56260732
MM
358%{_libdir}/%{name}/camlheader
359%{_libdir}/%{name}/camlheader_ur
13b509d1 360%dir %{_libdir}/%{name}/ocamldoc
13b509d1
MM
361%{_libdir}/%{name}/ocamldoc/*.hva
362%attr(755,root,root) %{_libdir}/%{name}/expunge
363%attr(755,root,root) %{_libdir}/%{name}/extract_crc
9de25172
JB
364%attr(755,root,root) %{_libdir}/%{name}/objinfo_helper
365%{_mandir}/man1/ocaml*
366%exclude %{_mandir}/man1/ocamlrun.1*
13b509d1 367
79502218
JB
368%files runtime
369%defattr(644,root,root,755)
370%attr(755,root,root) %{_bindir}/ocamlrun
371%dir %{_libdir}/%{name}
27676bd0 372%{_libdir}/%{name}/VERSION
7ff0f82f 373%dir %{_libdir}/%{name}/site-lib
79502218
JB
374%dir %{_libdir}/%{name}/stublibs
375%attr(755,root,root) %{_libdir}/%{name}/stublibs/dll*.so
376%exclude %{_libdir}/%{name}/stublibs/dllgraphics.so
6cd4c8e4 377%{?with_ocaml_opt:%attr(755,root,root) %{_libdir}/%{name}/libasmrun_shared.so}
42946d4f 378%attr(755,root,root) %{_libdir}/%{name}/libcamlrun_shared.so
9de25172 379%{_mandir}/man1/ocamlrun.1*
79502218 380
13b509d1
MM
381%files lib-source
382%defattr(644,root,root,755)
383%{_libdir}/%{name}/*.ml
8151bf1e 384%{_libdir}/%{name}/*.mli
4c1e0f62 385%{_libdir}/%{name}/*/*.mli
13b509d1 386
79502218 387%files doc-html
763b9075 388%defattr(644,root,root,755)
79502218
JB
389%doc docs/html/ocaml/*
390
391%files doc-ps
392%defattr(644,root,root,755)
393%doc docs/*.ps.gz
394
395%files doc-info
396%defattr(644,root,root,755)
397%{_infodir}/ocaml.info*
53fbd845 398
13b509d1
MM
399# they are poor, html is much better
400#%files manpages
e68873d9 401#%%{_mandir}/man3/*
65fbc6c7 402
79502218
JB
403%if %{with emacs}
404%files emacs
56260732 405%defattr(644,root,root,755)
79502218
JB
406%{_datadir}/emacs/site-lisp/*.el*
407%endif
56260732 408
b552f088 409%if %{with x}
79502218
JB
410%files x11graphics
411%defattr(644,root,root,755)
412%attr(755,root,root) %{_libdir}/%{name}/stublibs/dllgraphics.so
413
981ff793 414%files x11graphics-devel
56260732 415%defattr(644,root,root,755)
13b509d1 416%{_libdir}/%{name}/graphics*.cm*
543c01fb 417%{?with_ocaml_opt:%{_libdir}/%{name}/graphics.a}
56260732 418%{_libdir}/%{name}/libgraphics.a
56260732
MM
419%endif
420
79502218 421%files compiler-objects
69735a4b 422%defattr(644,root,root,755)
79502218 423%{_libdir}/%{name}/compiler
69735a4b 424
79502218 425%files ocamldoc-devel
73a93122 426%defattr(644,root,root,755)
79502218 427%{_libdir}/%{name}/ocamldoc/*.cm*
543c01fb 428%{?with_ocaml_opt:%{_libdir}/%{name}/ocamldoc/*.a}
69735a4b 429
79502218 430%files examples
69735a4b 431%defattr(644,root,root,755)
79502218 432%{_examplesdir}/%{name}-%{version}
This page took 0.298257 seconds and 4 git commands to generate.