Megatest

Check-in [3f257f9ad1]
Login
Overview
Comment:another try at deps
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.65-real-new-runs-view
Files: files | file ages | folders
SHA1: 3f257f9ad1184932a64fd345464a0654ddd7ff12
User & Date: mrwellan on 2021-02-24 14:01:09
Other Links: branch diff | manifest | tags
Context
2021-02-24
21:11
Added .o to deps for fossil-hash. check-in: cd3fed23c9 user: mrwellan tags: v1.65-real-new-runs-view
14:01
another try at deps check-in: 3f257f9ad1 user: mrwellan tags: v1.65-real-new-runs-view
03:42
Added some needed deps. check-in: 23492e7b0f user: matt tags: v1.65-real-new-runs-view
Changes

Modified Makefile from [dc6abbd027] to [13afacba6b].

150
151
152
153
154
155
156
157
158
159
160
161
162
163
164

165
166
167
168

169
170
171
172
173
174
175
176
177
178
179
180
	fossil wiki export java-script-lib > $(PREFIX)/share/js/jquery-3.1.0.slim.min.js

$(PREFIX)/share/db/mt-pg.sql : mt-pg.sql
	mkdir -p $(PREFIX)/share/db
	$(INSTALL) mt-pg.sql $(PREFIX)/share/db/mt-pg.sql

# Include the generated dependency file
# include build.inc

# Special dependencies for the module includes
$(MOFILE) $(MOIMPFILES) : megatest-fossil-hash.scm
# we are going to generate this by running make without -j
# and only adding the needed deps. The full deps have too many
# circular deps and can not (yet) be resolved.


mofiles/dcommonmod.o mofiles/configfmod.o mofiles/ods.o \
      mofiles/apimod.o mofiles/rmtmod.o : \
      mofiles/commonmod.o


mofiles/dbmod.o : mofiles/commonmod.o mofiles/ods.o mofiles/configfmod.o
mofiles/servermod.o mofiles/rmtmod.o : mofiles/dbmod.o

dcommon.o : mofiles/dcommonmod.o


# megatest.o : $(MOIMPFILES)
# mofiles/commonmod.o : megatest-fossil-hash.scm
# mofiles/dbmod.o \
#       mofiles/servermod.o \
#       mofiles/apimod.o \
#       mofiles/dcommonmod.o \







|







>
|
<
|
|
>
|
|
|
|
|







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166

167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
	fossil wiki export java-script-lib > $(PREFIX)/share/js/jquery-3.1.0.slim.min.js

$(PREFIX)/share/db/mt-pg.sql : mt-pg.sql
	mkdir -p $(PREFIX)/share/db
	$(INSTALL) mt-pg.sql $(PREFIX)/share/db/mt-pg.sql

# Include the generated dependency file
include build.inc

# Special dependencies for the module includes
$(MOFILE) $(MOIMPFILES) : megatest-fossil-hash.scm
# we are going to generate this by running make without -j
# and only adding the needed deps. The full deps have too many
# circular deps and can not (yet) be resolved.

## 
## mofiles/dcommonmod.o mofiles/configfmod.o mofiles/ods.o mofiles/apimod.o mofiles/rmtmod.o mofiles/dbmod.o : \

##       mofiles/commonmod.o
## 
## mofiles/dbmod.o : mofiles/ods.o
## mofiles/dbmod.o : mofiles/configfmod.o
## mofiles/servermod.o mofiles/rmtmod.o : mofiles/dbmod.o
## 
## dcommon.o : mofiles/dcommonmod.o
## 

# megatest.o : $(MOIMPFILES)
# mofiles/commonmod.o : megatest-fossil-hash.scm
# mofiles/dbmod.o \
#       mofiles/servermod.o \
#       mofiles/apimod.o \
#       mofiles/dcommonmod.o \

Modified build.inc from [e62c69cea0] to [3ca41ba17c].

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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
# To regenerate this file do:
#   (cd utils/;ck52 csc gendeps.scm) && ./utils/gendeps allunits *scm
#   cp allunits.inc build.inc
#

mofiles/apimod.o : mofiles/commonmod.o
api.o : rmt.o
api.o : db.o

api.o : tasks.o
api.o : mofiles/commonmod.o

api.o : mofiles/apimod.o
api.o : mofiles/dbmod.o
archive.o : db.o
archive.o : common.o
archive.o : mofiles/configfmod.o
archive.o : mofiles/commonmod.o
archive.o : mofiles/dbmod.o
client.o : common.o
client.o : db.o
client.o : mofiles/commonmod.o
client.o : mofiles/dbmod.o
client.o : rmt.o
client.o : mofiles/servermod.o
common.o : mofiles/commonmod.o
common.o : mofiles/dbmod.o
common.o : mofiles/configfmod.o
common.o : mofiles/servermod.o
mofiles/configfmod.o : mofiles/commonmod.o
configf.o : process.o
configf.o : env.o
configf.o : mofiles/commonmod.o
configf.o : mofiles/configfmod.o
dashboard-context-menu.o : common.o
dashboard-context-menu.o : db.o
dashboard-context-menu.o : gutils.o
dashboard-context-menu.o : rmt.o
dashboard-context-menu.o : ezsteps.o
dashboard-context-menu.o : subrun.o
dashboard-context-menu.o : mofiles/commonmod.o
dashboard-context-menu.o : mofiles/configfmod.o
dashboard-context-menu.o : mofiles/dbmod.o
dashboard-guimonitor.o : common.o
dashboard-guimonitor.o : db.o
dashboard-guimonitor.o : tasks.o

dashboard-guimonitor.o : mofiles/commonmod.o
dashboard-guimonitor.o : mofiles/dbmod.o
dashboard.o : common.o
dashboard.o : margs.o
dashboard.o : items.o
dashboard.o : db.o
dashboard.o : configf.o
dashboard.o : process.o
dashboard.o : launch.o
dashboard.o : runs.o
dashboard.o : dashboard-tests.o
dashboard.o : dashboard-guimonitor.o
dashboard.o : tree.o
dashboard.o : dcommon.o
dashboard.o : dashboard-context-menu.o
dashboard.o : vg.o
dashboard.o : subrun.o
dashboard.o : mt.o
dashboard.o : mofiles/commonmod.o
# dashboard.o : commonmod.import.o
dashboard.o : mofiles/configfmod.o
# dashboard.o : configfmod.import.o
dashboard.o : mofiles/dcommonmod.o
# dashboard.o : dcommonmod.import.o
dashboard.o : mofiles/apimod.o
dashboard.o : mofiles/dbmod.o
dashboard.o : mofiles/servermod.o
dashboard-tests.o : common.o
dashboard-tests.o : db.o
dashboard-tests.o : gutils.o
dashboard-tests.o : rmt.o
dashboard-tests.o : ezsteps.o
dashboard-tests.o : subrun.o
dashboard-tests.o : mofiles/commonmod.o
dashboard-tests.o : mofiles/configfmod.o
dashboard-tests.o : mofiles/dbmod.o


mofiles/dbmod.o : mofiles/commonmod.o
mofiles/dbmod.o : ods.o
mofiles/dbmod.o : mofiles/configfmod.o
db.o : common.o
db.o : client.o
db.o : mt.o
db.o : mofiles/commonmod.o
db.o : mofiles/configfmod.o
db.o : mofiles/dbmod.o
db.o : mofiles/servermod.o
mofiles/dcommonmod.o : mofiles/commonmod.o
mofiles/dcommonmod.o : mofiles/configfmod.o
dcommon.o : gutils.o


dcommon.o : db.o
dcommon.o : mofiles/commonmod.o
dcommon.o : mofiles/dbmod.o
dcommon.o : mofiles/configfmod.o
dcommon.o : mofiles/dcommonmod.o
dcommon.o : mofiles/servermod.o
diff-report.o : common.o
diff-report.o : rmt.o
diff-report.o : mofiles/commonmod.o


env.o : mofiles/commonmod.o
ezsteps.o : db.o
ezsteps.o : common.o
ezsteps.o : items.o
ezsteps.o : runconfig.o
ezsteps.o : mofiles/commonmod.o

ezsteps.o : mofiles/configfmod.o
ezsteps.o : mofiles/dbmod.o
genexample.o : mofiles/commonmod.o
http-transport.o : common.o
http-transport.o : db.o
http-transport.o : portlogger.o
http-transport.o : rmt.o
http-transport.o : mofiles/commonmod.o
http-transport.o : mofiles/configfmod.o
http-transport.o : mofiles/dbmod.o
http-transport.o : mofiles/servermod.o
index-tree.o : lock-queue.o
index-tree.o : db.o
index-tree.o : common.o
index-tree.o : items.o
index-tree.o : runconfig.o
index-tree.o : mofiles/commonmod.o
items.o : common.o
items.o : mofiles/commonmod.o
items.o : mofiles/configfmod.o
launch.o : subrun.o
launch.o : common.o
launch.o : configf.o
launch.o : db.o
launch.o : ezsteps.o
launch.o : mofiles/commonmod.o
launch.o : mofiles/configfmod.o
launch.o : mofiles/dbmod.o
lock-queue.o : common.o
lock-queue.o : tasks.o
lock-queue.o : mofiles/commonmod.o
megatest.o : common.o
megatest.o : margs.o
megatest.o : runs.o
megatest.o : launch.o
megatest.o : server.o
megatest.o : client.o
megatest.o : tests.o
megatest.o : genexample.o
megatest.o : db.o
megatest.o : tdb.o
megatest.o : mt.o
megatest.o : api.o
megatest.o : env.o
megatest.o : diff-report.o
megatest.o : mofiles/commonmod.o
# megatest.o : commonmod.import.o
megatest.o : mofiles/configfmod.o
# megatest.o : configfmod.import.o
megatest.o : ods.o
# megatest.o : ods.import.o
megatest.o : mofiles/dbmod.o
# megatest.o : dbmod.import.o
megatest.o : mofiles/servermod.o
# megatest.o : servermod.import.o
megatest.o : mofiles/apimod.o
# megatest.o : apimod.import.o
megatest.o : mofiles/rmtmod.o
# megatest.o : rmtmod.import.o
mlaunch.o : db.o
mlaunch.o : common.o
monitor.o : db.o
monitor.o : common.o
monitor.o : items.o
monitor.o : runconfig.o
mtexec.o : margs.o
mtexec.o : configf.o
mtexec.o : mofiles/configfmod.o
mt.o : db.o
mt.o : common.o
mt.o : tests.o
mt.o : rmt.o
mt.o : mofiles/commonmod.o
mt.o : mofiles/configfmod.o
mt.o : mofiles/dbmod.o
mtut.o : common.o
mtut.o : margs.o
mtut.o : configf.o
mtut.o : mofiles/commonmod.o
mtut.o : mofiles/configfmod.o
newdashboard.o : common.o
newdashboard.o : megatest-version.o
newdashboard.o : margs.o
newdashboard.o : mofiles/commonmod.o
newdashboard.o : mofiles/dbmod.o
newdashboard.o : dcommon.o
newdashboard.o : mofiles/configfmod.o
ods.o : mofiles/commonmod.o
portlogger.o : db.o
portlogger.o : mofiles/commonmod.o
portlogger.o : mofiles/configfmod.o
portlogger.o : mofiles/dbmod.o
process.o : mofiles/commonmod.o
mofiles/rmtmod.o : mofiles/commonmod.o
mofiles/rmtmod.o : mofiles/apimod.o
mofiles/rmtmod.o : mofiles/dbmod.o
rmt.o : api.o
rmt.o : http-transport.o
rmt.o : mofiles/commonmod.o
rmt.o : mofiles/apimod.o
rmt.o : mofiles/rmtmod.o
rmt.o : mofiles/dbmod.o
rmt.o : mofiles/configfmod.o
rmt.o : mofiles/servermod.o
runconfig.o : common.o
runconfig.o : mofiles/commonmod.o
runs.o : db.o
runs.o : common.o
runs.o : items.o
runs.o : runconfig.o
runs.o : tests.o
runs.o : server.o
runs.o : mt.o
runs.o : archive.o
runs.o : mofiles/commonmod.o
runs.o : mofiles/configfmod.o
runs.o : mofiles/dbmod.o
runs.o : mofiles/servermod.o
mofiles/servermod.o : mofiles/commonmod.o
mofiles/servermod.o : mofiles/configfmod.o
mofiles/servermod.o : mofiles/dbmod.o
server.o : common.o
server.o : db.o
server.o : http-transport.o
server.o : launch.o
server.o : mofiles/commonmod.o
server.o : mofiles/dbmod.o
server.o : mofiles/configfmod.o
server.o : mofiles/servermod.o
sharedat.o : configf.o
sharedat.o : margs.o
sharedat.o : megatest-version.o
spublish.o : margs.o
subrun.o : db.o
subrun.o : common.o
subrun.o : mt.o
subrun.o : mofiles/commonmod.o
subrun.o : mofiles/configfmod.o
subrun.o : mofiles/dbmod.o
synchash.o : db.o
synchash.o : server.o
synchash.o : mofiles/dbmod.o
tasks.o : db.o
tasks.o : rmt.o
tasks.o : common.o
tasks.o : cgisetup/models/pgdb.o
tasks.o : mofiles/commonmod.o
tasks.o : mofiles/configfmod.o
tasks.o : mofiles/dbmod.o
tcmt.o : margs.o
tcmt.o : rmt.o
tcmt.o : common.o
tcmt.o : mofiles/commonmod.o
tdb.o : common.o
tdb.o : client.o
tdb.o : mt.o
tdb.o : db.o
tdb.o : mofiles/commonmod.o
tdb.o : mofiles/dbmod.o
tdb.o : ods.o
tests.o : lock-queue.o
tests.o : db.o
tests.o : tdb.o
tests.o : common.o
tests.o : items.o
tests.o : runconfig.o
tests.o : server.o
tests.o : mofiles/commonmod.o
tests.o : mofiles/dbmod.o
tests.o : mofiles/configfmod.o
tests.o : mofiles/servermod.o
tree.o : margs.o
tree.o : launch.o
tree.o : gutils.o
tree.o : db.o
tree.o : server.o
tree.o : dcommon.o
tree.o : mofiles/commonmod.o
tree.o : mofiles/dbmod.o
ulex.o : pkts.o





|
|
|
>
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
<
|
|
<
|
|
|
|
<
|
<
|
<
|
|
|
<
<
<
<
<
<
<
<

>
>
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
|
|
|
|
|
|
|
|
|
>
>
|
|
|
|
|
|
>

|
|
<
<
<
<
|
|
|
<
<
<
<
<
<
|
<
|
|
<
<
<
<
<
|
|
|
<
<
<
<
|
<
<
<
<
<
<
<
<
<
<
<
<
|
<
|
<
<
<
|
<
<
<

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
<
<
<
<
<
<
<
<
|
<
<
<
|
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
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





115
116
117




118












119

120



121



122




























123









124



125

126















































































# To regenerate this file do:
#   (cd utils/;ck52 csc gendeps.scm) && ./utils/gendeps allunits *scm
#   cp allunits.inc build.inc
#

tree.o : mofiles/commonmod.o
tests.o : mofiles/commonmod.o
tdb.o : mofiles/commonmod.o
tcmt.o : mofiles/commonmod.o
tasks.o : mofiles/commonmod.o
subrun.o : mofiles/commonmod.o
mofiles/servermod.o : mofiles/commonmod.o
server.o : mofiles/commonmod.o
runs.o : mofiles/commonmod.o
runconfig.o : mofiles/commonmod.o
mofiles/rmtmod.o : mofiles/commonmod.o
rmt.o : mofiles/commonmod.o
process.o : mofiles/commonmod.o
portlogger.o : mofiles/commonmod.o
mofiles/ods.o : mofiles/commonmod.o
newdashboard.o : mofiles/commonmod.o
mtut.o : mofiles/commonmod.o
mt.o : mofiles/commonmod.o
megatest.o : mofiles/commonmod.o
lock-queue.o : mofiles/commonmod.o
launch.o : mofiles/commonmod.o
items.o : mofiles/commonmod.o
index-tree.o : mofiles/commonmod.o
http-transport.o : mofiles/commonmod.o
genexample.o : mofiles/commonmod.o
ezsteps.o : mofiles/commonmod.o
env.o : mofiles/commonmod.o
diff-report.o : mofiles/commonmod.o
mofiles/dcommonmod.o : mofiles/commonmod.o
dcommon.o : mofiles/commonmod.o
mofiles/dbmod.o : mofiles/commonmod.o
db.o : mofiles/commonmod.o
dashboard.o : mofiles/commonmod.o
dashboard-tests.o : mofiles/commonmod.o
dashboard-guimonitor.o : mofiles/commonmod.o
dashboard-context-menu.o : mofiles/commonmod.o
mofiles/configfmod.o : mofiles/commonmod.o
configf.o : mofiles/commonmod.o
common.o : mofiles/commonmod.o
client.o : mofiles/commonmod.o
archive.o : mofiles/commonmod.o
mofiles/apimod.o : mofiles/commonmod.o
api.o : mofiles/commonmod.o
tree.o : mofiles/dbmod.o
tests.o : mofiles/dbmod.o
tdb.o : mofiles/dbmod.o
tasks.o : mofiles/dbmod.o
synchash.o : mofiles/dbmod.o
subrun.o : mofiles/dbmod.o
mofiles/servermod.o : mofiles/dbmod.o
server.o : mofiles/dbmod.o
runs.o : mofiles/dbmod.o
mofiles/rmtmod.o : mofiles/dbmod.o

rmt.o : mofiles/dbmod.o
portlogger.o : mofiles/dbmod.o

newdashboard.o : mofiles/dbmod.o
mt.o : mofiles/dbmod.o
megatest.o : mofiles/dbmod.o
launch.o : mofiles/dbmod.o

http-transport.o : mofiles/dbmod.o

ezsteps.o : mofiles/dbmod.o

dcommon.o : mofiles/dbmod.o
db.o : mofiles/dbmod.o
dashboard.o : mofiles/dbmod.o








dashboard-tests.o : mofiles/dbmod.o
dashboard-guimonitor.o : mofiles/dbmod.o
dashboard-context-menu.o : mofiles/dbmod.o
common.o : mofiles/dbmod.o
client.o : mofiles/dbmod.o
archive.o : mofiles/dbmod.o
api.o : mofiles/dbmod.o
dcommon.o : mofiles/dcommonmod.o
dashboard.o : mofiles/dcommonmod.o
tests.o : mofiles/servermod.o
server.o : mofiles/servermod.o
runs.o : mofiles/servermod.o
rmt.o : mofiles/servermod.o
megatest.o : mofiles/servermod.o
http-transport.o : mofiles/servermod.o
dcommon.o : mofiles/servermod.o
db.o : mofiles/servermod.o
dashboard.o : mofiles/servermod.o
common.o : mofiles/servermod.o
client.o : mofiles/servermod.o
tests.o : mofiles/configfmod.o
tasks.o : mofiles/configfmod.o
subrun.o : mofiles/configfmod.o
mofiles/servermod.o : mofiles/configfmod.o
server.o : mofiles/configfmod.o
runs.o : mofiles/configfmod.o
rmt.o : mofiles/configfmod.o
portlogger.o : mofiles/configfmod.o
newdashboard.o : mofiles/configfmod.o
mtut.o : mofiles/configfmod.o
mtexec.o : mofiles/configfmod.o
mt.o : mofiles/configfmod.o
megatest.o : mofiles/configfmod.o
launch.o : mofiles/configfmod.o
items.o : mofiles/configfmod.o
http-transport.o : mofiles/configfmod.o
ezsteps.o : mofiles/configfmod.o
mofiles/dcommonmod.o : mofiles/configfmod.o
dcommon.o : mofiles/configfmod.o




mofiles/dbmod.o : mofiles/configfmod.o
db.o : mofiles/configfmod.o
dashboard.o : mofiles/configfmod.o






dashboard-tests.o : mofiles/configfmod.o

dashboard-context-menu.o : mofiles/configfmod.o
configf.o : mofiles/configfmod.o





common.o : mofiles/configfmod.o
archive.o : mofiles/configfmod.o
tdb.o : mofiles/ods.o




megatest.o : mofiles/ods.o












mofiles/dbmod.o : mofiles/ods.o

mofiles/rmtmod.o : mofiles/apimod.o



rmt.o : mofiles/apimod.o



megatest.o : mofiles/apimod.o




























dashboard.o : mofiles/apimod.o









api.o : mofiles/apimod.o



rmt.o : mofiles/rmtmod.o

megatest.o : mofiles/rmtmod.o















































































Modified utils/gendeps.scm from [a6a7866112] to [cf8bd0f8fc].

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
    (lambda ()
      (apply print args))))

(define (mofiles-adjust->dot-o inf)
  (regex-case
   inf
   ("^.*mod$" _ (conc "mofiles/"inf".o"))

   ("pgdb"    _ (conc "cgisetup/models/"inf".o"))
   (else (conc inf".o"))))




(define (compunit targfname files)
  (let* ((unitdata   (make-hash-table))
	 (moduledata (make-hash-table))

	 (filesdata  (make-hash-table))
	 (unitdec    (regexp "^\\(declare\\s+\\(unit\\s+([^\\s]+)\\)\\)"))
	 (unituse    (regexp "^\\(declare\\s+\\(uses\\s+([^\\s]+)\\)\\)"))
	 (moduledec  (regexp "^\\(module\\s+([\\s]+)"))
	 (importuse  (regexp "^\\(import\\s+(.*)\\)")) ;; captures string of imports (one line)
	 (dotport    (open-output-file (conc targfname ".dot")))

	 (incport    (open-output-file (conc targfname ".inc")))
	 )

    (portprint dotport "digraph usedeps {")
    (portprint incport "# To regenerate this file do:
#   (cd utils/;ck52 csc gendeps.scm) && ./utils/gendeps allunits *scm
#   cp allunits.inc build.inc
#
")
    (for-each
     (lambda (fname)
       (let* ((sname (string-substitute "\\.scm$" "" fname)))







>



>
>
>



>



|


>


>
|
|







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
    (lambda ()
      (apply print args))))

(define (mofiles-adjust->dot-o inf)
  (regex-case
   inf
   ("^.*mod$" _ (conc "mofiles/"inf".o"))
   ("ods"     _ (conc "mofiles/"inf".o"))
   ("pgdb"    _ (conc "cgisetup/models/"inf".o"))
   (else (conc inf".o"))))

(define (hh-push ht k1 val)
  (hash-table-set! ht k1 (cons val (hash-table-ref/default ht k1 '()))))

(define (compunit targfname files)
  (let* ((unitdata   (make-hash-table))
	 (moduledata (make-hash-table))
	 (incldata   (make-hash-table))
	 (filesdata  (make-hash-table))
	 (unitdec    (regexp "^\\(declare\\s+\\(unit\\s+([^\\s]+)\\)\\)"))
	 (unituse    (regexp "^\\(declare\\s+\\(uses\\s+([^\\s]+)\\)\\)"))
	 (moduledec  (regexp "^\\(module\\s+([\\S]+).*"))
	 (importuse  (regexp "^\\(import\\s+(.*)\\)")) ;; captures string of imports (one line)
	 (dotport    (open-output-file (conc targfname ".dot")))
	 (incdotport (open-output-file (conc targfname"-inc.dot")))
	 (incport    (open-output-file (conc targfname ".inc")))
	 )
    (portprint dotport    "digraph usedeps {")
    (portprint incdotport "digraph usedeps {")
    (portprint incport    "# To regenerate this file do:
#   (cd utils/;ck52 csc gendeps.scm) && ./utils/gendeps allunits *scm
#   cp allunits.inc build.inc
#
")
    (for-each
     (lambda (fname)
       (let* ((sname (string-substitute "\\.scm$" "" fname)))
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
		     (regex-case
		      inl
		      (unitdec   (_ unitname)
				 (if (equal? sname unitname) ;; good if same
				     (if (not (hash-table-exists? unitdata unitname))
					 (hash-table-set! unitdata unitname (make-hash-table)))))
		      (unituse   (_ usingname)
				 (portprint dotport "\""usingname"\" -> \""sname"\"")
				 (portprint incport
					    (if (or (string-search ".import$" sname)
						    (string-search ".import$" usingname))
						"# "
						"")
					    (mofiles-adjust->dot-o sname)" : "
					    (mofiles-adjust->dot-o usingname)))
		      ;; (moduledec (_ modname)    (print "Module:   " modname))


		      ;; (importuse (_ importname) (print "Imports: " importname))


		      (else #f))
		     (loop (read-line)))))))))
     files)










    (portprint dotport "}")

    (close-output-port dotport)
    (close-output-port incport)))













;; seen is hash of seen functions

(define usage "Usage: gendeps targfile files...
")

(define (main)







|
<
<
<
<
<
<
<
|
>
>
|
>
>



>
>
>
>
>
>
>
>
>
>

>

|
>
>
>
>
>
>
>
>
>
>
>
>







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
115
116
117
118
119
		     (regex-case
		      inl
		      (unitdec   (_ unitname)
				 (if (equal? sname unitname) ;; good if same
				     (if (not (hash-table-exists? unitdata unitname))
					 (hash-table-set! unitdata unitname (make-hash-table)))))
		      (unituse   (_ usingname)
				 (portprint dotport "\""usingname"\" -> \""sname"\""))







		      (moduledec (_ modname)
				 (print "Found module "modname)
				 (hash-table-set! moduledata modname sname))
		      (importuse (_ importname)
				 (print "Found import "importname)
				 (hh-push incldata importname sname))
		      (else #f))
		     (loop (read-line)))))))))
     files)
    (hash-table-for-each
     incldata
     (lambda (impname snames)
       (for-each
	(lambda (sname)
	  (if (hash-table-exists? moduledata impname)
	      (make-inc-entry incport incdotport sname impname)
	      (print "No module file found for import " impname)
	      ))
	snames)))
    (portprint dotport "}")
    (portprint incdotport "}")
    (close-output-port dotport)
    (close-output-port incport)
    (close-output-port incdotport)))

(define (make-inc-entry incport incdotport sname impname)
  (let* ((leftname  (mofiles-adjust->dot-o sname))
	 (rightname (mofiles-adjust->dot-o impname)))
    (portprint incport
	       (if (or (string-search ".import$" sname)
		       (string-search ".import$" impname))
		   "# "
		   "")
	       leftname" : "rightname)
    (portprint incdotport "\""impname"\" -> \""sname"\"")))

;; seen is hash of seen functions

(define usage "Usage: gendeps targfile files...
")

(define (main)