1CC=gcc 2CFLAGS=-O3 -Wall -Wextra -Wno-unknown-pragmas -Wcast-qual 3LDFLAGS= 4# CFLAGS=-O3 -Wall -Wextra -Wno-unknown-pragmas -Wcast-qual -g -fsanitize=thread 5# LDFLAGS=-g -fsanitize=thread 6# CFLAGS=-O3 -Wall -Wextra -Wno-unknown-pragmas -Wcast-qual -g -fsanitize=address 7# LDFLAGS=-g -fsanitize=address 8LIBS=-lm -lpthread -lz 9ZOPFLI=zopfli/src/zopfli/ 10ZOP=deflate.o blocksplitter.o tree.o lz77.o cache.o hash.o util.o squeeze.o katajainen.o symbols.o 11 12# use gcc and gmake on Solaris 13 14pigz: pigz.o yarn.o try.o $(ZOP) 15 $(CC) $(LDFLAGS) -o pigz pigz.o yarn.o try.o $(ZOP) $(LIBS) 16 ln -f pigz unpigz 17 18pigz.o: pigz.c yarn.h try.h $(ZOPFLI)deflate.h $(ZOPFLI)util.h 19 20yarn.o: yarn.c yarn.h 21 22try.o: try.c try.h 23 24deflate.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 $(ZOPFLI)symbols.h 25 $(CC) $(CFLAGS) -c $(ZOPFLI)deflate.c 26 27blocksplitter.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 28 $(CC) $(CFLAGS) -c $(ZOPFLI)blocksplitter.c 29 30tree.o: $(ZOPFLI)tree.c $(ZOPFLI)tree.h $(ZOPFLI)katajainen.h $(ZOPFLI)util.h 31 $(CC) $(CFLAGS) -c $(ZOPFLI)tree.c 32 33lz77.o: $(ZOPFLI)lz77.c $(ZOPFLI)lz77.h $(ZOPFLI)util.h $(ZOPFLI)cache.h $(ZOPFLI)hash.h $(ZOPFLI)zopfli.h $(ZOPFLI)symbols.h 34 $(CC) $(CFLAGS) -c $(ZOPFLI)lz77.c 35 36cache.o: $(ZOPFLI)cache.c $(ZOPFLI)cache.h $(ZOPFLI)util.h 37 $(CC) $(CFLAGS) -c $(ZOPFLI)cache.c 38 39hash.o: $(ZOPFLI)hash.c $(ZOPFLI)hash.h $(ZOPFLI)util.h 40 $(CC) $(CFLAGS) -c $(ZOPFLI)hash.c 41 42util.o: $(ZOPFLI)util.c $(ZOPFLI)util.h 43 $(CC) $(CFLAGS) -c $(ZOPFLI)util.c 44 45squeeze.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 $(ZOPFLI)symbols.h 46 $(CC) $(CFLAGS) -c $(ZOPFLI)squeeze.c 47 48katajainen.o: $(ZOPFLI)katajainen.c $(ZOPFLI)katajainen.h 49 $(CC) $(CFLAGS) -c $(ZOPFLI)katajainen.c 50 51symbols.o: $(ZOPFLI)symbols.c $(ZOPFLI)symbols.h 52 $(CC) $(CFLAGS) -c $(ZOPFLI)symbols.c 53 54dev: pigz pigzj pigzt pigzn 55 56pigzj: pigzj.o yarn.o try.o 57 $(CC) $(LDFLAGS) -o pigzj pigzj.o yarn.o try.o $(LIBS) 58 59pigzj.o: pigz.c yarn.h try.h 60 $(CC) $(CFLAGS) -DNOZOPFLI -c -o pigzj.o pigz.c 61 62pigzt: pigzt.o yarnt.o try.o $(ZOP) 63 $(CC) $(LDFLAGS) -o pigzt pigzt.o yarnt.o try.o $(ZOP) $(LIBS) 64 65pigzt.o: pigz.c yarn.h try.h 66 $(CC) $(CFLAGS) -DPIGZ_DEBUG -g -c -o pigzt.o pigz.c 67 68yarnt.o: yarn.c yarn.h 69 $(CC) $(CFLAGS) -DPIGZ_DEBUG -g -c -o yarnt.o yarn.c 70 71pigzn: pigzn.o tryn.o $(ZOP) 72 $(CC) $(LDFLAGS) -o pigzn pigzn.o tryn.o $(ZOP) $(LIBS) 73 74pigzn.o: pigz.c try.h 75 $(CC) $(CFLAGS) -DPIGZ_DEBUG -DNOTHREAD -g -c -o pigzn.o pigz.c 76 77tryn.o: try.c try.h 78 $(CC) $(CFLAGS) -DPIGZ_DEBUG -DNOTHREAD -g -c -o tryn.o try.c 79 80test: pigz 81 ./pigz -kf pigz.c ; ./pigz -t pigz.c.gz 82 ./pigz -kfb 32 pigz.c ; ./pigz -t pigz.c.gz 83 ./pigz -kfp 1 pigz.c ; ./pigz -t pigz.c.gz 84 ./pigz -kfz pigz.c ; ./pigz -t pigz.c.zz 85 ./pigz -kfK pigz.c ; ./pigz -t pigz.c.zip 86 printf "" | ./pigz -cdf | wc -c | test `cat` -eq 0 87 printf "x" | ./pigz -cdf | wc -c | test `cat` -eq 1 88 printf "xy" | ./pigz -cdf | wc -c | test `cat` -eq 2 89 printf "xyz" | ./pigz -cdf | wc -c | test `cat` -eq 3 90 (printf "w" | gzip ; printf "x") | ./pigz -cdf | wc -c | test `cat` -eq 2 91 (printf "w" | gzip ; printf "xy") | ./pigz -cdf | wc -c | test `cat` -eq 3 92 (printf "w" | gzip ; printf "xyz") | ./pigz -cdf | wc -c | test `cat` -eq 4 93 -@if test "`which compress | grep /`" != ""; then \ 94 echo 'compress -f < pigz.c | ./unpigz | cmp - pigz.c' ;\ 95 compress -f < pigz.c | ./unpigz | cmp - pigz.c ;\ 96 fi 97 @rm -f pigz.c.gz pigz.c.zz pigz.c.zip 98 99tests: dev test 100 ./pigzn -kf pigz.c ; ./pigz -t pigz.c.gz 101 @rm -f pigz.c.gz 102 103docs: pigz.pdf 104 105pigz.pdf: pigz.1 106 groff -mandoc -f H -T ps pigz.1 | ps2pdf - pigz.pdf 107 108all: pigz pigzj pigzt pigzn docs 109 110clean: 111 @rm -f *.o pigz unpigz pigzj pigzn pigzt pigz.c.gz pigz.c.zz pigz.c.zip 112