Update of /project/elephant/cvsroot/elephant In directory clnet:/tmp/cvs-serv22128
Modified Files: TODO config.sexp ele-bdb.asd elephant.asd Log Message: Path creation changes for win32 (need to remove cl-ppcre dependencies)
--- /project/elephant/cvsroot/elephant/TODO 2007/03/19 19:41:35 1.72 +++ /project/elephant/cvsroot/elephant/TODO 2007/03/19 20:35:30 1.73 @@ -11,17 +11,10 @@
TASKS TO GET TO BETA:
-Bugs: -- Lispworks/Mac: error in finalize indexed class -- Lispworks/Mac: %oid missing in BDB-BTREE on close -- Lispworks/Mac: fix warning in ensure-class-using-class :around (eql nil) method -- Fix build for Win32 (Frank) - Migration: - Validate SQL migration 0.6.0->0.6.1 (Robert)
Lisp Support: -- Validate Lispworks on Mac - Validate Lispworks on PC - Validate OpenMCL pre-1.1 on Mac OS X - Validate OpenMCL 1.1 and/or 64-bit on Mac OS X? --- /project/elephant/cvsroot/elephant/config.sexp 2007/02/22 20:19:57 1.7 +++ /project/elephant/cvsroot/elephant/config.sexp 2007/03/19 20:35:30 1.8 @@ -1,11 +1,38 @@ -((:berkeley-db-include-dir . "/opt/local/BerkeleyDB.4.5/") +#+(or sbcl allegro) +((:berkeley-db-include-dir . "/opt/local/include/db45/") (:berkeley-db-lib-dir . "/opt/local/lib/db45/") - (:berkeley-db-lib . "/opt/local/BerkeleyDB.4.5/lib/libDB-4.5.dylib") + (:berkeley-db-lib . "/opt/local/lib/db45/libdb-4.5.dylib") (:berkeley-db-deadlock . "/opt/local/bin/db45_deadlock") (:pthread-lib . nil) (:clsql-lib . nil) (:compiler . :gcc))
+#+openmcl +((:berkeley-db-include-dir . "/usr/local/BerkeleyDB.4.5/include/") + (:berkeley-db-lib-dir . "/usr/local/BerkeleyDB.4.5/lib/") + (:berkeley-db-lib . "/usr/local/BerkeleyDB.4.5/lib/libdb-4.5.dylib") + (:pthread-lib . nil) + (:clsql-lib . nil) + (:compiler . :gcc)) + +#+(and lispworks (not windows)) +((:berkeley-db-include-dir . "/opt/local/include/db45/") + (:berkeley-db-lib-dir . "/opt/local/lib/db45/") + (:berkeley-db-lib . "/opt/local/lib/db45/libdb-4.5.dylib") + (:berkeley-db-deadlock . "/opt/local/bin/db45_deadlock") + (:pthread-lib . nil) + (:clsql-lib . nil) + (:compiler . :gcc)) + +#+(or mswindows windows) +((:berkeley-db-include-dir . "C:/Programme/Oracle/Berkeley DB 4.5.20/include/") + (:berkeley-db-lib-dir . "C:/Programme/Oracle/Berkeley DB 4.5.20/bin/") + (:berkeley-db-lib . "C:/Programme/Oracle/Berkeley DB 4.5.20/bin/libdb45.dll") + (:berkeley-db-deadlock . "C:/Programme/Oracle/Berkeley DB 4.5.20/bin/db_deadlock.exe") + (:pthread-lib . nil) + (:clsql-lib . nil) + (:compiler . :cygwin)) + ;; Berkeley 4.5 is required, each system will have different settings for ;; these directories, use this as an indication of what each key means ;; --- /project/elephant/cvsroot/elephant/ele-bdb.asd 2007/03/18 20:40:50 1.22 +++ /project/elephant/cvsroot/elephant/ele-bdb.asd 2007/03/19 20:35:30 1.23 @@ -27,6 +27,18 @@ ;; Compile bdb lib and load libraries ;;
+#+(or windows mswindows) +(defun path-for-cygwin (path) + "DOS pathname -> cygwin pathname. Replace backslashes with slashes and drive letter with directory. +"C:\dir\" -> "/C/dir" (drive C: must be mounted as /C/ in cgwin." + (let ((result (namestring path))) + (setf result (cl-ppcre:regex-replace "([A-Z]):" + result + #'(lambda (match &rest registers) + (format nil "/~a" (first registers))) + :simple-calls t)) + (setf result (cl-ppcre:regex-replace-all "\" result "/")))) + (defclass bdb-c-source (elephant-c-source) ())
(defmethod compiler-options ((compiler (eql :gcc)) (c bdb-c-source) &key &allow-other-keys) @@ -38,18 +50,18 @@ (subseq (pathname-name (make-pathname :defaults (get-config-option :berkeley-db-lib c)) ) 3)) -
(defmethod compiler-options ((compiler (eql :cygwin)) (c bdb-c-source) &key &allow-other-keys) (append (library-directories c) - (call-next-method) - (list "-ldb45"))) + (list "-ldb45") + (call-next-method)))
(defun library-directories (c) (let ((include (make-pathname :defaults (get-config-option :berkeley-db-include-dir c))) (lib (make-pathname :defaults (get-config-option :berkeley-db-lib-dir c)))) #+(or windows mswindows) - (list (format nil "-L"~A"" lib) (format nil "-I"~A"" include)) + (list (format nil "-L'~A'" (path-for-cygwin lib)) + (format nil "-I'~A'" (path-for-cygwin include))) #-(or windows mswindows) (list (format nil "-L~A" lib) (format nil "-I~A" include))))
--- /project/elephant/cvsroot/elephant/elephant.asd 2007/03/16 14:44:44 1.37 +++ /project/elephant/cvsroot/elephant/elephant.asd 2007/03/19 20:35:30 1.38 @@ -97,7 +97,8 @@ #+(or mswindows windows) (progn (let* ((pathname (component-pathname c)) - (directory (directory-namestring pathname)) + (directory #+lispworks (make-pathname :host (pathname-host pathname) :directory (pathname-directory pathname)) + #-lispworks (make-pathname :device (pathname-device pathname) :directory (pathname-directory pathname))) (stdout-lines) (stderr-lines) (exit-status)) (let ((command (format nil "~A ~{~A ~}" (c-compiler-path c)