(define-module (glicid packages gcc) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (guix download) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) #:use-module ((guix utils) #:select (target-64bit?)) #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages assembly) #:use-module (gnu packages authentication) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bdw-gc) #:use-module (gnu packages benchmark) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages chemistry) #:use-module (gnu packages cluster) #:use-module (gnu packages cmake) #:use-module (gnu packages commencement) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages fabric-management) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages freeipmi) #:use-module (gnu packages gawk) #:use-module (gnu packages gcc) #:use-module (gnu packages gnome) #:use-module (gnu packages gperf) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages maths) #:use-module (gnu packages messaging) #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) #:use-module (gnu packages nss) #:use-module (gnu packages openldap) #:use-module (gnu packages parallel) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) #:use-module (gnu packages sphinx) #:use-module (gnu packages sssd) #:use-module (gnu packages storage) #:use-module (gnu packages tcl) #:use-module (gnu packages tls) #:use-module (gnu packages virtualization) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (srfi srfi-1) ) (define* (custom-gcc gcc name languages #:optional (search-paths (package-native-search-paths gcc)) #:key (separate-lib-output? #t) ) "Return a custom version of GCC that supports LANGUAGES. Use SEARCH-PATHS as the 'native-search-paths' field." (package (inherit gcc) (name (string-append name "-upstream" )) (outputs (if separate-lib-output? (package-outputs gcc) (delete "lib" (package-outputs gcc)) ) ) (native-search-paths search-paths) (properties (alist-delete 'hidden? (package-properties gcc)) ) (arguments (substitute-keyword-arguments (package-arguments gcc) ( (#:modules modules %gnu-build-system-modules) `(,@modules (srfi srfi-1) (srfi srfi-26) (ice-9 regex) ) ) ( (#:configure-flags flags) `(cons (string-append "--enable-languages=" ,(string-join languages ",") ) (remove (cut string-match "--enable-languages.*" <>) ,flags) ) ) ((#:phases phases) `(modify-phases ,phases (add-after 'install 'remove-broken-or-conflicting-files (lambda* (#:key outputs #:allow-other-keys) (for-each delete-file (find-files (string-append (assoc-ref outputs "out") "/bin") ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)") ) #t ) ) ) ) ) ) ) ) (define %generic-search-paths ;; This is the language-neutral search path for GCC. Entries in $CPATH are ;; not considered "system headers", which means GCC can raise warnings for ;; issues in those headers. 'CPATH' is the only one that works for ;; front-ends not in the C family. (list (search-path-specification (variable "CPATH") (files '("include")) ) (search-path-specification (variable "LIBRARY_PATH") (files '("lib" "lib64")) ) ) ) (define-public gfortran-11 (hidden-package (custom-gcc gcc-11 "gfortran" '("fortran") %generic-search-paths ) ) ) (define-public gfortran-10 (hidden-package (custom-gcc gcc-10 "gfortran" '("fortran") %generic-search-paths ) ) ) (define-public gfortran-toolchain-10 (package (inherit (make-gcc-toolchain gfortran-10)) (synopsis "Complete GCC tool chain for fortean lang development") (description "This package provides a complete GCC tool chain for fortran lang development to be installed in user profiles. This includes fortran, as well as libc (headers and binaries, plus debugging symbols in the @code{debug} output), and binutils." ) ) ) (define-public gfortran-toolchain-11 (package (inherit (make-gcc-toolchain gfortran-11)) (synopsis "Complete GCC tool chain for fortean lang development") (description "This package provides a complete GCC tool chain for fortran lang development to be installed in user profiles. This includes fortran, as well as libc (headers and binaries, plus debugging symbols in the @code{debug} output), and binutils." ) ) )