1# This makefile is for the lifelines reports
2
3AUTOMAKE_OPTIONS = no-dependencies
4
5# SELFTEST_REPORTS is to hold all parts of the self-test scripts
6SELFTEST_REPORTS = st_all.ll  \
7	st_aux.li             \
8	st_collate.li         \
9	st_collate_8859-1.li  \
10	st_collate_UTF-8.li   \
11	st_convert.li         \
12	st_date.li            \
13	st_db.li              \
14	st_list.li            \
15	st_name.li            \
16	st_number.li          \
17	st_string.li          \
18	st_string_UTF-8.li    \
19	st_table.li           \
20	trigtest.ll
21SELFTEST_REFERENCE = st_all.ref st_all_stdout.ref trigtest.ref
22SELFTEST_OUTPUTS =   st_all.out st_all.stdout
23
24TEST_ITER_REPORTS = test_forindi.ll test_forfam.ll test_indi_it.ll \
25                    test_fam_it.ll test_othr_it.ll
26TEST_ITER_REFERENCE = test_forindi.ref test_forfam.ref test_indi_it.ref \
27                      test_fam_it.ref test_othr_it.ref
28TEST_ITER_OUTPUTS = test_forindi.out test_forfam.out test_indi_it.out \
29                    test_fam_it.out test_othr_it.out
30TEST_ITER_DB = ti.ged
31
32TEST_OUTPUTS = $(SELFTEST_OUTPUTS) $(TEST_ITER_OUTPUTS)
33
34TESTS = selftest
35pkg_REPORTS = $(SELFTEST_REPORTS) $(SELFTEST_REFERENCE) \
36              $(TEST_ITER_REPORTS) $(TEST_ITER_REFERENCE) $(TEST_ITER_DB)
37CLEANFILES =  $(TEST_OUTPUTS) errs.log llines.leak_log selftest
38
39subreportdir = $(pkgdatadir)/st
40subreport_DATA = $(pkg_REPORTS)
41dist_subreport_DATA = $(pkg_REPORTS)
42
43LLEXEC = ../../src/liflines/llexec
44LLINES = ../../src/liflines/llines
45
46.PHONY: local test_iter st_all selftest
47selftest: ti test_iter st_all
48
49local: $(TEST_ITER_DB) $(TEST_ITER_REPORTS) $(SELFTEST_REPORTS)
50	ln -fs /bin/true selftest
51	for i in $? ; do \
52	    dest=`basename $$i` ;\
53	    if [ $$dest != $$i ] ; then \
54		cp $$i $$dest ; \
55	    fi ;\
56	done
57
58ti: local ti.ged $(LLINES)
59	rm -rf ti
60	(echo yurti ; echo yyq) | $(LLINES) ./ti  > /dev/null
61
62test_iter: $(TEST_ITER_REPORTS) $(TEST_ITER_REFERENCE) $(TEST_ITER_DB) $(LLEXEC)
63	@for i in $(TEST_ITER_REPORTS) ; do \
64	    this=`basename $$i .ll` ;\
65	    echo "$(LLEXEC) ./ti -x  ./$$this.ll > $$this.out" ;\
66	    $(LLEXEC) ./ti -x  ./$$this.ll > $$this.out;\
67	    if diff $$this.out $(srcdir)/$$this.ref >/dev/null ; then\
68	        : echo "ok" ; \
69	    else \
70	        echo "test $$i failed - to see failure execute" ; \
71		echo "diff $$this.out $(srcdir)/$$this.ref" ; \
72		ln -fs /bin/false selftest ;\
73	    fi \
74	done
75
76st_all: $(SELFTEST_REPORTS) $(LLEXEC)
77	(echo 1; echo 1 ;echo 0 ; echo st_all.out) | \
78	      $(LLEXEC) ./ti -x ./st_all.ll > st_all.stdout
79	@if diff st_all.out $(srcdir)/st_all.ref >/dev/null ; then\
80	        : echo "test st_all output ok" ; \
81	    else \
82	        echo "test st_all output failed - to see failure execute" ; \
83	        echo "diff st_all.out $(srcdir)/st_all.ref" ; \
84		ln -fs /bin/false selftest ;\
85	    fi
86	@if diff st_all.stdout $(srcdir)/st_all_stdout.ref >/dev/null ; then\
87	        : echo "test st_all stdout ok" ; \
88	    else \
89	        echo "test st_all failed - to see failure execute" ; \
90	        echo "diff st_all.stdout $(srcdir)/st_all_stdout.ref" ; \
91		ln -fs /bin/false selftest ;\
92	    fi
93