diff --git a/glicid/packages/gcc.scm b/glicid/packages/gcc.scm new file mode 100644 index 0000000..852c6cb --- /dev/null +++ b/glicid/packages/gcc.scm @@ -0,0 +1,176 @@ +(define-module (glicid packages glicid) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) +; #:use-module (guix licenses) + #:use-module (gnu packages gawk) + #:use-module (gnu packages gcc) + #:use-module (gnu packages commencement) + #:use-module (guix build-system python) + #:use-module ((guix licenses) #:prefix license:) + #:use-module ((guix utils) #:select (target-64bit?)) + #:use-module (gnu packages) + #:use-module (gnu packages admin) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages freeipmi) + #:use-module (gnu packages linux) + #:use-module (gnu packages mpi) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages parallel) + #:use-module (gnu packages storage) + #:use-module (gnu packages networking) + #:use-module (gnu packages gtk) + #: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 tcl) + #:use-module (gnu packages tls) + #:use-module (gnu packages commencement) + #:use-module (gnu packages gcc) + #:use-module (gnu packages chemistry) + #:use-module (gnu packages sphinx) + #:use-module (srfi srfi-1) + #:use-module (gnu packages mpi) + #:use-module (gnu packages sssd) + #:use-module (gnu packages fabric-management) + #:use-module (gnu packages benchmark) + #:use-module (gnu packages messaging) + #:use-module (gnu packages web) + #:use-module (gnu packages gnome) + #:use-module (gnu packages cluster) + #:use-module (gnu packages libevent) + #:use-module (gnu packages xorg) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages flex) + #:use-module (gnu packages bison) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages autotools) + #:use-module (gnu packages fontutils) + #:use-module (guix build-system gnu) + #:use-module (gnu packages image) + #:use-module (gnu packages maths) + #:use-module (guix utils) + #:use-module (gnu packages cmake) + #:use-module (gnu packages pretty-print) + #:use-module (gnu packages boost) + #:use-module (gnu packages curl) + #:use-module (gnu packages cryptsetup) + #:use-module (gnu packages xml) + #:use-module (gnu packages admin) + #:use-module (gnu packages assembly) + #:use-module (gnu packages authentication) + #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages boost) + #: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 gperf) + #:use-module (gnu packages jemalloc) + #:use-module (gnu packages linux) + #:use-module (gnu packages lua) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages networking) + #:use-module (gnu packages nss) + #:use-module (gnu packages openldap) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages tls) + #:use-module (gnu packages web) +;; #:use-module (gnu packages glicid) + #:use-module (gnu packages pretty-print) + #:use-module (gnu packages virtualization) + + + +) + + +(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 name) + (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."))) + + + + + +;;; glicid/gcc.scm ends here diff --git a/glicid/packages/glicid.scm b/glicid/packages/glicid.scm index 775a734..8e0d466 100644 --- a/glicid/packages/glicid.scm +++ b/glicid/packages/glicid.scm @@ -91,8 +91,7 @@ #:use-module (gnu packages pretty-print) #:use-module (gnu packages virtualization) #:use-module (glicid packages storage) - - + #:use-module (glicid packages gcc) ) diff --git a/glicid/packages/linux.scm b/glicid/packages/linux.scm index cd74c84..6fe6c14 100644 --- a/glicid/packages/linux.scm +++ b/glicid/packages/linux.scm @@ -90,6 +90,7 @@ ;; #:use-module (gnu packages glicid) #:use-module (gnu packages pretty-print) #:use-module (gnu packages virtualization) + #:use-module (glicid packages gcc) )