summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2008-01-29 18:00:59 +0100
committerMatthias Benkard <code@mail.matthias.benkard.de>2008-01-29 18:00:59 +0100
commit64c0dae830fa3319bb31cd1cd9ec659ea1d72ef8 (patch)
treeafd3e006834b5d793053e038c2314adc0894a6f9
parente0fc12f03f6196f06faf870965ab5f4b00edab05 (diff)
Adapt the system definition to the new directory layout.
darcs-hash:4ab511393dc6beabc22e1e121f055f4075a0f091
-rw-r--r--JOURNAL2
-rw-r--r--objective-cl.asd25
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)