diff options
Diffstat (limited to 'gnu/packages/c.scm')
-rw-r--r-- | gnu/packages/c.scm | 134 |
1 files changed, 35 insertions, 99 deletions
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 41946f4169..921d473cd9 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -4,6 +4,8 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -78,6 +80,13 @@ `("--triplet=arm-linux-gnueabihf") '())) #:test-target "test")) + (native-search-paths + (list (search-path-specification + (variable "CPATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64"))))) ;; Fails to build on MIPS: "Unsupported CPU" (supported-systems (delete "mips64el-linux" %supported-systems)) (synopsis "Tiny and fast C compiler") @@ -90,66 +99,6 @@ standard.") ;; (if ever) complete. See the RELICENSING file for more information. (license license:lgpl2.1+))) -(define-public tcc-wrapper - (package - (inherit tcc) - (name "tcc-wrapper") - (build-system trivial-build-system) - (native-inputs '()) - (inputs `(("tcc" ,tcc) - ("guile" ,guile-2.2))) - - ;; By default TCC does not honor any search path environment variable. - ;; This wrapper adds them. - ;; - ;; FIXME: TCC includes its own linker so our 'ld-wrapper' hack to set the - ;; RUNPATH is ineffective here. We should modify TCC itself. - (native-search-paths - (list (search-path-specification - (variable "TCC_CPATH") - (files '("include"))) - (search-path-specification - (variable "TCC_LIBRARY_PATH") - (files '("lib" "lib64"))))) - - (arguments - '(#:builder - (let* ((out (assoc-ref %outputs "out")) - (bin (string-append out "/bin")) - (tcc (assoc-ref %build-inputs "tcc")) - (guile (assoc-ref %build-inputs "guile"))) - (mkdir out) - (mkdir bin) - (call-with-output-file (string-append bin "/cc") - (lambda (port) - (format port "#!~a/bin/guile --no-auto-compile~%!#~%" guile) - (write - `(begin - (use-modules (ice-9 match) - (srfi srfi-26)) - - (define (split path) - (string-tokenize path (char-set-complement - (char-set #\:)))) - - (apply execl ,(string-append tcc "/bin/tcc") - ,(string-append tcc "/bin/tcc") ;argv[0] - (append (cdr (command-line)) - (match (getenv "TCC_CPATH") - (#f '()) - (str - (map (cut string-append "-I" <>) - (split str)))) - (match (getenv "TCC_LIBRARY_PATH") - (#f '()) - (str - (map (cut string-append "-L" <>) - (split str))))))) - port) - (chmod port #o777))) - #t))) - (synopsis "Wrapper providing the 'cc' command for TCC"))) - (define-public pcc (package (name "pcc") @@ -183,7 +132,7 @@ compiler while still keeping it small, simple, fast and understandable.") (define-public libbytesize (package (name "libbytesize") - (version "1.4") + (version "2.1") (source (origin (method url-fetch) (uri (string-append @@ -191,52 +140,17 @@ compiler while still keeping it small, simple, fast and understandable.") "download/" version "/libbytesize-" version ".tar.gz")) (sha256 (base32 - "0bbqzln1nhjxl71aydq9k4jg3hvki9lqsb4w10s1i27jgibxqkdv")) - (modules '((guix build utils))) - (snippet - '(begin - ;; This Makefile hard-codes MSGMERGE et al. instead of - ;; honoring what 'configure' detected. Fix that. - (substitute* "po/Makefile.in" - (("^MSGMERGE = msgmerge") - "MSGMERGE = @MSGMERGE@\n")) - #t)))) + "1bpz9cpb8s47kqplkkiz6ryfahas2ma95g9rh2axnfjp6w1d9ixc")))) (build-system gnu-build-system) (arguments - ;; When running "make", the POT files are built with the build time as - ;; their "POT-Creation-Date". Later on, "make" notices that .pot - ;; files were updated and goes on to run "msgmerge"; as a result, the - ;; non-deterministic POT-Creation-Date finds its way into .po files, - ;; and then in .gmo files. To avoid that, simply make sure 'msgmerge' - ;; never runs. See <https://bugs.debian.org/792687>. - '(#:configure-flags '("ac_cv_path_MSGMERGE=true") - - #:phases (modify-phases %standard-phases - (add-after 'configure 'create-merged-po-files - (lambda _ - ;; Create "merged PO" (.mpo) files so that 'msgmerge' - ;; doesn't need to run. - (for-each (lambda (po-file) - (let ((merged-po - (string-append (dirname po-file) "/" - (basename po-file - ".po") - ".mpo"))) - (copy-file po-file merged-po))) - (find-files "po" "\\.po$")) - #t))) - - ;; One test fails because busctl (systemd only?) and python2-pocketlint - ;; are missing. Should we fix it, we would need the "python-2" , - ;; "python2-polib" and "python2-six" native-inputs. - #:tests? #f)) + `(#:tests? #f)) (native-inputs `(("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config) ("python" ,python))) (inputs `(("mpfr" ,mpfr) - ("pcre" ,pcre))) + ("pcre2" ,pcre2))) (home-page "https://github.com/storaged-project/libbytesize") (synopsis "Tiny C library for working with arbitrary big sizes in bytes") (description @@ -316,3 +230,25 @@ Its three main components are: "The purpose of libfixposix is to offer replacements for parts of POSIX whose behaviour is inconsistent across *NIX flavours.") (license license:boost1.0))) + +(define-public libhx + (package + (name "libhx") + (version "3.24") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/libhx/libHX/" + "libHX-" version ".tar.xz")) + (sha256 + (base32 + "0i8v2464p830c15myknvvs6bhxaf663lrqgga95l94ygfynkw6x5")))) + (build-system gnu-build-system) + (home-page "http://libhx.sourceforge.net") + (synopsis "C library with common data structures and functions") + (description + "This is a C library (with some C++ bindings available) that provides data +structures and functions commonly needed, such as maps, deques, linked lists, +string formatting and autoresizing, option and config file parsing, type +checking casts and more.") + (license license:lgpl2.1+))) |