ocaml/ocaml.spec

450 lines
14 KiB
RPMSpec

%define majorminor %(echo %version | cut -d. -f 1-2)
Name: ocaml
Version: 4.11.1
Release: 3mamba
Summary: The OCaml compiler and programming environment
Group: Applications/Development
Vendor: openmamba
Distribution: openmamba
Packager: Davide Madrisan <davide.madrisan@gmail.com>
URL: http://www.ocaml.org
Source0: http://caml.inria.fr/pub/distrib/ocaml-%{majorminor}/ocaml-%{version}.tar.xz
Source1: http://caml.inria.fr/pub/distrib/ocaml-%{majorminor}/ocaml-%{majorminor}-refman.pdf
Source2: http://caml.inria.fr/pub/distrib/ocaml-%{majorminor}/ocaml-%{majorminor}-refman-html.tar.gz
Source3: http://caml.inria.fr/pub/distrib/ocaml-%{majorminor}/ocaml-%{majorminor}-refman.info.tar.gz
License: LGPL
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libz-devel
## AUTOBUILDREQ-END
BuildRequires: emacs-nox
#BuildRequires: ocaml-runtime >= %{?epoch:%epoch:}%{version}
BuildRequires: libgdbm-devel
Requires: %{name}-runtime = %{?epoch:%epoch:}%{version}-%{release}
Requires: gcc
# From Fedora:
# Because we pass -c flag to ocaml-find-requires (to avoid circular
# dependencies) we also have to explicitly depend on the right version
# of ocaml-runtime.
Requires: ocaml-runtime = %{?epoch:%epoch:}%{version}-%{release}
Provides: ocaml(compiler) = %{version}
%global __ocaml_requires_opts -c -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte'
%global __ocaml_provides_opts -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte'
BuildRoot: %{_tmppath}/%{name}-%{version}-root
# FIXME:
#
# BFD library not found, 'objinfo' will be unable to display info on .cmxs files
# ./hasgot -i bfd.h && \
# ./hasgot -lbfd -ldl -liberty -lz bfd_openr; then
%description
OCaml is a general-purpose programming language, designed with program safety and reliability in mind.
It is very expressive, yet easy to learn and use.
OCaml supports functional, imperative, and object-oriented programming styles.
It has been developed and distributed by INRIA, France's national research institute for computer science, since 1985.
This package provides in particular the following tools:
* ocamlc: the OCaml batch compiler,
* ocamlopt: the OCaml high-performance native-code compiler,
* ocamldep: the dependency generator (in a format suitable for the make utility),
* ocaml: the interactive (command-line) toplevel system,
* ocamlmktop: builds OCaml toplevels that contain user code preloaded at start-up,
* ocamllex: the OCaml lexical analyser, very close to lex,
* ocamlyacc: the OCaml parser generator, in the style yacc.
* ocamldebug: the OCaml source-level replay debugger,
* ocamlprof: the OCaml profiling tool,
for programs compiled in profiling mode by using either
ocamlcp: the front-end to the ocamlc compiler
or
ocamloptp: the front-end to the ocamlopt compiler,
* ocamlbuild:
automates the compilation of most OCaml projects with minimal user intervention,
* ocamlmklib: a tool for building mixed C/OCaml libraries
* ocamlobjinfo: a tool for displaying informations on files
%package runtime
Group: Applications/Development
Summary: OCaml runtime environment
Provides: ocaml(runtime) = %{?epoch:%epoch:}%{version}-%{release}
%description runtime
This package contains the runtime environment needed to run OCaml bytecode.
In particular the OCaml bytecode interpreter: ocamlrun.
%package camlp4
Summary: Pre-Processor-Pretty-Printer for OCaml
Requires: %{name}-runtime = %{?epoch:%epoch:}%{version}-%{release}
%description camlp4
Camlp4 is a Pre-Processor-Pretty-Printer for OCaml, parsing a source file and printing some result on standard output.
This package contains the runtime files.
%package camlp4-devel
Summary: Pre-Processor-Pretty-Printer for OCaml
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Requires: %{name}-camlp4 = %{?epoch:%epoch:}%{version}-%{release}
%description camlp4-devel
Camlp4 is a Pre-Processor-Pretty-Printer for OCaml, parsing a source file and printing some result on standard output.
RPM_OPT_FLAGS=`$RPM_OPT_FLAGS | sed "s|-fomit-frame-pointer||"
export RPM_OPT_FLAGS
This package contains the development files.
%package x11
Summary: X11 support for OCaml
Requires: %{name}-runtime = %{?epoch:%epoch:}%{version}-%{release}
Requires: libX11-devel
%description x11
X11 support for OCaml.
%package labltk
Group: Applications/Development
Summary: Tk bindings for OCaml
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description labltk
Labltk is a library for interfacing OCaml with the scripting language Tcl/Tk.
This package contains the runtime files.
%package labltk-devel
Group: Development/Libraries
Summary: Development files for labltk
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Requires: %{name}-labltk = %{?epoch:%epoch:}%{version}-%{release}
Requires: libX11-devel
Requires: libtcl-devel
Requires: libtk-devel
%description labltk-devel
Labltk is a library for interfacing OCaml with the scripting language Tcl/Tk.
This package contains the development files.
%package emacs
Group: Applications/Development
Summary: Emacs mode for OCaml
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Requires: emacs-nox
%description emacs
Emacs mode for OCaml.
%package ocamldoc
Group: Applications/Development
Summary: Documentation generator for OCaml
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description ocamldoc
Documentation generator for OCaml.
%package docs
Group: Documentation
Summary: Documentation for OCaml
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Requires(post): %{__install_info}
Requires(preun): %{__install_info}
Provides: %{name}-manual = %{?epoch:%epoch:}%{version}-%{release}
Obsoletes: %{name}-manual
%description docs
OCaml is a general-purpose programming language, designed with program safety and reliability in mind.
This package contains documentation in PDF and HTML format as well as man pages and info files.
%debug_package
%prep
%setup -q -a2 -a3
#-D -T
#:<< _EOF
cp %{S:1} refman.pdf
%build
#:<< _EOF
%configure \
--libdir=%{_libdir}/ocaml \
--with-pic
#./configure \
# -host %{_host} \
#%ifnarch arm
# -cc "gcc ${RPM_OPT_FLAGS}" \
#%endif
# -bindir %{_bindir} \
# -libdir %{_libdir}/ocaml \
# -mandir %{_mandir}/man1
%make -j1 world.opt
#% make -j1 -C emacs ocamltags
%make -j1 -C ocamldoc all
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%makeinstall \
LIBDIR=%{_libdir}/ocaml
#cd emacs
#%makeinstall \
# BINDIR=%{buildroot}%{_bindir} \
# EMACSDIR=%{buildroot}%{_datadir}/emacs/site-lisp
#make install-ocamltags BINDIR=%{buildroot}%{_bindir}
#cd ..
mkdir -p %{buildroot}%{_infodir}
cd infoman
cp ocaml*.gz %{buildroot}%{_infodir}
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%post docs
%install_info %{name}.info
exit 0
%preun docs
if [ $1 -eq 0 ]; then
%uninstall_info %{name}.info
fi
exit 0
%files
%defattr(-,root,root)
%{_bindir}/ocaml
#%{_bindir}/ocamlbuild
#%{_bindir}/ocamlbuild.byte
#%{_bindir}/ocamlbuild.native
%{_bindir}/ocamlc
%{_bindir}/ocamlc.byte
%{_bindir}/ocamlc.opt
%{_bindir}/ocamlcmt
%{_bindir}/ocamlcp.byte
%{_bindir}/ocamlcp.opt
%{_bindir}/ocamldep.byte
%{_bindir}/ocamllex.byte
%{_bindir}/ocamlmklib.byte
%{_bindir}/ocamlmklib.opt
%{_bindir}/ocamlmktop.byte
%{_bindir}/ocamlmktop.opt
%{_bindir}/ocamlobjinfo.byte
%{_bindir}/ocamlobjinfo.opt
%{_bindir}/ocamlopt.byte
%{_bindir}/ocamlprof.byte
%{_bindir}/ocamlprof.opt
%{_bindir}/ocamlrund
%{_bindir}/ocamlruni
%{_bindir}/ocamlcp
%{_bindir}/ocamldebug
%{_bindir}/ocamldep
%{_bindir}/ocamldep.opt
%{_bindir}/ocamllex
%{_bindir}/ocamllex.opt
%{_bindir}/ocamlmklib
%{_bindir}/ocamlmktop
%{_bindir}/ocamlobjinfo
%{_bindir}/ocamlopt
%{_bindir}/ocamlopt.opt
%{_bindir}/ocamloptp
%{_bindir}/ocamloptp.byte
%{_bindir}/ocamloptp.opt
%{_bindir}/ocamlprof
%{_bindir}/ocamlyacc
#%{_bindir}/ocaml-instr-graph
#%{_bindir}/ocaml-instr-report
#
%{_libdir}/ocaml/camlheader
%{_libdir}/ocaml/camlheader_ur
%{_libdir}/ocaml/expunge
%{_libdir}/ocaml/extract_crc
%{_libdir}/ocaml/eventlog_metadata
%{_libdir}/ocaml/ld.conf
%{_libdir}/ocaml/Makefile.config
%{_libdir}/ocaml/*.a
%{_libdir}/ocaml/*.cmxs
%{_libdir}/ocaml/*.cmxa
%{_libdir}/ocaml/*.cmx
%{_libdir}/ocaml/*.o
%{_libdir}/ocaml/*.ml
%{_libdir}/ocaml/*.mli
%{_libdir}/ocaml/libcamlrun_shared.so
%{_libdir}/ocaml/libasmrun_shared.so
%{_libdir}/ocaml/objinfo_helper
%{_libdir}/ocaml/compiler-libs/*.a
%{_libdir}/ocaml/compiler-libs/*.cmx
%{_libdir}/ocaml/compiler-libs/*.cmxa
%{_libdir}/ocaml/compiler-libs/*.o
%{_libdir}/ocaml/compiler-libs/*.mli
%ifarch x86_64 aarch64
%{_libdir}/ocaml/stublibs/dllraw_spacetime_lib.so
%endif
#%{_libdir}/ocaml/vmthreads/*.a
#%{_libdir}/ocaml/vmthreads/*.mli
%{_libdir}/ocaml/threads/*.a
%{_libdir}/ocaml/threads/*.cmx
%{_libdir}/ocaml/threads/*.cmxa
%{_libdir}/ocaml/caml
%{_libdir}/ocaml/camlheaderd
%{_libdir}/ocaml/camlheaderi
%{_mandir}/man1/ocaml.*
%{_mandir}/man1/ocamlc.*
%{_mandir}/man1/ocamlcp.*
%{_mandir}/man1/ocamldebug.*
%{_mandir}/man1/ocamldep.*
%{_mandir}/man1/ocamllex.*
%{_mandir}/man1/ocamlmktop.*
%{_mandir}/man1/ocamlopt.*
%{_mandir}/man1/ocamloptp.*
%{_mandir}/man1/ocamlprof.*
%{_mandir}/man1/ocamlyacc.*
%files runtime
%defattr(-,root,root)
%{_bindir}/ocamlrun
%{_libdir}/ocaml/VERSION
%{_libdir}/ocaml/*.cmo
%{_libdir}/ocaml/*.cmi
%{_libdir}/ocaml/*.cma
%{_libdir}/ocaml/*.cmt
%{_libdir}/ocaml/*.cmti
%dir %{_libdir}/ocaml/compiler-libs
%{_libdir}/ocaml/compiler-libs/*.cmo
%{_libdir}/ocaml/compiler-libs/*.cmi
%{_libdir}/ocaml/compiler-libs/*.cma
%{_libdir}/ocaml/compiler-libs/*.cmt
%{_libdir}/ocaml/compiler-libs/*.cmti
%dir %{_libdir}/ocaml/stublibs
%{_libdir}/ocaml/stublibs/dllcamlstr.so
%{_libdir}/ocaml/stublibs/dllthreads.so
%{_libdir}/ocaml/stublibs/dllunix.so
%dir %{_libdir}/ocaml/threads
%{_libdir}/ocaml/threads/*.cmi
%{_libdir}/ocaml/threads/*.cmti
%{_libdir}/ocaml/threads/*.cma
%{_libdir}/ocaml/threads/*.mli
%{_mandir}/man1/ocamlrun.*
%doc LICENSE
#%files x11
#%defattr(-,root,root)
#%{_libdir}/ocaml/graphicsX11.cmi
#%{_libdir}/ocaml/graphicsX11.mli
#%files emacs
#%defattr(-,root,root)
#%{_datadir}/emacs/site-lisp/*
#%{_bindir}/ocamltags
##%doc emacs/README
%files ocamldoc
%defattr(-,root,root)
%{_bindir}/ocamldoc*
%{_libdir}/ocaml/ocamldoc
%{_mandir}/man1/ocamldoc.*
%files docs
%defattr(-,root,root)
%{_infodir}/*
%{_mandir}/man3/*
#%doc Changes
#%doc refman.pdf htmlman
%changelog
* Thu Apr 22 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 4.11.1-3mamba
- rebuilt with recent rpm ocamldeps
* Thu Jan 21 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 4.11.1-2mamba
- rebuilt to fix provides
* Sun Oct 18 2020 Automatic Build System <autodist@mambasoft.it> 4.11.1-1mamba
- automatic version update by autodist
* Sat Oct 17 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 4.11.0-1mamba
- update to 4.11.0
* Mon Dec 30 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 4.09.0-4mamba
- rebuilt with recent gcc and --with-pic
* Fri Nov 22 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 4.09.0-3mamba
- ocaml-runtime: add provide ocaml(runtime)
* Fri Nov 22 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 4.09.0-2mamba
- rebuilt with ocaml-runtime 4.09.0 to fix requirement on previous version
* Fri Nov 15 2019 Automatic Build System <autodist@mambasoft.it> 4.09.0-1mamba
- automatic version update by autodist
* Thu Apr 25 2019 Automatic Build System <autodist@mambasoft.it> 4.07.1-1mamba
- automatic version update by autodist
* Sun Apr 21 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 4.07.0-1mamba
- update to 4.07.0
* Tue Jan 21 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 4.01.0-2mamba
- labtk-devel: require libtcl-devel and libtk-devel instead of libtcl85-devel and libtk85-devel
* Sun Nov 24 2013 Automatic Build System <autodist@mambasoft.it> 4.01.0-1mamba
- automatic version update by autodist
* Tue Jul 09 2013 Davide Madrisan <davide.madrisan@gmail.com> 4.00.1-4mamba
- new subpackage runtime, camlp4, camlp4-devel, x11, and ocamldoc
- build requires libtcl85-devel and libtk85-devel
* Mon Jul 01 2013 Automatic Build System <autodist@mambasoft.it> 4.00.1-3mamba
- pass -host option to configure to build for arm generic and fix rpi target
* Mon Jun 24 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 4.00.1-2mamba
- added labltk and emacs subpackages
* Mon Jun 17 2013 Davide Madrisan <davide.madrisan@gmail.com> 4.00.1-1mamba
- update to 4.00.1
* Wed Oct 24 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 3.12.1-4mamba
- rebuilt with binutils 2.23
* Wed Nov 30 2011 Automatic Build System <autodist@mambasoft.it> 3.12.1-3mamba
- automatic update by autodist
* Mon Nov 28 2011 Automatic Build System <autodist@mambasoft.it> 3.12.1-2mamba
- automatic update by autodist
* Tue Jul 19 2011 Automatic Build System <autodist@mambasoft.it> 3.12.1-1mamba
- automatic update by autodist
* Sun Dec 26 2010 Automatic Build System <autodist@mambasoft.it> 3.12.0-2mamba
- automatic update by autodist
* Fri Dec 17 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 3.12.0-1mamba
- update to 3.12.0
* Tue Feb 09 2010 Automatic Build System <autodist@mambasoft.it> 3.11.2-1mamba
- automatic update by autodist
* Fri Nov 13 2009 Davide Madrisan <davide.madrisan@gmail.com> 3.11.1-2mamba
- fix compilation issues
- build ocamlopt
* Fri Jun 26 2009 Automatic Build System <autodist@mambasoft.it> 3.11.1-1mamba
- automatic update by autodist
* Mon Dec 08 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 3.11.0-1mamba
- update to 3.11.0
* Mon Dec 08 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 3.10.2-1mamba
- automatic update by autodist
* Mon Nov 05 2007 Aleph0 <aleph0@openmamba.org> 3.10.0-3mamba
- rebuild
* Sat Sep 29 2007 Aleph0 <aleph0@openmamba.org> 3.10.0-2mamba
- add official reference manual
* Fri Sep 28 2007 Aleph0 <aleph0@openmamba.org> 3.10.0-1mamba
- update to 3.10.0
* Fri Mar 02 2007 Aleph0 <aleph0@openmamba.org> 3.09.3-1qilnx
- package created by autospec