# conditional build: # --without emacs # --without tk # --without x11 (implies --without tk) %{?_without_x11:%define _without_tk 1} Summary: The Objective Caml compiler and programming environment Summary(pl): Kompilator Objektowego Camla oraz środowisko programistyczne Name: ocaml Version: 3.06 Release: 2 License: distributable Vendor: Group of implementors Group: Development/Languages Source0: ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}/%{name}-%{version}.tar.gz Source1: ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}/%{name}-%{version}-refman.html.tar.gz Source2: ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}/%{name}-%{version}-refman.ps.gz Source3: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-manual.html.tar.gz Source4: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-manual.dvi.gz Source5: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-tutorial.html.tar.gz Source6: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{version}-tutorial.dvi.gz Source7: http://www.oefai.at/~markus/ocaml_sources/pure-fun-1.0.4.tar.bz2 Source8: http://www.oefai.at/~markus/ocaml_sources/ds-contrib.tar.gz Patch0: %{name}-build.patch Patch1: %{name}-manlinks.patch Patch2: %{name}-db3.patch Patch3: %{name}-objinfo.patch Patch4: %{name}-opt-symbols.patch Patch5: %{name}-mano.patch URL: http://caml.inria.fr/ Requires: ocaml-runtime = %{version}-%{release} Obsoletes: ocaml-ocamldoc Provides: ocaml-ocamldoc BuildRequires: db3-devel %{!?_without_tk:BuildRequires: tk-devel} %{!?_without_x11:BuildRequires: XFree86-devel} %{!?_without_emacs:BuildRequires: xemacs} %{!?_without_emacs:BuildRequires: xemacs-common} %{!?_without_emacs:BuildRequires: xemacs-fsf-compat-pkg} BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description Objective Caml is a high-level, strongly-typed, functional and object-oriented programming language from the ML family of languages. This package comprises two batch compilers (a fast bytecode compiler and an optimizing native-code compiler), an interactive toplevel system, Lex&Yacc tools, a replay debugger, and a comprehensive library. %description -l pl Objektowy Caml jest funkcjonalnym, obiektowo zorientowanym językiem wysokiego poziomu z rodziny języków ML. Ten pakiet zawiera dwa kompilatory (szybki kompilator bytecode oraz zoptymalizowany natywny kompilator), interaktywny główny system, narzędzia Lex&Yacc, odpluskwiacz i biblioteki. %package doc-ps Summary: PostScript documentation for OCaml Summary(pl): Dokumentacja dla OCaml-a w formacie PostSript Group: Development/Tools %description doc-ps PostScript documentation for OCaml. HTML documentation is in main package. %description doc-ps -l pl Dokumentacja dla OCamla w formacie PostSript. Dokumentacja HTML jest w głównym pakiecie. %package emacs Summary: Emacs mode for OCaml Summary(pl): Tryb Emacsa dla OCaml Group: Development/Tools Requires: %{name} = %{version} %description emacs Emacs mode files for Objective Caml language. %description emacs -l pl Pliki trybu Emacsa dla języka Objektowego Camla. %package runtime Summary: Runtime system for OCaml Summary(pl): Środowisko uruchomieniowe dla OCamla Group: Libraries %description runtime This package contains binaries needed to run bytecode OCaml programs: ocamlrun bytecode interpreter, and basic dynamic link libraries. %description runtime -l pl Pakiet ten zawiera binaria potrzebne do uruchamiania programów w OCamlu skompilowanych do bytecodu: interpreter bytecodu ocamlrun oraz podstawowe bibliotki linkowane dynamicznie. %package labltk-devel Summary: LabelTk library for OCaml Summary(pl): Biblioteka LablTk dla OCamla Group: Development/Libraries Requires: %{name}-labltk = %{version}-%{release} %description labltk-devel LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package contains files needed to develop OCaml programs using LablTk. %description labltk-devel -l pl Biblioteka LablTk daje programom napisanym w OCamlu dostęp do widgetów Tcl/Tk. Pakiet ten zawiera pliki niezbędne do tworzenia programów używających LablTk. %package labltk Summary: Runtime for LabelTk library Summary(pl): Środowisko uruchomieniowe dla biblioteki LablTk Group: Libraries Requires: %{name} = %{version}-%{release} %description labltk LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package contains files needed to run bytecode OCaml programs using LablTk. %description labltk -l pl Biblioteka LablTk daje programom napisanym w OCamlu dostęp do widgetów Tcl/Tk. Pakiet ten zawiera binaria potrzebne do uruchamiania programów używających LablTk. %package x11graphics-devel Summary: X11 graphic output for OCaml Summary(pl): Iksowe wyjście graficzne dla OCamla Group: Development/Libraries Requires: %{name}-x11graphics = %{version}-%{release} %description x11graphics-devel x11graphics module gives OCaml program access to drawing in X11 windows. This package contains files needed to develop OCaml programs using x11graphics. %description x11graphics-devel -l pl Moduł x11graphics daje programom napisanym w OCamlu dostęp do rysowania po oknach X11. Pakiet ten zawiera pliki niezbędne do tworzenia programów używających x11graphics. %package x11graphics Summary: X11 graphic output for OCaml Summary(pl): Iksowe wyjście graficzne dla OCamla Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description x11graphics x11graphics module gives OCaml program access to drawing in X11 windows. This package contains files needed to run bytecode OCaml programs using x11graphics. %description x11graphics -l pl Moduł x11graphics daje programom napisanym w OCamlu dostęp do rysowania po oknach X11. Pakiet ten zawiera binaria potrzebne do uruchamiania programów używających x11graphics. %package camlp4 Summary: Objective Caml Preprocessor Summary(pl): Preprocesor Ocamla Group: Development/Languages Requires: %{name} = %{version}-%{release} Provides: camlp4 = %{version}-%{release} Obsoletes: camlp4 %description camlp4 Camlp4 is a Pre-Processor-Pretty-Printer for Objective Caml. It offers tools for syntax (grammars) and the ability to modify the concrete syntax of the language (quotations, syntax extensions). Camlp4 can parse normal Ocaml concrete syntax or any other user-definable syntax. As an example, an alternative syntax is provided, named revised, because it tries to fix some small problems of the normal syntax. Camlp4 can pretty print the normal Ocaml concrete syntax or the revised one. It is therefore always possible to have a version of your sources compilable by the compiler Objective Caml without preprocessing. %description camlp4 -l pl Camlp4 jest preprocesorem dla Ocamla. Oferuje narzędzia do składni (gramatyki) oraz umiejętność modyfikowania konkretnej składni języka (cytowania, rozszerzenia). Camlp4 może sparsować normalną składnię Ocamla lub inną dowolną definiowalną przez użytkownika. Jako przykład jest podana alternatywna składnia, nazwana "poprawiona", ponieważ próbuje poprawić drobne problemy ze zwykłą składnią. Camlp4 umie ładnie wypisać normalną składnię Camla lub "poprawioną". Dzięki temu jest możliwe posiadanie wersji swoich źródeł kompilowalnych przez kompilatora Ocamla bez preprocesingu. %package devel Summary: Compiled parts of OCaml compiler Summary(pl): Skompilowane kawałki kompilatora OCamla Group: Development/Languages Requires: %{name} = %{version}-%{release} %description devel This package contains *.cmi and *.cmo files being parts of OCaml compiler. They are needed to compile some programs. %description devel -l pl Pakiet ten zawiera pliki *.cmi oraz *.cmo będące cześciami kompilatora OCamla. Są one wymagane do kompilacji niektórych programów. %package ocamldoc-devel Summary: Files needed to develop programs using ocamldoc Summary(pl): Pliki potrzebne do tworzenia programów używających ocamldoc Group: Development/Languages Requires: %{name} = %{version}-%{release} %description ocamldoc-devel You need this package if you are going to write ocamldoc front end or something like that. %description ocamldoc-devel -l pl Będziesz potrzebować tego pakietu, jeśli zamierzasza pisać front end dla ocamldoc lub coś podobnego. %package lib-source Summary: Sources of OCaml standard library Summary(pl): Źródła biblioteki standardowej OCamla Group: Development/Languages Requires: %{name} = %{version}-%{release} %description lib-source This sources come helpful during debugging of user programs with ocamldebug. %description lib-source -l pl Źródła te coś przydatne przy odpluskwianiu programów użytkownika z użyciem ocamldebug. # maybe we'll want to add some more stuff here? %package examples Summary: Example source code for OCaml Summary(pl): Przykładowe kody źródłowe w OCamlu Group: Development/Languages Requires: %{name} = %{version}-%{release} %description examples This packages contains sources for Okasaki's Purely Functional Datastructures in OCaml, along with some contributions. %description examples -l pl Pakiet ten zawiera źródła Czysto-Funkcjonalnych Struktur Danych Okasaki'ego, przełożone na OCamla, wraz z dodatkami. %prep set -x %setup -q -T -b 0 %setup -q -T -D -a 1 %setup -q -T -D -c -n %{name}-%{version}/examples -a 7 %setup -q -T -D -c -n %{name}-%{version}/examples -a 8 %setup -q -T -D -n %{name}-%{version} -a 3 %setup -q -T -D -n %{name}-%{version} -a 5 # order mess with docs somewhat mkdir docs mkdir docs/html mv htmlman docs/html/ocaml cp %{SOURCE2} docs/ocaml.ps.gz mv camlp4-%{version}-manual.html docs/html/camlp4 cp %{SOURCE4} docs/camlp4.ps.gz mv camlp4-%{version}-tutorial.html docs/html/camlp4-tutorial cp %{SOURCE6} docs/camlp4-tutorial.ps.gz %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 #%patch4 -p1 %patch5 -p1 %build ./configure \ -cc "%{__cc} %{rpmcflags}" \ -bindir %{_bindir} \ -libdir %{_libdir}/%{name} \ -mandir %{_mandir}/man1 \ -host %{_host} \ %{?_without_tk:-notk} \ -with-pthread %{__make} world bootstrap opt.opt %{__make} -C tools objinfo %install rm -rf $RPM_BUILD_ROOT %{__make} install \ BINDIR=$RPM_BUILD_ROOT%{_bindir} \ LIBDIR=$RPM_BUILD_ROOT%{_libdir}/%{name} \ MANDIR=$RPM_BUILD_ROOT%{_mandir} cat > $RPM_BUILD_ROOT%{_libdir}/%{name}/ld.conf <