try verison up sigsegv

This commit is contained in:
SANO Masatoshi 2017-04-25 03:06:27 +09:00
parent c3c123aba3
commit 03b2cf7c1c
2 changed files with 26 additions and 24 deletions

View file

@ -1,15 +1,18 @@
(roswell:include "util-install-quicklisp")
(defpackage :roswell.install.sigsegv+
(:use :cl :roswell.install :roswell.util :roswell.locations))
(:use :cl :roswell.install :roswell.util :roswell.locations)
(:export :*sigsegv-version*))
(in-package :roswell.install.sigsegv+)
(defvar *sigsegv-version* "2.10")
(defvar *sigsegv-version* "2.11")
(defun sigsegv-setup (argv)
(let* ((uri (format nil "~Alibsigsegv-~A.tar.gz" (sigsegv-uri) *sigsegv-version*))
(pos (position #\/ uri :from-end t))
(path (merge-pathnames (format nil "archives/~A" (subseq uri (1+ pos))) (homedir)))
(expand-dir (merge-pathnames (format nil "src/libsigsegv-~A/" *sigsegv-version*) (homedir))))
(expand-dir (merge-pathnames (format nil "src/libsigsegv-~A/" *sigsegv-version*) (homedir)))
(prefix (merge-pathnames (format nil "lib/~A/~A/~A/~A/" (uname-m) (uname) "sigsegv" *sigsegv-version*) (homedir)))
(logdir (ensure-directories-exist (merge-pathnames "impls/log/sigsegv/" (homedir)))))
(if (or (not (probe-file path))
(opt "download.force"))
(progn
@ -17,35 +20,32 @@
(force-output *error-output*)
(download uri path)
(format *error-output* " done.~%"))
(format *error-output* "~&Skip downloading ~A.~%Specify 'download.force=t' to download it again.~%"
uri))
(format *error-output* "~&Skip downloading ~A.~%Specify 'download.force=t' to download it again.~%" uri))
(expand path (ensure-directories-exist (merge-pathnames "src/" (homedir))))
(chdir expand-dir)
(format t "~&configure~%")
(with-open-file (out (ensure-directories-exist
(merge-pathnames "impls/log/sigsegv/config.log" (homedir)))
(with-open-file (out (merge-pathnames "config.log" logdir)
:direction :output :if-exists :append :if-does-not-exist :create)
(format out "~&--~&~A~%" (date))
(let* ((cmd (format nil "./configure '--prefix=~A'"
(ensure-directories-exist(merge-pathnames (format nil "lib/~A/~A/~A/~A/" (uname-m) (uname) "sigsegv" *sigsegv-version*) (homedir)))))
(let* ((cmd (format nil "~A ./configure '--prefix=~A'" (sh) (ensure-directories-exist prefix)))
(*standard-output* (make-broadcast-stream out #+sbcl(make-instance 'count-line-stream))))
(chdir expand-dir)
(uiop/run-program:run-program cmd :output t :ignore-error-status t)))
(uiop/run-program:run-program cmd :output t :error-output t :ignore-error-status t)))
(format t "~&make~%")
(with-open-file (out (ensure-directories-exist
(merge-pathnames "impls/log/sigsegv/make.log" (homedir)))
(with-open-file (out (merge-pathnames "make.log" logdir)
:direction :output :if-exists :append :if-does-not-exist :create)
(format out "~&--~&~A~%" (date))
(let* ((cmd (format nil "make"))
(*standard-output* (make-broadcast-stream out #+sbcl(make-instance 'count-line-stream))))
(uiop/run-program:run-program cmd :output t :ignore-error-status t)))
(uiop/run-program:run-program cmd :output t :error-output t :ignore-error-status t)))
(format t "~&install~%")
(with-open-file (out (merge-pathnames "impls/log/sigsegv/install.log" (homedir))
(with-open-file (out (merge-pathnames "install.log" logdir)
:direction :output :if-exists :append :if-does-not-exist :create)
(format out "~&--~&~A~%" (date))
(let ((*standard-output* (make-broadcast-stream
out #+sbcl(make-instance 'count-line-stream))))
(uiop/run-program:run-program "make install" :output t))
(uiop/run-program:run-program "make install" :output t :error-output t))
(format *error-output* "done.~%")))
(setf (config "sigsegv.version") *sigsegv-version*)
(cons t argv))
(defun sigsegv-help (argv)

View file

@ -1,8 +1,10 @@
(roswell:include '("util-install-quicklisp"
"install+ffcall"))
"install+ffcall"
"install+sigsegv"))
(defpackage :roswell.install.clisp
(:use :cl :roswell.install :roswell.util :roswell.locations
:roswell.install.ffcall+))
:roswell.install.ffcall+
:roswell.install.sigsegv+))
(in-package :roswell.install.clisp)
(defun clisp-get-version ()
@ -62,7 +64,7 @@
(download uri file)
(chdir (opt "src"))
(format t "~%Applying patch:~%")
(uiop/run-program:run-program (format nil "git apply ~A" file) :output t))
(uiop/run-program:run-program (format nil "git apply ~A" file) :output t :error-output t))
(cons t argv))
(defun clisp-config (argv)
@ -75,7 +77,7 @@
(format out "~&--~&~A~%" (date))
(let* ((src (opt "src"))
(cmd (format nil "./configure --with-libsigsegv-prefix=~A ~A '--prefix=~A'"
(merge-pathnames (format nil "lib/~A/~A/~A/~A" (uname-m) (uname) "sigsegv" "2.10") (homedir))
(merge-pathnames (format nil "lib/~A/~A/~A/~A" (uname-m) (uname) "sigsegv" (or (config "sigsegv.version") *sigsegv-version*)) (homedir))
(or #+linux (format nil "--with-libffcall-prefix=~A"
(merge-pathnames (format nil "lib/~A/~A/~A/~A" (uname-m) (uname) "ffcall" (or (config "ffcall.version") *ffcall-version*))
(homedir)))
@ -83,7 +85,7 @@
(opt "prefix")))
(*standard-output* (make-broadcast-stream out #+sbcl(make-instance 'count-line-stream))))
(chdir src)
(uiop/run-program:run-program cmd :output t :ignore-error-status t)))
(uiop/run-program:run-program cmd :output t :error-output t :ignore-error-status t)))
(cons t argv))
(defun clisp-make (argv)
@ -98,7 +100,7 @@
(cmd (format nil "ulimit -s 16384 && make"))
(*standard-output* (make-broadcast-stream out #+sbcl(make-instance 'count-line-stream))))
(chdir src)
(uiop/run-program:run-program cmd :output t :ignore-error-status t)))
(uiop/run-program:run-program cmd :output t :error-output t :ignore-error-status t)))
(cons t argv))
(defun clisp-install (argv)
@ -114,7 +116,7 @@
(format out "~&--~&~A~%" (date))
(let ((*standard-output* (make-broadcast-stream
out #+sbcl(make-instance 'count-line-stream))))
(uiop/run-program:run-program "make install" :output t)))
(uiop/run-program:run-program "make install" :output t :error-output t)))
(format *error-output* "done.~%"))
(cons t argv))
@ -126,7 +128,7 @@
(*standard-output* (make-broadcast-stream
out #+sbcl(make-instance 'count-line-stream))))
(uiop/run-program:run-program
(list (sh) "-lc" (format nil "cd ~S;make clean" src)) :output t))
(list (sh) "-lc" (format nil "cd ~S;make clean" src)) :output t :error-output t))
(format t "done.~%"))
(cons t argv))