X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/a8ed38f3792dd194409e9e7f2a6d5c9d2e2e908f..b3c0b56ac7680ef81789e9d2d91f3ea290159c46:/tools/config.lisp diff --git a/tools/config.lisp b/tools/config.lisp index c38b034..4b3341b 100644 --- a/tools/config.lisp +++ b/tools/config.lisp @@ -4,7 +4,7 @@ (:import-from #:sb-int #:featurep) (:export #:pkg-cflags #:pkg-libs #:pkg-exists-p #:pkg-version #:pkg-variable #:pkg-libdir #:tmpname) - (:export #:featurep #:sbcl>= #:sbcl< #:clisp>=)) + (:export #:featurep #:sbcl>= #:sbcl< #:clisp>= #:clisp<)) (in-package #:pkg-config) @@ -147,7 +147,10 @@ (values-list (loop repeat 4 - for part in (split-string (lisp-implementation-version) :delimiter #\.) + ;; We use . and - as delimiters because some Linux + ;; distributions tend to patch SBCL and add a distro-specific + ;; version tag (like 1.0.19-gentoo). + for part in (split-string (lisp-implementation-version) :delimiter '(#\. #\-)) while (every #'digit-char-p part) collect (parse-integer part)))) (defun sbcl>= (major minor micro &optional patch) @@ -182,9 +185,15 @@ (multiple-value-bind (major minor) (clisp-version) (or (> major req-major) - (and (= major req-major) (> minor req-minor)))))) + (and (= major req-major) (> minor req-minor))))) + (defun clisp< (req-major req-minor) + (not (clisp>= req-major req-minor)))) #-clisp -(defun clisp>= (req-major req-minor) - (declare (ignore req-major req-minor)) - nil) +(progn + (defun clisp>= (req-major req-minor) + (declare (ignore req-major req-minor)) + nil) + (defun clisp< (req-major req-minor) + (declare (ignore req-major req-minor)) + nil))