1/*
2 * testlib library test harness operator
3 *
4 *	unit :TESTLIB: library [ testhdr*.h ] [ -ltestlib* ] test*.c
5 *
6 * *.[ch] assumed to be in ./unit
7 */
8
9.TEST.DEBUG.SYMBOLS : .MAKE .VIRTUAL .FORCE .REPEAT
10	set --debug-symbols
11	CCFLAGS += $(CC.DEBUG)
12	CC.LIB.TYPE = -g
13
14":TESTLIB:" : .MAKE .OPERATOR
15	eval
16	.SOURCE : $$(<)
17	.SOURCE.h : ../../lib/libast/$$(<) ../../lib/libast
18	$(<) :TEST: testlib $(>:O>1:C,.*\.[ch]$,$(<)/&,)
19		set +x; $$(*:O=1) $$(TESTLIBFLAGS) $(>:O=1) $(<) $$(*:O>1) $$(CC) $$(CCFLAGS) $$(LDFLAGS) $$(TESTLIBCCFLAGS)
20	test.$$(>:N=*.h:O=1:B:/\(..\).*/\1/:-$(<:B:/\(..\).*/\1/)) : .TEST.DEBUG.SYMBOLS testlib $$(>:V:O>1:N!=*.c) $$$(*.ARGS:D=$(<):B:S=.c) .CLEARARGS
21		set +x; $$(*:O=1) $$(TESTLIBFLAGS) --verbose $(>:O=1) $(<) $$(*:O>1) $$(CC) $$(CCFLAGS) $$(LDFLAGS) $$(TESTLIBCCFLAGS)
22	end
23