diff options
Diffstat (limited to 'gn/packages/virtualization.scm')
| -rw-r--r-- | gn/packages/virtualization.scm | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/gn/packages/virtualization.scm b/gn/packages/virtualization.scm deleted file mode 100644 index 22753f8..0000000 --- a/gn/packages/virtualization.scm +++ /dev/null @@ -1,163 +0,0 @@ -(define-module (gn packages virtualization) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix gexp) - #:use-module (guix utils) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module (guix build-system scons) - #:use-module (gnu packages) - #:use-module (gnu packages boost) - #:use-module (gnu packages compression) - #:use-module (gnu packages cpp) - #:use-module (gnu packages graphviz) - #:use-module (gnu packages image) - #:use-module (gnu packages m4) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages protobuf) - #:use-module (gnu packages python) - #:use-module (gnu packages python-xyz) - #:use-module (past packages python27)) - -(define-public gem5 - (package - (name "gem5") - (version "22.1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gem5.googlesource.com/public/gem5") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1kcdn8rawzhf88lcb2app8m1r1px4ba041kyl7xigslix7qs05k3")) - (snippet - #~(begin - (use-modules (guix build utils)) - ;; For reproducibility. - (substitute* "src/base/date.cc" - (("__DATE__") "\"1970-01-01\"") - (("__TIME__") "\"00:00:00\"")) - ;; Remove vendored pybind11. - (substitute* "ext/sst/Makefile" - (("-I../../ext/pybind11/include/") - "${shell pybind11-config --includes}")) - (substitute* "SConstruct" - ((".*pybind11.*") "")) - (delete-file-recursively "ext/pybind11"))))) - (build-system scons-build-system) - (arguments - `(#:scons-flags - (list "--verbose") - #:build-targets '("build/ARM/gem5.opt" - "build/MIPS/gem5.opt" - "build/NULL/gem5.opt" - "build/POWER/gem5.opt" - "build/RISCV/gem5.opt" - "build/SPARC/gem5.opt" - "build/X86/gem5.opt") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-source - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "SConstruct" - ;; Scons does not use the environment variables by default, - ;; but this substitution makes it do so. - ;(("main = Environment") - ; "main = Environment(ENV=os.environ)\nmain = Environment") - ;; Force adding missing includes into the environment. - (("main\\.Append\\(CPPPATH=\\[Dir\\('" all) - (string-append - all (assoc-ref inputs "kernel-headers") "/include')])\n" - all (assoc-ref inputs "libpng") "/include')])\n" - all (assoc-ref inputs "pybind11") "/include')])\n" - all (assoc-ref inputs "zlib") "/include')])\n" - all))) - (substitute* "ext/libelf/SConscript" - (("m4env\\.Tool" all) - (string-append - "m4env.Append(CPPPATH=[Dir('" - (assoc-ref inputs "kernel-headers") - "/include')])\n" - all))) - (substitute* "ext/libelf/native-elf-format" - (("cc") ,(cc-for-target))))) - ;; This uses the cached results from the previous 'build phase. - ;; Move to after 'install and delete build dir first? - (replace 'check - (lambda* (#:key tests? #:allow-other-keys #:rest args) - (when tests? - (apply (assoc-ref %standard-phases 'build) - #:build-targets '("build/NULL/unittests.opt") - args)))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin/"))) - (mkdir-p bin) - (for-each - (lambda (arch) - (when (directory-exists? - (string-append "build/" (string-upcase arch))) - (copy-file - (string-append "build/" (string-upcase arch) "/gem5.opt") - (string-append bin "gem5-" arch ".opt")) - (copy-file - (string-append "build/" (string-upcase arch) "/gem5py") - (string-append bin "gem5py-" arch)) - (copy-file - (string-append "build/" (string-upcase arch) "/gem5py_m5") - (string-append bin "gem5py_m5-" arch)))) - (list "arm" "mips" "null" "power" "riscv" "sparc" "x86"))))) - (add-after 'install 'install-configs - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (dest (string-append out "/share/gem5/configs"))) - (copy-recursively "configs" dest)))) - (add-after 'install 'wrap-binaries - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (for-each - (lambda (file) - (wrap-program file - `("GUIX_PYTHONPATH" ":" prefix - (,(getenv "GUIX_PYTHONPATH"))))) - (find-files (string-append out "/bin"))))))))) - (inputs - (list gperftools - libpng - protobuf - pybind11 - python - python-pydot - python-six - zlib)) - (native-inputs - (list boost - m4 - pkg-config)) - (home-page "http://gem5.org/") - (synopsis "Modular platform for computer-system architecture research") - (description "The gem5 simulator is a modular platform for computer-system -architecture research, encompassing system-level architecture as well as -processor microarchitecture.") - (license license:bsd-2))) - -(define-public gem5-riscv - (package - (inherit gem5) - (name "gem5-riscv") - (arguments - (substitute-keyword-arguments (package-arguments gem5) - ((#:build-targets _ '()) - `(list "build/RISCV/gem5.opt")) - ((#:phases phases) - `(modify-phases ,phases - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (install-file "build/RISCV/gem5.opt" bin) - (install-file "build/RISCV/gem5py" bin) - (install-file "build/RISCV/gem5py_m5" bin)))))))))) |
