1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
3 ;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
4 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
6 ;;; This file is part of GNU Guix.
8 ;;; GNU Guix is free software; you can redistribute it and/or modify it
9 ;;; under the terms of the GNU General Public License as published by
10 ;;; the Free Software Foundation; either version 3 of the License, or (at
11 ;;; your option) any later version.
13 ;;; GNU Guix is distributed in the hope that it will be useful, but
14 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ;;; GNU General Public License for more details.
18 ;;; You should have received a copy of the GNU General Public License
19 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 (define-module (gnu packages prolog)
22 #:use-module (guix download)
23 #:use-module (guix git-download)
24 #:use-module ((guix licenses) #:prefix license:)
25 #:use-module (guix packages)
26 #:use-module (guix build-system cmake)
27 #:use-module (guix build-system gnu)
28 #:use-module (gnu packages backup)
29 #:use-module (gnu packages compression)
30 #:use-module (gnu packages fontutils)
31 #:use-module (gnu packages image)
32 #:use-module (gnu packages libunwind)
33 #:use-module (gnu packages multiprecision)
34 #:use-module (gnu packages perl)
35 #:use-module (gnu packages pkg-config)
36 #:use-module (gnu packages readline)
37 #:use-module (gnu packages texinfo)
38 #:use-module (gnu packages tls)
39 #:use-module (gnu packages xorg)
40 #:use-module (srfi srfi-1))
42 (define-public gprolog
49 ;; Recent versions are not hosted on the GNU mirrors.
50 (uri (list (string-append "http://gprolog.org/gprolog-" version
52 (string-append "mirror://gnu/gprolog/gprolog-" version
56 "0z4cc42n3k6i35b8mr816iwsvrpxshw6d7dgz6s2h1hy0l7g1p5z"))))
57 (build-system gnu-build-system)
61 "--with-install-dir=" %output "/share/gprolog"))
63 (modify-phases %standard-phases
64 (add-before 'configure 'change-dir-n-fix-shells
67 (substitute* "configure"
68 (("-/bin/sh") (string-append "-" (which "sh")))
69 (("= /bin/sh") (string-append "= " (which "sh"))))
71 (home-page "https://www.gnu.org/software/gprolog/")
72 (synopsis "Prolog compiler")
74 "GNU Prolog is a standards-compliant Prolog compiler with constraint
75 solving over finite domains. It accepts Prolog+ constraint programs and
76 produces a compiled, native binary which can function in a stand-alone
77 manner. It also features an interactive interpreter.")
78 (license (list license:gpl2+
81 ;; See 'configure' for the list of supported architectures.
82 (supported-systems (fold delete
84 '("armhf-linux" "mips64el-linux")))))
86 (define-public swi-prolog
93 (url "https://github.com/SWI-Prolog/swipl-devel")
94 (recursive? #t) ; TODO: Determine if this can be split out.
95 (commit (string-append "V" version))))
96 (file-name (git-file-name name version))
99 "1g0v9cmz8zvzc1n0si7sn6522xwzbhj2b8967ibs6prinrpjc8d6"))))
100 (build-system cmake-build-system)
102 `(#:parallel-build? #t
105 (list "-DINSTALL_DOCUMENTATION=ON"
106 "-DSWIPL_INSTALL_IN_LIB=OFF") ; FIXME: Breaks RUNPATH validation.
108 (modify-phases %standard-phases
109 ;; XXX: Delete the test phase that attempts to write to the
111 (add-after 'unpack 'delete-failing-tests
113 (substitute* "src/CMakeLists.txt"
115 (substitute* "src/test.pl"
116 (("testdir\\('Tests/save'\\).") ""))
117 (with-directory-excursion "src/Tests"
118 (for-each delete-file-recursively
124 ("readline" ,readline)
126 ("libarchive" ,libarchive)
127 ("libunwind" ,libunwind)
128 ("libjpeg" ,libjpeg-turbo)
130 ("fontconfig" ,fontconfig)
132 ("pkg-config" ,pkg-config)
133 ("openssl" ,openssl)))
134 (home-page "https://www.swi-prolog.org/")
135 (synopsis "ISO/Edinburgh-style Prolog interpreter")
136 (description "SWI-Prolog is a fast and powerful ISO/Edinburgh-style Prolog
137 compiler with a rich set of built-in predicates. It offers a fast, robust and
138 small environment which enables substantial applications to be developed with
140 (license license:bsd-2)))