1# ast nmake recursion order tests
2
3INCLUDE test.def
4
5UNIT nmake
6
7TEST 01 'recursion order basics'
8
9	EXEC	-n --recurse=list
10		INPUT Makefile $':MAKE:'
11		INPUT cmd/Makefile $':MAKE:'
12		INPUT cmd/tstutil/Makefile $':PACKAGE: ast libtstinc:order'
13		INPUT cmd/genutil/Makefile $'genutil :: genutil.c -lnet -ldb -ltstasm -lsys'
14		INPUT cmd/fe/Makefile $':PACKAGE: tstdata:order\nfe :: fe.c -ltstasm'
15		INPUT cmd/be/Makefile $':PACKAGE: tstdata:order\nbe :: be.c -lnetgen -lsys'
16		INPUT cmd/tstdata/Makefile $':PACKAGE: tstutil:order'
17		INPUT lib/Makefile $':MAKE:'
18		INPUT lib/libtstasm/Makefile $'tstasm :LIBRARY: tstasm.c +ljcl -lsys'
19		INPUT lib/libusr/Makefile $'usr :LIBRARY: usr.c'
20		INPUT lib/libtstgen/Makefile $'tstgen :LIBRARY: tstgen.c -ltstasm'
21		INPUT lib/libnet/Makefile $':PACKAGE: be:order\nnet :LIBRARY: net.c -lnetgen'
22		INPUT lib/libnetgen/Makefile $':PACKAGE: fe:order\nnetgen :LIBRARY: netgen.c -ldb -lsys'
23		INPUT lib/libdb/Makefile $'db :LIBRARY: db.c -lusr -ltstgen -lzip'
24		INPUT lib/libsort/Makefile $'sort :LIBRARY: sort.c -lsys'
25		INPUT lib/libtstinc/Makefile $':PACKAGE: tst'
26		OUTPUT - $'lib/libtstinc
27-
28cmd/tstutil
29-
30cmd/tstdata
31-
32lib/libtstasm
33-
34cmd/fe
35lib/libusr
36lib/libtstgen
37-
38lib/libdb
39-
40lib/libnetgen
41-
42cmd/be
43-
44-
45lib/libnet
46-
47cmd/genutil
48lib/libsort
49+
50lib
51cmd'
52
53	EXEC	-n --recurse=prereqs
54		OUTPUT - $'cmd/tstdata : cmd/tstutil
55cmd/tstutil : lib/libtstinc
56cmd/be : cmd/tstdata lib/libnetgen libsys
57lib/libnetgen : cmd/fe lib/libdb libsys
58cmd/fe : cmd/tstdata lib/libtstasm
59lib/libtstasm : libjcl libsys
60lib/libdb : lib/libusr lib/libtstgen libzip
61lib/libtstgen : lib/libtstasm
62cmd/genutil : lib/libnet lib/libdb lib/libtstasm libsys
63lib/libnet : cmd/be lib/libnetgen
64lib/libsort : libsys
65all : lib/libsort cmd/genutil'
66
67TEST 02 'common action recursion'
68
69	EXEC
70		INPUT Makefile $':MAKE: t1.mk t2.mk'
71		INPUT t1.mk $'all :\n\t: $(MAKEFILE) :'
72		INPUT t2.mk $'all :\n\t: $(MAKEFILE) :'
73		ERROR - $'t1.mk:
74+ : t1.mk :
75t2.mk:
76+ : t2.mk :'
77
78	EXEC -n clobber
79		OUTPUT - $'+ ignore rm -f -r  t1.mo t1.ms
80+ ignore rm -f -r  t2.mo t2.ms
81+ ignore rm -f -r  Makefile.mo Makefile.ms'
82		ERROR - $'t1.mk:
83t2.mk:'
84
85	EXEC clobber
86		OUTPUT -
87		ERROR - $'t1.mk:
88+ ignore rm -f -r t1.mo t1.ms
89t2.mk:
90+ ignore rm -f -r t2.mo t2.ms
91+ ignore rm -f -r Makefile.mo Makefile.ms'
92
93	EXEC -n clobber
94		OUTPUT - $'+ ignore rm -f -r
95+ ignore rm -f -r
96+ ignore rm -f -r  '
97		ERROR - $'t1.mk:
98t2.mk:'
99
100	EXEC clobber
101		OUTPUT -
102		ERROR - $'t1.mk:
103+ ignore rm -f -r t1.mo
104t2.mk:
105+ ignore rm -f -r t2.mo
106+ ignore rm -f -r Makefile.mo'
107