X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=ocaml.spec;h=d2afdfbc4e045685f19306025ee8f31d6400425f;hb=4722e353792529a40d6a0f5914d6e189e15f2b50;hp=333768f7537ef7af82fbccf673e5429ee9ef09b9;hpb=8b0de54e96c95ef4ff9f1a27465f23889aacc58f;p=packages%2Focaml.git diff --git a/ocaml.spec b/ocaml.spec index 333768f..d2afdfb 100644 --- a/ocaml.spec +++ b/ocaml.spec @@ -2,31 +2,18 @@ # conditional build: # --without emacs # --without tk -# --without x11 (use only with --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 Caml oraz ¶rodowisko programistyczne +Summary(pl): Kompilator Objektowego Camla oraz ¶rodowisko programistyczne Name: ocaml Version: 3.04 -Release: 2 +Release: 7 License: distributable Vendor: Group of implementors Group: Development/Languages -Group(cs): Vývojové prostøedky/Programovací jazyky -Group(da): Udvikling/Sprog -Group(de): Entwicklung/Sprachen -Group(es): Desarrollo/Lenguajes -Group(fr): Development/Langues -Group(is): Þróunartól/Forritunarmál -Group(it): Sviluppo/Linguaggi -Group(ja): ³«È¯/¸À¸ì -Group(no): Utvikling/Programmeringsspråk -Group(pl): Programowanie/Jêzyki -Group(pt): Desenvolvimento/Linguagens -Group(ru): òÁÚÒÁÂÏÔËÁ/ñÚÙËÉ -Group(sl): Razvoj/Jeziki -Group(sv): Utveckling/Språk -Group(uk): òÏÚÒÏÂËÁ/íÏ×É Source0: ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}.tar.gz Source1: ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}-refman.info.tar.gz Source2: ftp://ftp.inria.fr/lang/caml-light/%{name}-%{version}-refman.html.tar.gz @@ -39,15 +26,20 @@ Patch0: %{name}-build.patch Patch1: %{name}-DESTDIR.patch Patch2: %{name}-manlinks.patch Patch3: %{name}-db3.patch +Patch4: %{name}-powerpcfix.patch +Patch5: %{name}-objinfo.patch +Patch6: %{name}-opt-symbols.patch URL: http://caml.inria.fr/ +Requires: ocaml-runtime = %{version}-%{release} BuildRequires: db3-devel -%{!?_without_tk:BuildRequires: tcl-devel} -%{!?_without_tk:BuildRequires: tk-devel} -%{!?_without_x:BuildRequires: XFree86-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. @@ -69,162 +61,118 @@ narz Summary: PostScript documentation for OCaml Summary(pl): Dokumentacja dla OCaml-a w formacie PostSript Group: Development/Tools -Group(cs): Vývojové prostøedky/Nástroje -Group(da): Udvikling/Værktøj -Group(de): Entwicklung/Tools -Group(es): Desarrollo/Herramientas -Group(fr): Development/Outils -Group(is): Þróunartól/Tól -Group(it): Sviluppo/Tool -Group(ja): ³«È¯/¥Ä¡¼¥ë -Group(no): Utvikling/Verktøy -Group(pl): Programowanie/Narzêdzia -Group(pt): Desenvolvimento/Ferramentas -Group(ru): òÁÚÒÁÂÏÔËÁ/éÎÓÔÒÕÍÅÎÔÙ -Group(sl): Razvoj/Orodja -Group(sv): Utveckling/Verktyg -Group(uk): òÏÚÒÏÂËÁ/¶ÎÓÔÒÕÍÅÎÔÉ -Requires: %{name} = %{version} %description doc-ps -PostScript documentation for OCaml +PostScript documentation for OCaml. %description doc-ps -l pl -Dokumentacja dla OCaml-a w formacie PostSript +Dokumentacja dla OCamla w formacie PostSript. %package doc-html Summary: HTML documentation for OCaml Summary(pl): Dokumentacja dla OCaml-a w formacie HTML Group: Development/Tools -Group(cs): Vývojové prostøedky/Nástroje -Group(da): Udvikling/Værktøj -Group(de): Entwicklung/Tools -Group(es): Desarrollo/Herramientas -Group(fr): Development/Outils -Group(is): Þróunartól/Tól -Group(it): Sviluppo/Tool -Group(ja): ³«È¯/¥Ä¡¼¥ë -Group(no): Utvikling/Verktøy -Group(pl): Programowanie/Narzêdzia -Group(pt): Desenvolvimento/Ferramentas -Group(ru): òÁÚÒÁÂÏÔËÁ/éÎÓÔÒÕÍÅÎÔÙ -Group(sl): Razvoj/Orodja -Group(sv): Utveckling/Verktyg -Group(uk): òÏÚÒÏÂËÁ/¶ÎÓÔÒÕÍÅÎÔÉ -Requires: %{name} = %{version} %description doc-html -HTML documentation for OCaml +HTML documentation for OCaml. %description doc-html -l pl -Dokumentacja dla OCaml-a w formacie HTML +Dokumentacja dla OCaml-a w formacie HTML. %package emacs Summary: Emacs mode for OCaml Summary(pl): Tryb Emacsa dla OCaml Group: Development/Tools -Group(cs): Vývojové prostøedky/Nástroje -Group(da): Udvikling/Værktøj -Group(de): Entwicklung/Tools -Group(es): Desarrollo/Herramientas -Group(fr): Development/Outils -Group(is): Þróunartól/Tól -Group(it): Sviluppo/Tool -Group(ja): ³«È¯/¥Ä¡¼¥ë -Group(no): Utvikling/Verktøy -Group(pl): Programowanie/Narzêdzia -Group(pt): Desenvolvimento/Ferramentas -Group(ru): òÁÚÒÁÂÏÔËÁ/éÎÓÔÒÕÍÅÎÔÙ -Group(sl): Razvoj/Orodja -Group(sv): Utveckling/Verktyg -Group(uk): òÏÚÒÏÂËÁ/¶ÎÓÔÒÕÍÅÎÔÉ Requires: %{name} = %{version} %description emacs -Emacs mode files for Objective Caml language +Emacs mode files for Objective Caml language. %description emacs -l pl -Pliki trybu Emacsa dla jêzyka Objektowego Caml +Pliki trybu Emacsa dla jêzyka Objektowego Camla. -%package labltk +%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 -Group(cs): Vývojové prostøedky/Knihovny -Group(da): Udvikling/Biblioteker -Group(de): Entwicklung/Bibliotheken -Group(es): Desarrollo/Bibliotecas -Group(fr): Development/Librairies -Group(is): Þróunartól/Aðgerðasöfn -Group(it): Sviluppo/Librerie -Group(ja): ³«È¯/¥é¥¤¥Ö¥é¥ê -Group(no): Utvikling/Bibliotek -Group(pl): Programowanie/Biblioteki -Group(pt_BR): Desenvolvimento/Bibliotecas -Group(pt): Desenvolvimento/Bibliotecas -Group(ru): òÁÚÒÁÂÏÔËÁ/âÉÂÌÉÏÔÅËÉ -Group(sl): Razvoj/Knji¾nice -Group(sv): Utveckling/Bibliotek -Group(uk): òÏÚÒÏÂËÁ/â¦Â̦ÏÔÅËÉ -Requires: %{name} = %{version} +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. +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. +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 -Group(cs): Vývojové prostøedky/Knihovny -Group(da): Udvikling/Biblioteker -Group(de): Entwicklung/Bibliotheken -Group(es): Desarrollo/Bibliotecas -Group(fr): Development/Librairies -Group(is): Þróunartól/Aðgerðasöfn -Group(it): Sviluppo/Librerie -Group(ja): ³«È¯/¥é¥¤¥Ö¥é¥ê -Group(no): Utvikling/Bibliotek -Group(pl): Programowanie/Biblioteki -Group(pt_BR): Desenvolvimento/Bibliotecas -Group(pt): Desenvolvimento/Bibliotecas -Group(ru): òÁÚÒÁÂÏÔËÁ/âÉÂÌÉÏÔÅËÉ -Group(sl): Razvoj/Knji¾nice -Group(sv): Utveckling/Bibliotek -Group(uk): òÏÚÒÏÂËÁ/â¦Â̦ÏÔÅËÉ -Requires: %{name} = %{version} +Requires: %{name} = %{version}-%{release} %description x11graphics -This package gives OCaml program access to drawing in X11 windows. +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 -Ten pakiet daje programom napisanym w OCamlu dostêp do rysowania po -oknach X11. +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 -Group(cs): Vývojové prostøedky/Programovací jazyky -Group(da): Udvikling/Sprog -Group(de): Entwicklung/Sprachen -Group(es): Desarrollo/Lenguajes -Group(fr): Development/Langues -Group(is): Þróunartól/Forritunarmál -Group(it): Sviluppo/Linguaggi -Group(ja): ³«È¯/¸À¸ì -Group(no): Utvikling/Programmeringsspråk -Group(pl): Programowanie/Jêzyki -Group(pt): Desenvolvimento/Linguagens -Group(ru): òÁÚÒÁÂÏÔËÁ/ñÚÙËÉ -Group(sl): Razvoj/Jeziki -Group(sv): Utveckling/Språk -Group(uk): òÏÚÒÏÂËÁ/íÏ×É -Requires: %{name} = %{version} -Provides: camlp4 = %{version} +Requires: %{name} = %{version}-%{release} +Provides: camlp4 = %{version}-%{release} Obsoletes: camlp4 %description camlp4 @@ -256,6 +204,20 @@ Camlp4 umie 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. + %prep %setup -q -T -b 0 %setup -q -T -D -a 1 @@ -276,6 +238,11 @@ cp %{SOURCE7} docs/camlp4-tutorial.ps.gz %patch1 -p1 %patch2 -p1 %patch3 -p1 +%ifarch ppc +%patch4 -p1 +%endif +%patch5 -p1 +%patch6 -p1 %build ./configure \ @@ -289,14 +256,16 @@ cp %{SOURCE7} docs/camlp4-tutorial.ps.gz # this is crude hack (works in addition to ocaml-db3.patch) cp config/Makefile config/Makefile.tmp -sed -e 's|-ldb1|-ldb|; s|-I/usr/include/db1||' < config/Makefile.tmp > config/Makefile +sed -e 's|-ldb1|-ldb|; s|-I%{_includedir}/db1||' < config/Makefile.tmp > config/Makefile %{__make} world bootstrap opt ocamlc.opt ocamlopt.opt +%{__make} -C camlp4 optp4 +%{__make} -C tools objinfo # hack info pages to contain dir entry cat <infoman/ocaml.info INFO-DIR-SECTION Programming Languages: -START-INFO-DIR-ENTRY +START-INFO-DIR-ENTRY * Ocaml: (ocaml). The Ocaml language END-INFO-DIR-ENTRY EOF @@ -317,14 +286,41 @@ install -d $RPM_BUILD_ROOT%{_infodir} EMACSDIR="%{_libdir}/emacs/site-lisp" %endif -cp -p {parsing/{location,longident,parsetree},typing/typecore}.{cm,ml}i \ - $RPM_BUILD_ROOT%{_libdir}/%{name} - -mv -f $RPM_BUILD_ROOT%{_bindir}/ocamlc $RPM_BUILD_ROOT%{_bindir}/ocamlc.byte -ln -sf %{_bindir}/ocamlc.opt $RPM_BUILD_ROOT%{_bindir}/ocamlc -mv -f $RPM_BUILD_ROOT%{_bindir}/ocamlopt $RPM_BUILD_ROOT%{_bindir}/ocamlopt.byte -ln -sf %{_bindir}/ocamlopt.opt $RPM_BUILD_ROOT%{_bindir}/ocamlopt -rm -f $RPM_BUILD_ROOT%{_libdir}/%{_name}/*.ml +# symlink .opt versions of compilers (if present) +for f in ocamlc ocamlopt; do + if test -f $RPM_BUILD_ROOT%{_bindir}/$f.opt; then + mv -f $RPM_BUILD_ROOT%{_bindir}/$f \ + $RPM_BUILD_ROOT%{_bindir}/$f.byte + ln -sf %{_bindir}/$f.opt $RPM_BUILD_ROOT%{_bindir}/$f + fi +done + +rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/*.ml{,i} +rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/*/*.ml{,i} + +# move includes to the proper place +install -d $RPM_BUILD_ROOT%{_includedir} +mv -f $RPM_BUILD_ROOT%{_libdir}/%{name}/caml $RPM_BUILD_ROOT%{_includedir}/caml +# but leave compatibility symlink +ln -s ../../include/caml $RPM_BUILD_ROOT%{_libdir}/%{name}/caml + +# compiled sources of compiler, needed by some programs +for f in {asm,byte}comp parsing typing utils ; do + install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f + cp $f/*.{cmi,cmo,cmx,o} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f +done + +# this isn't installed by default, but is useful +install tools/objinfo $RPM_BUILD_ROOT%{_bindir}/ocamlobjinfo + +# instead of adding new directories to ld.conf, we use single dirctory +# for dlls comming from other packages, they should be symlinked here +echo %{_libdir}/%{name} > $RPM_BUILD_ROOT%{_libdir}/%{name}/ld.conf + +%{!?_without_tk:(cd $RPM_BUILD_ROOT%{_libdir}/%{name} && ln -s labltk/dll*.so .)} + +install -d $RPM_BUILD_ROOT%{_examplesdir} +mv otherlibs/labltk/example $RPM_BUILD_ROOT%{_examplesdir}/%{name}-labltk-%{version} ln -sf %{_libdir}/%{name}/{scrape,add}labels $RPM_BUILD_ROOT%{_bindir} @@ -342,24 +338,28 @@ rm -rf $RPM_BUILD_ROOT [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 +%files runtime +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/ocamlrun +%attr(755,root,root) %{_libdir}/%{name}/dll[bmnstu]*.so + %files %defattr(644,root,root,755) %doc *.gz %attr(755,root,root) %{_bindir}/ocaml -%attr(755,root,root) %{_bindir}/ocaml[cmdlopry]* +%attr(755,root,root) %{_bindir}/ocaml[cmdlopy]* %attr(755,root,root) %{_bindir}/*labels +%{_includedir}/caml %{_libdir}/%{name}/caml %{_libdir}/%{name}/threads %{_libdir}/%{name}/[abefhimnopqrstuw]*.* %{_libdir}/%{name}/callback.* %{_libdir}/%{name}/char.* -%{_libdir}/%{name}/condition.* %{_libdir}/%{name}/dbm.* %{_libdir}/%{name}/digest.* -%attr(755,root,root) %{_libdir}/%{name}/dll[bmnstu]*.so +%{_libdir}/%{name}/dynlink.* %{_libdir}/%{name}/g[ce]*.* %{_libdir}/%{name}/l*.cm* -%{_libdir}/%{name}/l*.mli %{_libdir}/%{name}/lib[abc]*.a %{_libdir}/%{name}/libmldbm.a %{_libdir}/%{name}/lib[nstu]*.a @@ -372,6 +372,10 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man*/*ocaml* %{_infodir}/* +%files devel +%defattr(644,root,root,755) +%{_libdir}/%{name}/compiler + %files camlp4 %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/*camlp4* @@ -382,24 +386,30 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man*/*ocpp* %if %{!?_without_tk:1}%{?_without_tk:0} -%files labltk +%files labltk-devel %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/labltk %attr(755,root,root) %{_bindir}/ocamlbrowser %dir %{_libdir}/%{name}/labltk %{_libdir}/%{name}/labltk/*.cm* %{_libdir}/%{name}/labltk/*.a -%{_libdir}/%{name}/labltk/*.mli -%attr(755,root,root) %{_libdir}/%{name}/labltk/*.so -%attr(755,root,root) %{_libdir}/%{name}/labltk/labltktop %attr(755,root,root) %{_libdir}/%{name}/labltk/tkcompiler +%{_examplesdir}/%{name}-labltk-%{version} + +%files labltk +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/%{name}/labltk/dlllabltk* +%{_libdir}/%{name}/dlllabltk* %endif %if %{!?_without_x11:1}%{?_without_x11:0} -%files x11graphics +%files x11graphics-devel %defattr(644,root,root,755) %{_libdir}/%{name}/graphics* %{_libdir}/%{name}/libgraphics.a + +%files x11graphics +%defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/%{name}/dllgraphics.so %endif