summaryrefslogtreecommitdiff
blob: e4965029f77e207a5d4c8e71d63672f5ea8135f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
diff -Nur a/linedit.asd b/linedit.asd
--- a/linedit.asd	2010-09-14 22:08:59.000000000 +0200
+++ b/linedit.asd	2013-04-01 20:08:27.109977598 +0200
@@ -24,40 +24,6 @@
 
 (in-package :linedit-system)
 
-(defvar *gcc* "/usr/bin/gcc")
-
-(defvar *gcc-options*
-  #-(or darwin macosx)
-  (list "-shared" "-fPIC")
-  #+(or darwin macosx)
-  (append
-   (list "-dynamic"  "-bundle")
-   #+(or x86 x86-64)
-   (list "-arch" "x86_64" "-arch" "i386")
-   #-sbcl
-   (list "/usr/lib/bundle1.o" "-flat_namespace" "-undefined" "suppress")))
-
-;;; Separate class so that we don't mess up other packages
-(defclass uffi-c-source-file (c-source-file) ())
-
-(defmethod output-files ((o compile-op) (c uffi-c-source-file))
-  (list (make-pathname :name (component-name c)
-		       :type #-(or darwin macosx) "so" #+(or darwin macosx) "dylib"
-		       :defaults (component-pathname c))))
-
-(defmethod perform ((o load-op) (c uffi-c-source-file))
-  (let ((loader (intern (symbol-name '#:load-foreign-library) :uffi)))
-    (dolist (f (asdf::input-files o c))
-      (funcall loader f :module (pathname-name f)))))
-
-(defmethod perform ((o compile-op) (c uffi-c-source-file))
-  (unless (zerop (run-shell-command "~A ~A ~{~A ~}-o ~A"
-				    *gcc*
-				    (namestring (component-pathname c))
-				    *gcc-options*
-				    (namestring (car (output-files o c)))))
-    (error 'operation-error :component c :operation o)))
-
 (defsystem :linedit
     :version "0.17.0"
     :depends-on (:uffi :terminfo :osicat)
@@ -69,10 +35,10 @@
    (:file "matcher" :depends-on ("packages"))
 
    ;; Backend
-   (:file "backend" :depends-on ("utility-macros"))
-   (:uffi-c-source-file "terminal_glue")
+   (:file "uffi-loader" :depends-on ("packages"))
+   (:file "backend" :depends-on ("utility-macros" "uffi-loader"))
    (:file "terminal-translations" :depends-on ("packages"))
-   (:file "terminal" :depends-on ("terminal-translations" "backend" "terminal_glue"))
+   (:file "terminal" :depends-on ("terminal-translations" "backend" "uffi-loader"))
    (:file "smart-terminal" :depends-on ("terminal" "matcher"))
    (:file "dumb-terminal" :depends-on ("terminal"))
 
@@ -81,8 +47,7 @@
    (:file "line" :depends-on ("utility-macros"))
    (:file "buffer" :depends-on ("utility-macros"))
    (:file "command-keys" :depends-on ("packages"))
-   (:uffi-c-source-file "signals")
-   (:file "editor" :depends-on ("backend" "rewindable" "signals"
+   (:file "editor" :depends-on ("backend" "rewindable"
 				"line" "buffer" "command-keys"))
    (:file "main" :depends-on ("editor"))
    (:file "complete" :depends-on ("utility-macros"))