aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/base.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-04-05 21:03:59 +0200
committerLudovic Courtès <ludo@gnu.org>2014-04-05 21:04:13 +0200
commita28ef66e0482665bc81b8dbcc49e3b1f8fb9917d (patch)
tree45ebd43a605a386357da6594db9c59ee282b9a2f /gnu/packages/base.scm
parent7458bd0a4aabbef19070c234d38905ad05b19b32 (diff)
downloadguix-a28ef66e0482665bc81b8dbcc49e3b1f8fb9917d.tar
guix-a28ef66e0482665bc81b8dbcc49e3b1f8fb9917d.tar.gz
gnu: Add 'gcc-toolchain'.
* gnu/packages/base.scm (gcc-toolchain): New procedure. (gcc-toolchain-4.8): New variable.
Diffstat (limited to 'gnu/packages/base.scm')
-rw-r--r--gnu/packages/base.scm42
1 files changed, 42 insertions, 0 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index bf1ebfa629..e6a2242cf0 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1133,4 +1133,46 @@ store.")
("gcc" ,gcc-final)
("libc" ,glibc-final))))
+(define (gcc-toolchain gcc)
+ "Return a complete toolchain for GCC."
+ (package
+ (name "gcc-toolchain")
+ (version (package-version gcc))
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments
+ '(#:modules ((guix build union))
+ #:builder (begin
+ (use-modules (ice-9 match)
+ (guix build union))
+
+ (match %build-inputs
+ (((names . directories) ...)
+ (union-build (assoc-ref %outputs "out")
+ directories)))
+
+ (union-build (assoc-ref %outputs "debug")
+ (list (assoc-ref %build-inputs
+ "libc-debug"))))))
+ (license (package-license gcc))
+ (synopsis "Complete GCC tool chain for C/C++ development")
+ (description
+ "This package provides a complete GCC tool chain for C/C++ development to
+be installed in user profiles. This includes GCC, as well as libc (headers
+and binaries, plus debugging symbols in the 'debug' output), and Binutils.")
+ (home-page "http://gcc.gnu.org/")
+ (outputs '("out" "debug"))
+
+ ;; The main raison d'être of this "meta-package" is (1) to conveniently
+ ;; install everything that we need, and (2) to make sure ld-wrapper comes
+ ;; before Binutils' ld in the user's profile.
+ (inputs `(("gcc" ,gcc)
+ ("ld-wrapper" ,(car (assoc-ref %final-inputs "ld-wrapper")))
+ ("binutils" ,binutils-final)
+ ("libc" ,glibc-final)
+ ("libc-debug" ,glibc-final "debug")))))
+
+(define-public gcc-toolchain-4.8
+ (gcc-toolchain gcc-final))
+
;;; base.scm ends here