From 64c0dae830fa3319bb31cd1cd9ec659ea1d72ef8 Mon Sep 17 00:00:00 2001 From: Matthias Benkard Date: Tue, 29 Jan 2008 18:00:59 +0100 Subject: Adapt the system definition to the new directory layout. darcs-hash:4ab511393dc6beabc22e1e121f055f4075a0f091 --- JOURNAL | 2 +- objective-cl.asd | 25 ++++++++++++++++++++----- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/JOURNAL b/JOURNAL index 7c518ce..cba64f7 100644 --- a/JOURNAL +++ b/JOURNAL @@ -222,7 +222,7 @@ management, as we could put instances into the hash tables and register finalisers for them just after they were fully created. So that's what I made the program do. One of the results is much -shorter and clearer code, but the more interestng one is a speed +shorter and clearer code, but the more interesting one is a speed improvement of around the factor 3, making 100'000 calls to NSMethodSignature#getArgumentTypeAtIndex:, which previously called MAKE-INSTANCE for each returned value, take around 10s on my machine. diff --git a/objective-cl.asd b/objective-cl.asd index 07634dc..237dc84 100644 --- a/objective-cl.asd +++ b/objective-cl.asd @@ -80,8 +80,11 @@ (defvar *objc-obj-dir*) (defclass objc-source-file (source-file) ()) +(defclass objcl-c-source-file (objc-source-file) () + (:documentation "An Objective-CL C source file")) (defmethod source-file-type ((c objc-source-file) (s module)) "m") +(defmethod source-file-type ((c objcl-c-source-file) (s module)) "c") (defmethod perform :before (o (c objc-source-file)) ;; Copy the Objective-C sources to the target directory. @@ -92,7 +95,8 @@ (enough-namestring x source-dir)) (mapcan #'(lambda (x) (directory (merge-pathnames x source-dir))) - '(#p"**/*.m" #p"**/*.h" #p"**/GNUmakefile.*" + '(#p"**/*.c" #p"**/*.m" #p"**/*.h" + #p"**/GNUmakefile.*" #p"**/*.make" #p"**/GNUmakefile" #p"**/*.in" #p"**/configure" #p"**/configure.ac" #p"libffi/**/*" #p"libffi/**/*.*")))) @@ -136,6 +140,14 @@ (directory-namestring (first files)))) files)) +#+(or) +(defmethod output-files ((o compile-op) (c objc-source-file)) + (print (list (merge-pathnames (make-pathname :directory '(:relative "Objective-C" "obj") + :type "o") + (merge-pathnames + (component-pathname (find-system "objective-cl-libobjcl")) + (component-pathname c)))))) + (defmethod output-files ((o compile-op) (c objc-source-file)) (list (merge-pathnames (make-pathname :directory '(:relative "obj") :type "o") @@ -159,8 +171,11 @@ :depends-on () :components ((:module "Objective-C" :components ((:objc-source-file "libobjcl") - (:objc-source-file "libffi_support") - (:objc-source-file "objc_support") - (:objc-source-file "objc-runtime-apple") - (:objc-source-file "objc-runtime-gnu")))) + (:objc-source-file "PyObjC/libffi_support") + (:objc-source-file "PyObjC/objc_support") + (:objc-source-file "PyObjC/objc-runtime-apple") + (:objc-source-file "PyObjC/objc-runtime-compat") + (:objc-source-file "PyObjC/objc-runtime-gnu") + (:objc-source-file "JIGS/ObjcRuntimeUtilities2") + (:objcl-c-source-file "JIGS/ObjcRuntimeUtilities")))) :serial t) -- cgit v1.2.3