Megatest

Diff
Login

Differences From Artifact [706f96cbe4]:

To Artifact [a146f652e2]:


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







-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+

+
+
+

+
+
+
-
+
+
+

+


+
-
-
-
-
+
+
+
+
+
+

+
-
+





+
+
+
+
+
+
+
+
+





+
+
+




















+
+
+
+
+
+
+
+
+
+



+
-
-
+
+




-
-
+
+
+

-
-
+
+

-
-
+
+


-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

-
-
+
+








# make install CSCOPTS='-accumulate-profile -profile-name $(PWD)/profile-ww$(shell date +%V.%u)'
# rm <files>.o ; make install CSCOPTS='-profile' ; ... ;  chicken-profile | less
SHELL=/bin/bash
PREFIX=$(PWD)
CSCOPTS=
INSTALL=install
SRCFILES = common.scm items.scm launch.scm \
   ods.scm runconfig.scm server.scm configf.scm \
   db.scm keys.scm margs.scm megatest-version.scm \
   process.scm runs.scm tasks.scm tests.scm genexample.scm \
   http-transport.scm filedb.scm tdb.scm \
   client.scm mt.scm \
   ezsteps.scm lock-queue.scm sdb.scm \
   rmt.scm api.scm subrun.scm \
   portlogger.scm archive.scm env.scm diff-report.scm cgisetup/models/pgdb.scm 
DELFILES = common.scm items.scm launch.scm \
  ods.scm runconfig.scm server.scm configf.scm \
  db.scm keys.scm margs.scm megatest-version.scm \
  process.scm runs.scm tasks.scm tests.scm genexample.scm \
  http-transport.scm filedb.scm tdb.scm \
  client.scm mt.scm \
  ezsteps.scm lock-queue.scm sdb.scm \
  rmt.scm api.scm subrun.scm \
  portlogger.scm archive.scm env.scm diff-report.scm cgisetup/models/pgdb.scm 

SRCFILES=

# removed from MSRCFILES: ftail.scm
# module source files

MSRCFILES = dbmod.scm rmtmod.scm commonmod.scm apimod.scm		\
archivemod.scm clientmod.scm envmod.scm ezstepsmod.scm itemsmod.scm	\
MSRCFILES = ftail.scm rmtmod.scm commonmod.scm apimod.scm archivemod.scm clientmod.scm configfmod.scm dbmod.scm dcommonmod.scm envmod.scm ezstepsmod.scm itemsmod.scm keysmod.scm launchmod.scm odsmod.scm processmod.scm runconfigmod.scm runsmod.scm servermod.scm subrunmod.scm tasksmod.scm testsmod.scm vgmod.scm megamod.scm
keysmod.scm launchmod.scm odsmod.scm processmod.scm runconfigmod.scm	\
runsmod.scm servermod.scm subrunmod.scm tasksmod.scm testsmod.scm	\
megamod.scm

GMSRCFILES = dcommonmod.scm vgmod.scm treemod.scm 

# Eggs to install (straightforward ones)

EGGS=matchable readline apropos base64 regex-literals format regex-case test coops trace csv \
dot-locking posix-utils posix-extras directory-utils hostinfo tcp-server rpc csv-xml fmt \
json md5 awful http-client spiffy uri-common intarweb spiffy-request-vars \
spiffy-directory-listing ssax sxml-serializer sxml-modifications iup canvas-draw sqlite3
EGGS=matchable readline apropos base64 regex-literals format		\
regex-case test coops trace csv dot-locking posix-utils posix-extras	\
directory-utils hostinfo tcp-server rpc csv-xml fmt json md5 awful	\
http-client spiffy uri-common intarweb spiffy-request-vars		\
spiffy-directory-listing ssax sxml-serializer sxml-modifications iup	\
canvas-draw sqlite3

GUISRCF = dashboard-context-menu.scm dashboard-tests.scm	\
GUISRCF  = dashboard-context-menu.scm dashboard-tests.scm dashboard-guimonitor.scm gutils.scm dcommon.scm tree.scm vg.scm
dashboard-guimonitor.scm gutils.scm dcommon.scm tree.scm vg.scm

OFILES   = $(SRCFILES:%.scm=%.o)
GOFILES  = $(GUISRCF:%.scm=%.o)

MOFILES = $(addprefix mofiles/,$(MSRCFILES:%.scm=%.o))
# compiled import files
MOIMPFILES = $(MSRCFILES:%.scm=%.import.o)

GMOFILES = $(addprefix mofiles/,$(GMSRCFILES:%.scm=%.o))
# compiled import files
GMOIMPFILES = $(GMSRCFILES:%.scm=%.import.o)

%.import.o : %.import.scm
	csc -unit $*.import -c $*.import.scm -o $*.import.o

mofiles/%.o : %.scm
	mkdir -p mofiles
	csc $(CSCOPTS) -J -c $< -o mofiles/$*.o

# a.import.o : a.import.scm a.o
# csc -unit a.import -c a.import.scm -o $*.o

ADTLSCR=mt_laststep mt_runstep mt_ezstep
HELPERS=$(addprefix $(PREFIX)/bin/,$(ADTLSCR))
DEPLOYHELPERS=$(addprefix deploytarg/,$(ADTLSCR))
MTESTHASH=$(shell fossil info|grep checkout:| awk '{print $$2}')

ifeq ($(MTESTHASH),)
$(error MTESTHASH is broken!)
endif

CSIPATH=$(shell which csi)
CKPATH=$(shell dirname $(shell dirname $(CSIPATH)))
# ARCHSTR=$(shell uname -m)_$(shell uname -r)
# BASH_MACHTYPE=$(shell bash -c "echo \$$MACHTYPE")
# ARCHSTR=$(BASH_MACHTYPE)_$(shell lsb_release -sr)
ARCHSTR=$(shell if [[ -e /usr/bin/sw_vers ]]; then /usr/bin/sw_vers -productVersion; else lsb_release -sr; fi)
# ARCHSTR=$(shell bash -c "echo \$$MACHTYPE")

PNGFILES = $(shell cd docs/manual;ls *png)

#all : $(PREFIX)/bin/.$(ARCHSTR) mtest dboard mtut ndboard

IMPORTO = apimod.import.o dbmod.import.o itemsmod.import.o		\
odsmod.import.o runsmod.import.o testsmod.import.o			\
archivemod.import.o keysmod.import.o		\
processmod.import.o servermod.import.o		\
clientmod.import.o envmod.import.o launchmod.import.o rmtmod.import.o	\
subrunmod.import.o  commonmod.import.o			\
ezstepsmod.import.o megamod.import.o runconfigmod.import.o		\
tasksmod.import.o

all : $(PREFIX)/bin/.$(ARCHSTR) mtest dboard mtut tcmt

# why were the files  mofiles/ftail.o mofiles/rmtmod.o mofiles/commonmod.o listed on this target when MOFILES are there?
# Removed non module .o files (i.e. $(OFILES)
mtest: $(OFILES) readline-fix.scm megatest.o $(MOFILES)
	csc $(CSCOPTS) $(OFILES) $(MOFILES) megatest.o -o mtest
mtest: readline-fix.scm megatest.o $(MOFILES) $(MOIMPFILES)
	csc $(CSCOPTS) $(MOFILES) $(MOIMPFILES) megatest.o -o mtest

showmtesthash:
	@echo $(MTESTHASH)

dboard : $(OFILES) $(GOFILES) dashboard.scm $(MOFILES)
	csc $(CSCOPTS) $(OFILES) dashboard.scm $(GOFILES) $(MOFILES) -o dboard
# removing $(GOFILES)
dboard : dashboard.o $(MOFILES) $(MOIMPFILES) $(GMOFILES) $(GMOIMPFILES)
	csc $(CSCOPTS) dashboard.o $(MOFILES) $(MOIMPFILES) $(GMOFILES) $(GMOIMPFILES) -o dboard

ndboard : newdashboard.scm $(OFILES) $(GOFILES)
	csc $(CSCOPTS) $(OFILES) $(GOFILES) newdashboard.scm -o ndboard
ndboard : newdashboard.scm $(GOFILES)
	csc $(CSCOPTS) $(GOFILES) newdashboard.scm -o ndboard

mtut: $(OFILES) $(MOFILES) megatest-fossil-hash.scm mtut.scm
	csc $(CSCOPTS) $(OFILES) $(MOFILES) mtut.scm -o mtut
mtut:  $(MOFILES) megatest-fossil-hash.scm mtut.scm
	csc $(CSCOPTS) $(MOFILES) mtut.scm -o mtut


TCMTOBJS = \
	api.o \
	archive.o \
	cgisetup/models/pgdb.o \
	client.o \
	common.o \
	configf.o \
	db.o \
	env.o \
	http-transport.o \
	items.o \
	keys.o \
	launch.o \
	lock-queue.o \
	margs.o \
	mt.o \
	megatest-version.o \
	ods.o \
	portlogger.o \
	process.o \
	rmt.o \
        $(MOFILES) \
        rpc-transport.o \
	runconfig.o \
	runs.o \
	server.o \
	tasks.o \
	tdb.o \
	tests.o \
	subrun.o \

#TCMTOBJS = \
#	api.o \
#	archive.o \
#	cgisetup/models/pgdb.o \
#	client.o \
#	common.o \
#	configf.o \
#	db.o \
#	env.o \
#	http-transport.o \
#	items.o \
#	keys.o \
#	launch.o \
#	lock-queue.o \
#	margs.o \
#	mt.o \
#	megatest-version.o \
#	ods.o \
#	portlogger.o \
#	process.o \
#	rmt.o \
#        $(MOFILES) \
#        rpc-transport.o \
#	runconfig.o \
#	runs.o \
#	server.o \
#	tasks.o \
#	tdb.o \
#	tests.o \
#	subrun.o \
TCMTOBJS=

tcmt : $(TCMTOBJS) tcmt.scm
	csc $(CSCOPTS) $(TCMTOBJS) tcmt.scm -o tcmt
tcmt : $(TCMTOBJS) $(MOFILES) tcmt.scm
	csc $(CSCOPTS) $(MOFILES) $(TCMTOBJS) tcmt.scm -o tcmt

# install documentation to $(PREFIX)/docs
# DOES NOT REBUILD DOCS
#
$(PREFIX)/share/docs/megatest_manual.html : docs/manual/megatest_manual.html
	mkdir -p $(PREFIX)/share/docs
	$(INSTALL) docs/manual/megatest_manual.html $(PREFIX)/share/docs/megatest_manual.html
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
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







-
+








-
+


+

-





-

-













+
+
+
-
+
+
+







-
+







tests.o runs.o dashboard.o dashboard-tests.o dashboard-context-menu.o dashboard-main.o  : run_records.scm
db.o ezsteps.o keys.o launch.o megatest.o monitor.o runs-for-ref.o runs.o tests.o : key_records.scm
tests.o tasks.o dashboard-tasks.o : task_records.scm
runs.o : test_records.scm
megatest.o : megatest-fossil-hash.scm
rmt.scm client.scm common.scm configf.scm dashboard-guimonitor.scm dashboard-tests.scm dashboard.scm db.scm dcommon.scm ezsteps.scm fs-transport.scm http-transport.scm index-tree.scm items.scm keys.scm launch.scm megatest.scm monitor.scm mt.scm newdashboard.scm runconfig.scm runs.scm server.scm tdb.scm tests.scm tree.scm : common_records.scm
common_records.scm : altdb.scm
vg.o dashboard.o : vg_records.scm
vg.o dashboard.o : vg_records.scm mofiles/dcommonmod.o
dcommon.o : run_records.scm migrate-fix.scm
# Temporary while transitioning to new routine
# runs.o : run-tests-queue-classic.scm  run-tests-queue-new.scm

# for the modularized stuff

mofiles/commonmod.o : megatest-fossil-hash.scm
mofiles/dbmod.o     : mofiles/commonmod.o mofiles/keysmod.o mofiles/tasksmod.o mofiles/odsmod.o
mofiles/commonmod.o : mofiles/configfmod.o mofiles/processmod.o
mofiles/commonmod.o : mofiles/processmod.o
mofiles/rmtmod.o    : mofiles/dbmod.o mofiles/commonmod.o mofiles/apimod.o
mofiles/apimod.o    : mofiles/megamod.o mofiles/dbmod.o
# Removed from megamod.o dep:   mofiles/ftail.o
mofiles/megamod.o   : \
   mofiles/ftail.o \
   mofiles/rmtmod.o \
   mofiles/commonmod.o \
   mofiles/apimod.o \
   mofiles/archivemod.o \
   mofiles/clientmod.o \
   mofiles/configfmod.o \
   mofiles/dbmod.o \
   mofiles/dcommonmod.o \
   mofiles/envmod.o \
   mofiles/ezstepsmod.o \
   mofiles/itemsmod.o \
   mofiles/keysmod.o \
   mofiles/launchmod.o \
   mofiles/odsmod.o \
   mofiles/processmod.o \
   mofiles/runconfigmod.o \
   mofiles/runsmod.o \
   mofiles/servermod.o \
   mofiles/subrunmod.o \
   mofiles/tasksmod.o \
   mofiles/testsmod.o \
   *-inc.scm

mofiles/dcommonmod.o : \
   mofiles/vgmod.o
   mofiles/vgmod.o \
   mofiles/treemod.o \
   mofiles/ezstepsmod.o

# $(MOFILES) : mofiles/commonmod.o

megatest-fossil-hash.scm : $(SRCFILES) megatest.scm *_records.scm
	echo "(define megatest-fossil-hash \"$(MTESTHASH)\")" > megatest-fossil-hash.new
	if ! diff -q megatest-fossil-hash.new megatest-fossil-hash.scm ; then echo copying .new to .scm;cp -f megatest-fossil-hash.new megatest-fossil-hash.scm;fi

$(OFILES) $(GOFILES) : common_records.scm 
$(MOFILES) $(OFILES) $(GOFILES) : common_records.scm 

%.o : %.scm $(MOFILES)
	csc $(CSCOPTS) -c $< $(MOFILES)

$(PREFIX)/bin/.$(ARCHSTR)/mtest : mtest utils/mk_wrapper
	@echo Installing to PREFIX=$(PREFIX)
	$(INSTALL) mtest $(PREFIX)/bin/.$(ARCHSTR)/mtest
231
232
233
234
235
236
237
238
239


240
241
242
243
244
245
246
271
272
273
274
275
276
277


278
279
280
281
282
283
284
285
286







-
-
+
+








$(PREFIX)/bin/mtutil : $(PREFIX)/bin/.$(ARCHSTR)/mtut utils/mk_wrapper
	utils/mk_wrapper $(PREFIX) mtut $(PREFIX)/bin/mtutil
	chmod a+x $(PREFIX)/bin/mtutil

# mtexec

mtexec: $(OFILES) $(MOFILES) megatest-fossil-hash.scm mtexec.scm
	csc $(CSCOPTS) $(OFILES) $(MOFILES) mtexec.scm -o mtexec
mtexec: $(MOFILES) megatest-fossil-hash.scm mtexec.scm
	csc $(CSCOPTS) $(MOFILES) mtexec.scm -o mtexec

$(PREFIX)/bin/.$(ARCHSTR)/mtexec : mtexec
	$(INSTALL) mtexec $(PREFIX)/bin/.$(ARCHSTR)/mtexec

$(PREFIX)/bin/mtexec : $(PREFIX)/bin/.$(ARCHSTR)/mtexec utils/mk_wrapper
	utils/mk_wrapper $(PREFIX) mtexec $(PREFIX)/bin/mtexec
	chmod a+x $(PREFIX)/bin/mtexec
355
356
357
358
359
360
361
362





363
364
365
366
367
368
369
370
371
395
396
397
398
399
400
401

402
403
404
405
406
407

408
409
410
411
412
413
414







-
+
+
+
+
+

-







	mkdir -p ext-tests
	cd ext-tests;fossil open --nested $(MTQA_FOSSIL)

$(MTQA_FOSSIL) :
	fossil clone https://www.kiatoa.com/fossils/megatest_qa $(MTQA_FOSSIL)

clean : 
	rm -f $(OFILES) $(GOFILES) $(MOFILES) $(TCMTOBJS) $(PREFIX)/megatest $(PREFIX)/dashboard mtest mtutil mtut tcmt ftail.import.scm readline-fix.scm serialize-env dboard dboard.o megatest.o dashboard.o megatest-fossil-hash.* altdb.scm mofiles/*.o vg.o
	rm -f $(OFILES) $(GOFILES) $(MOFILES) $(MOIMPFILES) $(TCMTOBJS) \
              $(PREFIX)/megatest $(PREFIX)/dashboard mtest mtutil mtut \
              tcmt *.import.scm readline-fix.scm serialize-env dboard \
              dboard.o megatest.o dashboard.o megatest-fossil-hash.* \
              altdb.scm mofiles/*.o vg.o $(GMOIMPFILES)
	rm -rf share
	rm -f *.import.scm

#======================================================================
# Make the records files
#======================================================================

# vg_records.scm : records.sh
#	./records.sh
479
480
481
482
483
484
485





522
523
524
525
526
527
528
529
530
531
532
533







+
+
+
+
+

targets:
	@grep : Makefile | perl -ne '/^([A-Za-z0-9_-]+):/ && print "$$1\n"'


unit :
	cd tests;make unit

delfiles :
	mv $(DELFILES) attic
	fossil mv $(DELFILES) attic