diff --git a/sci-mathematics/frama-c/Manifest b/sci-mathematics/frama-c/Manifest new file mode 100644 index 0000000000..9681962f97 --- /dev/null +++ b/sci-mathematics/frama-c/Manifest @@ -0,0 +1 @@ +DIST frama-c-22.0-Titanium.tar.gz 6008520 BLAKE2B 957f1fd383913718598c8d14bd0ff4b6251cc5350633888ca061fa0e44fae17273b379dcc1b70fe8a187975364aee1f255e0df232a4ee349ff29f9cb922a7b60 SHA512 7366127da4726ffec0022adc06fd867b6ea37fc23b6a5ddccbe7562fcaa635abc6894397d0101fcb0afc339c565299c6d637006305c8331aa62a8ce734740a0f diff --git a/sci-mathematics/frama-c/frama-c-22.0.ebuild b/sci-mathematics/frama-c/frama-c-22.0.ebuild new file mode 100644 index 0000000000..1bb3dc8b29 --- /dev/null +++ b/sci-mathematics/frama-c/frama-c-22.0.ebuild @@ -0,0 +1,102 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools + +DESCRIPTION="Framework for analysis of source codes written in C" +HOMEPAGE="https://frama-c.com" +NAME="Titanium" +SRC_URI="https://frama-c.com/download/${P}-${NAME}.tar.gz" + +LICENSE="BSD LGPL-2 LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+aorai +callgraph +dive +e-acsl +eva +from-analysis gtk +impact +inout +instantiate +loop-analysis +metrics +nonterm +obfuscator +ocamlopt +occurrence +pdg +postdominators +print-api +qed +report +rtegen +scope security-slicing +semantic-constant-folding +server +slicing +sparecode +studia +users +variadic +wp" +RESTRICT="strip" + +# TODO: $(use_enable markdown-report mdr) -> missing dev-ml/ppx_deriving_yojson + +RDEPEND=" + >=dev-lang/ocaml-4.08.1[ocamlopt?] + >=dev-ml/ocamlgraph-1.8.5[gtk?,ocamlopt?] + >=dev-ml/zarith-1.5[ocamlopt?] + >=dev-ml/yojson-1.4.1[ocamlopt?] + gtk? ( >=dev-ml/lablgtk-2.14:2=[sourceview,gnomecanvas,ocamlopt?] ) + wp? ( >=sci-mathematics/why3-1.3.3 )" +DEPEND="${RDEPEND} + dev-ml/findlib + media-gfx/graphviz" + +REQUIRED_USE=" + dive? ( eva studia ) + e-acsl? ( rtegen ) + from-analysis? ( eva callgraph ) + impact? ( pdg eva inout ) + inout? ( from-analysis eva callgraph ) + metrics? ( eva ) + nonterm? ( eva ) + occurrence? ( eva ) + pdg? ( from-analysis eva callgraph ) + scope? ( postdominators eva from-analysis pdg ) + security-slicing? ( slicing eva pdg gtk ) + semantic-constant-folding? ( eva ) + slicing? ( from-analysis pdg eva callgraph ) + sparecode? ( pdg eva ) + studia? ( eva ) + users? ( eva ) + wp? ( qed rtegen )" + +S="${WORKDIR}/${P}-${NAME}" + +src_prepare() { + mv configure.in configure.ac || die + sed -i 's/configure\.in/configure.ac/g' Makefile.generating Makefile || die + touch config_file || die + eautoreconf + eapply_user +} + +src_configure() { + econf \ + --disable-landmarks \ + $(use_enable aorai) \ + $(use_enable callgraph) \ + $(use_enable dive) \ + $(use_enable e-acsl) \ + $(use_enable eva) \ + $(use_enable from-analysis) \ + $(use_enable gtk gui) \ + $(use_enable impact) \ + $(use_enable inout) \ + $(use_enable instantiate) \ + $(use_enable loop-analysis) \ + --disable-mdr \ + $(use_enable metrics) \ + $(use_enable nonterm) \ + $(use_enable obfuscator) \ + $(use_enable occurrence) \ + $(use_enable pdg) \ + $(use_enable postdominators) \ + $(use_enable print-api) \ + $(use_enable qed) \ + $(use_enable report) \ + $(use_enable rtegen) \ + $(use_enable scope) \ + $(use_enable security-slicing) \ + $(use_enable semantic-constant-folding) \ + $(use_enable server) \ + --disable-server-zmq \ + $(use_enable slicing) \ + $(use_enable sparecode) \ + $(use_enable studia) \ + $(use_enable users) \ + $(use_enable variadic) \ + $(use_enable wp) \ + --disable-wp-coq +} + +src_install() { + emake install DESTDIR="${ED}" +} diff --git a/sci-mathematics/frama-c/metadata.xml b/sci-mathematics/frama-c/metadata.xml new file mode 100644 index 0000000000..c4798f5422 --- /dev/null +++ b/sci-mathematics/frama-c/metadata.xml @@ -0,0 +1,50 @@ + + + + + François-Xavier Carton + fx.carton91@gmail.com + + + Build the Aorai plugin + Build the callgraph plugin + Build the Dive plugin + Build the E-ACSL plugin + Build the value analysis plugin + Build the from analysis plugin + Build the graphical user interface + Build the impact plugin + Build the inout analysis plugin + Build the instantiate plugin + Build the loop analysis plugin + Build the metrics analysis plugin + Build the nonterm plugin + Build the Obfuscator plugin + Build the occurrence analysis plugin + Build the pdg plugin + Build the postdominators plugin + Build the print_api plugin + Build the qed plugin + Build the report plugin + Build the runtime error annotation plugin + Build the scope plugin + Build the Security slicing plugin + Build the constant propagation plugin + Build the Server plugin + Build the slicing plugin + Build the sparecode plugin + Build the studia plugin + Build the users plugin + Build the variadic plugin + Build the WP plugin + + +Frama-C is a suite of tools dedicated to the analysis of the source code +of software written in C. It gathers several static analysis techniques +in a single collaborative framework. The collaborative approach of +Frama-C allows static analyzers to build upon the results already +computed by other analyzers in the framework. Thanks to this approach, +Frama-C provides sophisticated tools, such as a slicer and dependency +analysis. + +