File ocaml-camlp4.spec of Package ocaml-camlp4
#
# spec file for package ocaml-camlp4
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: ocaml-camlp4
Version: 4.05
Release: 0
%{?ocaml_preserve_bytecode}
Summary: Pre-Processor-Pretty-Printer for Objective Caml
License: SUSE-LGPL-2.0-with-linking-exception
Group: Development/Languages/OCaml
Url: https://github.com/ocaml/camlp4
Source: %{name}-%{version}.tar.xz
BuildRequires: ocaml-ocamlbuild
BuildRequires: ocaml-rpm-macros >= 20200220
BuildRequires: ocaml(ocaml_base_version) = 4.05
BuildRequires: ocamlfind(compiler-libs)
Conflicts: ocaml < 4.05.0
Requires: ocaml(ocaml_base_version) = 4.05
%description
Camlp4 is a Pre-Processor-Pretty-Printer for Objective Caml, parsing a
source file and printing some result on standard output.
This package contains the runtime files.
%package devel
Summary: Pre-Processor-Pretty-Printer for Objective Caml
Group: Development/Languages/OCaml
Requires: %{name} = %{version}
Requires: ocaml(ocaml_base_version) = 4.05
Conflicts: ocaml-findlib-camlp4 <= 1.7.3
Provides: camlp4 = %{version}
Obsoletes: camlp4 < %{version}
%description devel
Camlp4 is a Pre-Processor-Pretty-Printer for Objective Caml, parsing a
source file and printing some result on standard output.
This package contains the development files.
%prep
%autosetup -p1
%build
./configure
make \
%{?_smp_mflags} \
byte
%if 0%{?ocaml_native_compiler}
make \
%{?_smp_mflags} \
native
%endif
%install
%make_install
d="%{buildroot}%{ocaml_standard_library}/camlp4"
tee "${d}/META" <<_META_
# Specifications for the "camlp4" preprocessor:
requires = ""
version = "%{name} %{version}"
description = "Base for Camlp4 syntax extensions"
directory = "+camlp4"
# For the toploop:
requires(byte,toploop) = "dynlink"
archive(byte,toploop,camlp4o) = "camlp4o.cma"
archive(byte,toploop,camlp4r) = "camlp4r.cma"
# For the preprocessor itself:
archive(syntax,preprocessor,camlp4o) = "-parser o -parser op -printer p"
archive(syntax,preprocessor,camlp4r) = "-parser r -parser rp -printer p"
preprocessor = "camlp4"
package "lib" (
requires = "camlp4 dynlink"
version = "%{name} %{version}"
description = "Camlp4 library"
archive(byte) = "camlp4lib.cma"
archive(byte,toploop) = "" # already contained in camlp4*.cma
archive(native) = "camlp4lib.cmxa"
)
package "gramlib" (
requires = "camlp4.lib"
version = "%{name} %{version}"
description = "Compatibilty name for camlp4.lib"
)
# dont use camlp4.lib and camlp4.fulllib together'
package "fulllib" (
requires = "camlp4 dynlink"
version = "%{name} %{version}"
description = "Camlp4 library"
error(pkg_camlp4.lib) = "camlp4.lib and camlp4.fulllib are incompatible"
archive(byte) = "camlp4fulllib.cma"
archive(byte,toploop) = "" # already contained in camlp4*.cma
archive(native) = "camlp4fulllib.cmxa"
)
package "quotations" (
version = "%{name} %{version}"
description = "Syntax extension: Quotations to create AST nodes"
requires = "camlp4.quotations.r" # backward compat
archive(syntax,preprocessor) = "-ignore foo"
package "o" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax extension: Quotations to create AST nodes (original syntax)"
archive(syntax,preprocessor) = "-parser Camlp4QuotationCommon -parser Camlp4OCamlOriginalQuotationExpander"
archive(syntax,toploop) = "Camlp4Parsers/Camlp4QuotationCommon.cmo Camlp4Parsers/Camlp4OCamlOriginalQuotationExpander.cmo"
)
package "r" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax extension: Quotations to create AST nodes (revised syntax)"
archive(syntax,preprocessor) = "-parser Camlp4QuotationCommon -parser Camlp4OCamlRevisedQuotationExpander"
archive(syntax,toploop) = "Camlp4Parsers/Camlp4QuotationCommon.cmo Camlp4Parsers/Camlp4OCamlRevisedQuotationExpander.cmo"
)
)
package "extend" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax extension: EXTEND the camlp4 grammar"
archive(syntax,preprocessor) = "-parser Camlp4GrammarParser"
archive(syntax,toploop) = "Camlp4Parsers/Camlp4GrammarParser.cmo"
)
package "listcomprehension" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax extension for list comprehensions"
archive(syntax,preprocessor) = "-parser Camlp4ListComprehension"
archive(syntax,toploop) = "Camlp4Parsers/Camlp4ListComprehension.cmo"
)
package "macro" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax extension: Conditional compilation"
archive(syntax,preprocessor) = "-parser Camlp4MacroParser"
archive(syntax,toploop) = "Camlp4Parsers/Camlp4MacroParser.cmo"
)
package "mapgenerator" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax filter: Traverse data structure (map style)"
archive(syntax,preprocessor) = "-filter Camlp4MapGenerator"
archive(syntax,toploop) = "Camlp4Filters/Camlp4MapGenerator.cmo"
)
package "foldgenerator" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax filter: Traverse data structure (fold style)"
archive(syntax,preprocessor) = "-filter Camlp4FoldGenerator"
archive(syntax,toploop) = "Camlp4Filters/Camlp4FoldGenerator.cmo"
)
package "metagenerator" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax filter: Generate AST generator for data structure"
archive(syntax,preprocessor) = "-filter Camlp4MetaGenerator"
archive(syntax,toploop) = "Camlp4Filters/Camlp4MetaGenerator.cmo"
)
package "locationstripper" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax filter: Remove location info from AST"
archive(syntax,preprocessor) = "-filter Camlp4LocationStripper"
archive(syntax,toploop) = "Camlp4Filters/Camlp4LocationStripper.cmo"
)
package "tracer" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax filter: Trace execution"
archive(syntax,preprocessor) = "-filter Camlp4Tracer"
archive(syntax,toploop) = "Camlp4Filters/Camlp4Tracer.cmo"
)
package "exceptiontracer" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax filter: Trace exception execution"
archive(syntax,preprocessor) = "-filter Camlp4ExceptionTracer"
archive(syntax,toploop) = "Camlp4Filters/Camlp4ExceptionTracer.cmo"
)
package "profiler" (
requires = "camlp4"
version = "%{name} %{version}"
description = "Syntax filter: Count events during execution"
archive(syntax,preprocessor) = "-filter Camlp4Profiler"
archive(syntax,toploop) = "Camlp4Filters/Camlp4Profiler.cmo"
archive(byte) = "camlp4prof.cmo"
archive(native) = "camlp4prof.cmx"
)
_META_
%ocaml_create_file_list
%files -f %{name}.files
%doc README.md
%files devel -f %{name}.files.devel
%{_bindir}/*
%changelog