aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/c.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/c.scm')
-rw-r--r--gnu/packages/c.scm134
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+)))