* Name the installer sbcl-<version>.msi, not sbcl.msi
* De-impress Xach
<Xach> i was impressed by ID
<Xach> it reminded me of gentle DOOM
--eval '(progn
(write-rtf (read-text "../COPYING") "License.rtf")
(write-wxs "sbcl.wxs")
--eval '(progn
(write-rtf (read-text "../COPYING") "License.rtf")
(write-wxs "sbcl.wxs")
+ (with-open-file (f "version.txt"
+ :direction :output
+ :if-exists :supersede)
+ (write-line (lisp-implementation-version) f))
(quit))'
"$WIX_PATH/candle" sbcl.wxs
"$WIX_PATH/light" sbcl.wixobj "$WIX_PATH/wixui.wixlib" \
-loc "$WIX_PATH/WixUI_en-us.wxl" \
(quit))'
"$WIX_PATH/candle" sbcl.wxs
"$WIX_PATH/light" sbcl.wixobj "$WIX_PATH/wixui.wixlib" \
-loc "$WIX_PATH/WixUI_en-us.wxl" \
+ -out sbcl-`cat version.txt`.msi
+
(loop for flag in (directory "../contrib/*/test-passed")
collect (car (last (pathname-directory flag)))))
(loop for flag in (directory "../contrib/*/test-passed")
collect (car (last (pathname-directory flag)))))
+(defvar *id-char-substitutions* '((#\\ . #\_)
+ (#\/ . #\_)
+ (#\: . #\.)
+ (#\- . #\.)))
+
(defun id (string)
;; Mangle a string till it can be used as an Id. A-Z, a-z, 0-9, and
;; _ are ok, nothing else is.
(defun id (string)
;; Mangle a string till it can be used as an Id. A-Z, a-z, 0-9, and
;; _ are ok, nothing else is.
- (nsubstitute #\_ #\-
- (nsubstitute #\. #\:
- (nsubstitute #\. #\/
- (substitute #\. #\\ string)))))
+ (map 'string (lambda (c)
+ (or (cdr (assoc c *id-char-substitutions*))
+ c))
+ string))
(defun directory-id (name)
(id (format nil "Directory_~A" (enough-namestring name))))
(defun directory-id (name)
(id (format nil "Directory_~A" (enough-namestring name))))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)