X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/f2b5b118faa5b7c18a3dbb9a93a65947e84fbde4..b3c0b56ac7680ef81789e9d2d91f3ea290159c46:/tools/config.lisp diff --git a/tools/config.lisp b/tools/config.lisp index 432c906..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) @@ -122,9 +122,9 @@ (defun |#?-reader| (stream subchar arg) (declare (ignore subchar arg)) - (let ((not-p (when (char= (peek-char nil stream) #\-) - (read-char stream))) - (conditional (read stream t nil t))) + (let* ((not-p (when (char= (peek-char nil stream) #\-) + (read-char stream))) + (conditional (read stream t nil t))) (cond (*read-suppress* (read stream t nil t)) ((not *read-eval*) @@ -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))