Subject: [bug#27344] [PATCH v2 07/12] gnu: Add asco.

From: Theodoros Foradis <[email-masked]>
Date: Thu, 22 Jun 2017 22:10:00 +0300

* gnu/packages/engineering.scm (asco): New variable.
---
 gnu/packages/engineering.scm | 47 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index f38786d1a..1bb29e6f6 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -59,6 +59,7 @@
   #:use-module (gnu packages linux)               ;FIXME: for pcb
   #:use-module (gnu packages m4)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -1059,3 +1060,49 @@ language, ADMS transforms Verilog-AMS code into other target languages.")
   VHDL'93 as well as VHDL'87 standards are supported.")
     (license (list license:gpl2+
                    license:lgpl2.0+)))) ; freehdl's libraries
+
+(define-public asco
+  (package
+    (name "asco")
+    (version "0.4.10")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/asco/asco/" version "/ASCO-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "119rbc2dc8xzwxvykgji0v0nrzvymjmlizr1bc2mihspj686kxsl"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags '("all" "asco-mpi")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* '("errfunc.c" "asco.c")
+               (("cp ") (string-append (which "cp") " "))
+               (("nice") (string-append (assoc-ref inputs "coreutils") "/bin/nice")))
+             (substitute* "Makefile"
+               (("<FULL_PATH_TO_MPICH>/bin/mpicc") (which "mpicc")))
+             #t))
+         (replace 'install ; no install target
+           (lambda* (#:key outputs #:allow-other-keys)
+             (for-each (lambda (file)
+                         (install-file file (string-append
+                                             (assoc-ref outputs "out")
+                                             "/bin")))
+                       '("asco" "asco-mpi" "asco-test"
+                         "tools/alter/alter" "tools/log/log"))
+             #t)))))
+    (native-inputs
+     `(("mpi" ,openmpi)))
+    (inputs
+     `(("coreutils" ,coreutils-minimal)))
+    (home-page "http://asco.sourceforge.net/")
+    (synopsis "SPICE circuit optimizer")
+    (description
+     "ASCO brings circuit optimization capabilities to existing SPICE simulators using a
+high-performance parallel differential evolution (DE) optimization algorithm.")
+    (license license:gpl2+)))
-- 
2.13.1