Makefile revision 1.3
1PROG=	vndcompress
2SRCS=	main.c vndcompress.c vnduncompress.c
3
4LINKS=	${BINDIR}/vndcompress ${BINDIR}/vnduncompress
5MLINKS=	vndcompress.1 vnduncompress.1
6
7DPADD+=	${LIBZ}
8LDADD+=	-lz
9
10WARNS=	5
11
12.include <bsd.prog.mk>
13
14TESTFILES+=	oneblock
15XFAIL+=		oneblock.in-outx
16XFAIL+=		oneblock.cl2-cl2x
17oneblock.in:
18	head -c 512 < /usr/share/dict/words > ${.TARGET}.tmp \
19	&& mv -f ${.TARGET}.tmp ${.TARGET}
20
21TESTFILES+=	tenblock
22XFAIL+=		tenblock.in-outx
23XFAIL+=		tenblock.cl2-cl2x
24tenblock.in:
25	head -c 5120 < /usr/share/dict/words > ${.TARGET}.tmp \
26	&& mv -f ${.TARGET}.tmp ${.TARGET}
27
28TESTFILES+=	smallfile
29XFAIL+=		smallfile.in-outx
30XFAIL+=		smallfile.cl2-cl2x
31smallfile.in:
32	head -c 12345 < /usr/share/dict/words > ${.TARGET}.tmp \
33	&& mv -f ${.TARGET}.tmp ${.TARGET}
34
35CHECKS+=	check-pipe
36CLEANFILES+=	smallfile.cl2pipe
37check-pipe: .PHONY smallfile.cl2 smallfile.cl2pipe
38	cmp ${.ALLSRC}
39smallfile.cl2pipe: smallfile.in vndcompress
40	head -c 54321 < /usr/share/dict/words \
41	| ./vndcompress -l 12345 /dev/stdin ${.TARGET}.tmp \
42	&& mv -f ${.TARGET}.tmp ${.TARGET}
43
44TESTFILES+=	onechunk
45onechunk.in:
46	head -c 65536 < /usr/share/dict/words > ${.TARGET}.tmp \
47	&& mv -f ${.TARGET}.tmp ${.TARGET}
48
49TESTFILES+=	tenchunk
50tenchunk.in:
51	head -c 655360 < /usr/share/dict/words > ${.TARGET}.tmp \
52	&& mv -f ${.TARGET}.tmp ${.TARGET}
53
54TESTFILES+=	extrablock
55XFAIL+=		extrablock.in-outx
56XFAIL+=		extrablock.cl2-cl2x
57extrablock.in:
58	head -c $$((65536 + 512)) < /usr/share/dict/words > ${.TARGET}.tmp \
59	&& mv -f ${.TARGET}.tmp ${.TARGET}
60
61TESTFILES+=	medfile
62XFAIL+=		medfile.in-outx
63XFAIL+=		medfile.cl2-cl2x
64medfile.in:
65	head -c 123456 < /usr/share/dict/words > ${.TARGET}.tmp \
66	&& mv -f ${.TARGET}.tmp ${.TARGET}
67
68TESTFILES+=		onetinyblock
69BLOCKSIZE.onetinyblock=	512
70onetinyblock.in:
71	head -c 512 < /usr/share/dict/words > ${.TARGET}.tmp \
72	&& mv -f ${.TARGET}.tmp ${.TARGET}
73
74TESTFILES+=		tentinyblock
75BLOCKSIZE.tentinyblock=	512
76tentinyblock.in:
77	head -c 5120 < /usr/share/dict/words > ${.TARGET}.tmp \
78	&& mv -f ${.TARGET}.tmp ${.TARGET}
79
80CHECKS+=	check-pipe-restart
81CLEANFILES+=	piperestart.in piperestart.in.tmp
82CLEANFILES+=	piperestart.cl2 piperestart.cl2.tmp
83CLEANFILES+=	piperestart.cl2restart piperestart.cl2restart.tmp
84CLEANFILES+=	piperestart.cl2part piperestart.cl2part.tmp
85check-pipe-restart: .PHONY piperestart.cl2 piperestart.cl2restart
86	cmp ${.ALLSRC}
87piperestart.cl2restart: piperestart.cl2part vndcompress
88	cp piperestart.cl2part ${.TARGET}.tmp \
89	&& head -c 700000 < /usr/share/dict/words \
90	| ./vndcompress -l 655360 -k 1 -rR /dev/stdin ${.TARGET}.tmp \
91	&& mv -f ${.TARGET}.tmp ${.TARGET}
92piperestart.cl2part: vndcompress
93	head -c 600000 < /usr/share/dict/words \
94	| ./vndcompress -l 655360 -k 1 /dev/stdin ${.TARGET}.tmp; \
95	mv -f ${.TARGET}.tmp ${.TARGET}
96piperestart.in:
97	head -c 655360 < /usr/share/dict/words > ${.TARGET}.tmp \
98	&& mv -f ${.TARGET}.tmp ${.TARGET}
99
100CHECKS+=	check-part
101CLEANFILES+=	part.orig part.cl2part part.cl2 part.out
102check-part: .PHONY part.orig part.out
103	cmp part.orig part.out
104part.cl2: part.orig part.cl2part vndcompress
105	cp part.cl2part ${.TARGET}.tmp \
106	&& ./vndcompress -s 512 -rR part.orig ${.TARGET}.tmp \
107	&& mv -f ${.TARGET}.tmp ${.TARGET}
108part.cl2part: part.orig vndcompress
109	./vndcompress -s 512 -p 10 part.orig ${.TARGET}.tmp \
110	&& mv -f ${.TARGET}.tmp ${.TARGET}
111part.orig:
112	head -c 12345 < /usr/share/dict/words > ${.TARGET}.tmp \
113	&& mv -f ${.TARGET}.tmp ${.TARGET}
114
115TESTSUFFIXES+=	in cl2 cl2x out outx
116
117TESTFORMS+=	cl2 cl2x
118TESTFORMS+=	in out
119TESTFORMS+=	in outx
120
121.for testfile in ${TESTFILES}
122.  for suffix in ${TESTSUFFIXES}
123CLEANFILES+=	${testfile}.${suffix}
124CLEANFILES+=	${testfile}.${suffix}.tmp
125.  endfor
126.  for left right in ${TESTFORMS}
127CHECKS.${testfile}+=	check-${testfile}.${left}-${right}
128check-${testfile}.${left}-${right}: .PHONY \
129  ${testfile}.${left} ${testfile}.${right}
130.    if empty(XFAIL:M${testfile}.${left}-${right})
131	cmp ${testfile}.${left} ${testfile}.${right}
132.    else
133	@echo '# expecting failure...' \
134	&& echo 'cmp ${testfile}.${left} ${testfile}.${right}' \
135	&& if cmp ${testfile}.${left} ${testfile}.${right}; then \
136	  echo 'unexpected pass!' \
137	  && exit 1; \
138	fi
139.    endif
140.  endfor
141check-${testfile}: ${CHECKS.${testfile}}
142CHECKS+=	check-${testfile}
143.endfor
144
145check: .PHONY ${CHECKS}
146
147.SUFFIXES: .cl2 .cl2x .in .out .outx
148
149.in.cl2: vndcompress
150	./vndcompress ${.IMPSRC} ${.TARGET} ${BLOCKSIZE.${.PREFIX}}
151
152.in.cl2x:
153	vndcompress ${.IMPSRC} ${.TARGET} ${BLOCKSIZE.${.PREFIX}}
154
155.cl2.out: vndcompress
156	./vndcompress -d ${.IMPSRC} ${.TARGET}
157
158.cl2.outx:
159	vnduncompress ${.IMPSRC} ${.TARGET}
160