X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/3132d173e59e29a68a305b4e67b8fb3d5faa0e96..7ecf52b3a8b7814e8d3301262e957d49bce61198:/tools/config.lisp diff --git a/tools/config.lisp b/tools/config.lisp index 2d3209a..aa15f19 100644 --- a/tools/config.lisp +++ b/tools/config.lisp @@ -3,7 +3,7 @@ #+sbcl (:import-from #:sb-int #:featurep) (:export #:pkg-cflags #:pkg-libs #:pkg-exists-p #:pkg-version #:pkg-variable) - (:export #:featurep #:sbcl>=)) + (:export #:featurep #:sbcl>= #:clisp>=)) (in-package #:pkg-config) @@ -68,8 +68,7 @@ (split-string (first (run-pkg-config package t "--libs")))) -(defun pkg-exists-p (package &key version atleast-version max-version - ( error t)) +(defun pkg-exists-p (package &key version atleast-version max-version error) (let ((version-check (cond (version (format nil "= ~A" version)) @@ -123,7 +122,9 @@ (values (parse-integer (lisp-implementation-version) :end dot1) (parse-integer (lisp-implementation-version) :start (1+ dot1) :end dot2) - (parse-integer (lisp-implementation-version) :start (1+ dot2) :junk-allowed t)))) + (if dot2 + (parse-integer (lisp-implementation-version) :start (1+ dot2) :junk-allowed t) + 0)))) (defun sbcl>= (req-major req-minor req-micro) (multiple-value-bind (major minor micro) (sbcl-version) (or @@ -135,3 +136,21 @@ (defun sbcl>= (req-major req-minor req-micro) (declare (ignore req-major req-minor req-micro)) nil) + +#+clisp +(progn + (defun clisp-version () + (let* ((dot (position #\. (lisp-implementation-version)))) + (values + (parse-integer (lisp-implementation-version) :end dot) + (parse-integer (lisp-implementation-version) :start (1+ dot) :junk-allowed t)))) + (defun clisp>= (req-major req-minor) + (multiple-value-bind (major minor) (clisp-version) + (or + (> major req-major) + (and (= major req-major) (> minor req-minor)))))) + +#-clisp +(defun clisp>= (req-major req-minor) + (declare (ignore req-major req-minor)) + nil)