1CC=cc
2CFLAGS=-O3 -Wall -Wextra
3
4
5pigz: pigz.o yarn.o zopfli/deflate.o zopfli/blocksplitter.o zopfli/tree.o zopfli/lz77.o zopfli/cache.o zopfli/hash.o zopfli/util.o zopfli/squeeze.o zopfli/katajainen.o
6          $(CC) $(LDFLAGS) -o pigz $^ -lpthread -lz -lm
7          ln -f pigz unpigz
8
9pigz.o: pigz.c yarn.h zopfli/deflate.h zopfli/util.h
10
11yarn.o: yarn.c yarn.h
12
13zopfli/deflate.o: zopfli/deflate.c zopfli/deflate.h zopfli/blocksplitter.h zopfli/lz77.h zopfli/squeeze.h zopfli/tree.h zopfli/zopfli.h zopfli/cache.h zopfli/hash.h zopfli/util.h
14
15zopfli/blocksplitter.o: zopfli/blocksplitter.c zopfli/blocksplitter.h zopfli/deflate.h zopfli/lz77.h zopfli/squeeze.h zopfli/tree.h zopfli/util.h zopfli/zopfli.h zopfli/cache.h zopfli/hash.h
16
17zopfli/tree.o: zopfli/tree.c zopfli/tree.h zopfli/katajainen.h zopfli/util.h
18
19zopfli/lz77.o: zopfli/lz77.h zopfli/util.h zopfli/cache.h zopfli/hash.h zopfli/zopfli.h
20
21zopfli/cache.o: zopfli/cache.c zopfli/cache.h zopfli/util.h
22
23zopfli/hash.o: zopfli/hash.c zopfli/hash.h zopfli/util.h
24
25zopfli/util.o: zopfli/util.c zopfli/util.h
26
27zopfli/squeeze.o: zopfli/squeeze.c zopfli/squeeze.h zopfli/blocksplitter.h zopfli/deflate.h zopfli/tree.h zopfli/util.h zopfli/zopfli.h zopfli/lz77.h zopfli/cache.h zopfli/hash.h
28
29zopfli/katajainen.o: zopfli/katajainen.c zopfli/katajainen.h
30
31dev: pigz pigzt pigzn
32
33pigzt: pigzt.o yarnt.o zopfli/deflate.o zopfli/blocksplitter.o zopfli/tree.o zopfli/lz77.o zopfli/cache.o zopfli/hash.o zopfli/util.o zopfli/squeeze.o zopfli/katajainen.o
34          $(CC) $(LDFLAGS) -o pigzt $^ -lpthread -lz -lm
35
36pigzt.o: pigz.c yarn.h
37          $(CC) $(CFLAGS) -DDEBUG -g -c -o pigzt.o pigz.c
38
39yarnt.o: yarn.c yarn.h
40          $(CC) $(CFLAGS) -DDEBUG -g -c -o yarnt.o yarn.c
41
42pigzn: pigzn.o zopfli/deflate.o zopfli/blocksplitter.o zopfli/tree.o zopfli/lz77.o zopfli/cache.o zopfli/hash.o zopfli/util.o zopfli/squeeze.o zopfli/katajainen.o
43          $(CC) $(LDFLAGS) -o pigzn $^ -lz -lm
44
45pigzn.o: pigz.c
46          $(CC) $(CFLAGS) -DDEBUG -DNOTHREAD -g -c -o pigzn.o pigz.c
47
48test: pigz
49          ./pigz -kf pigz.c ; ./pigz -t pigz.c.gz
50          ./pigz -kfb 32 pigz.c ; ./pigz -t pigz.c.gz
51          ./pigz -kfp 1 pigz.c ; ./pigz -t pigz.c.gz
52          ./pigz -kfz pigz.c ; ./pigz -t pigz.c.zz
53          ./pigz -kfK pigz.c ; ./pigz -t pigz.c.zip
54          printf "" | ./pigz -cdf | wc -c | test `cat` -eq 0
55          printf "x" | ./pigz -cdf | wc -c | test `cat` -eq 1
56          printf "xy" | ./pigz -cdf | wc -c | test `cat` -eq 2
57          printf "xyz" | ./pigz -cdf | wc -c | test `cat` -eq 3
58          (printf "w" | gzip ; printf "x") | ./pigz -cdf | wc -c | test `cat` -eq 2
59          (printf "w" | gzip ; printf "xy") | ./pigz -cdf | wc -c | test `cat` -eq 3
60          (printf "w" | gzip ; printf "xyz") | ./pigz -cdf | wc -c | test `cat` -eq 4
61          -@if test "`whereis compress | grep /`" != ""; then \
62            echo 'compress -f < pigz.c | ./unpigz | cmp - pigz.c' ;\
63            compress -f < pigz.c | ./unpigz | cmp - pigz.c ;\
64          fi
65          @rm -f pigz.c.gz pigz.c.zz pigz.c.zip
66
67tests: dev test
68          ./pigzn -kf pigz.c ; ./pigz -t pigz.c.gz
69          @rm -f pigz.c.gz
70
71docs: pigz.pdf
72
73pigz.pdf: pigz.1
74          groff -mandoc -f H -T ps pigz.1 | ps2pdf - pigz.pdf
75
76clean:
77          @rm -f *.o zopfli/*.o pigz unpigz pigzn pigzt pigz.c.gz pigz.c.zz pigz.c.zip
78