-
Notifications
You must be signed in to change notification settings - Fork 0
/
edward.egg
114 lines (103 loc) · 3.82 KB
/
edward.egg
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
((author "Sören Tempel")
(synopsis "An extensible implementation of the ed text editor as defined in POSIX.1-2008")
(version "1.0.1")
(category tools)
(license "GPLv3")
(platform unix)
(dependencies r7rs srfi-1 srfi-14 srfi-37 matchable posix-regex)
(test-dependencies test)
(component-options (csc-options "-d3" "-O3" "-X" "r7rs" "-R" "r7rs"))
(cond-expand
(package
(component-options
;; need static linkange for program component, dynamic for tests
(linkage dynamic static)))
(else
(component-options
;; don't build static libraries to reduce compile time
(linkage dynamic))))
(components
(extension edward.util
(source "./lib/util.sld")
(source-dependencies
"./lib/util.scm"))
(extension edward.parse
(component-dependencies edward.util)
(source "./lib/parse.sld")
(source-dependencies
"./lib/parse/parse.scm"
"./lib/parse/util.scm"
"./lib/parse/repl.scm"))
(extension edward.replace
(component-dependencies edward.parse)
(source "./lib/replace.sld")
(source-dependencies
"./lib/replace.scm"))
(extension edward.buffer
(component-dependencies edward.util)
(source "./lib/buffer.sld")
(source-dependencies
"./lib/buffer/stack.scm"
"./lib/buffer/buffer.scm"))
(extension edward.ed.addr
(csc-options "-X" "r7rs" "-R" "r7rs")
(component-dependencies edward.parse)
(source "./lib/ed/addr.sld")
(source-dependencies
"./lib/ed/addr.scm"))
(extension edward.ed.editor
(component-dependencies
edward.util
edward.parse
edward.replace
edward.buffer
edward.ed.addr)
(source "./lib/ed/editor.sld")
(source-dependencies
"./lib/ed/editor.scm"))
(extension edward.ed.cmd
(component-dependencies
edward.util
edward.parse
edward.ed.addr
edward.ed.editor)
(source "./lib/ed/cmd.sld")
(source-dependencies
"./lib/ed/cmd.scm"))
(extension edward.ed.posix
(component-dependencies
edward.util
edward.parse
edward.replace
edward.ed.cmd
edward.ed.addr
edward.ed.editor)
(source "./lib/ed/posix.sld")
(source-dependencies
;; XXX: The posix component relies heavily on macros provided by
;; the cmd component. Unfourtunately, CHICKEN does not correctly
;; detect that via component-dependencies and as such we need a
;; source dependency to ensure posix.scm is rebuld on macro changes.
;;
;; See https://bugs.call-cc.org/ticket/1684
"./lib/ed/cmd.scm"
"./lib/ed/posix.scm"))
(extension edward.cli
(component-dependencies
edward.ed.cmd
edward.ed.posix
edward.ed.editor)
(source "./lib/cli.sld")
(source-dependencies
"./lib/cli.scm"))
(program bin/edward
;; In package mode, link statically against Egg dependencies.
(cond-expand
(package
(linkage static))
(else
(linkage dynamic)))
;; Uncomment to also link against C libraries statically.
;(link-options "-L" "-static")
(install-name "edward")
(component-dependencies edward.cli))))