1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
# Unix makefile for the JBIG-KIT PBM tools
# Select an ANSI/ISO C compiler here, e.g. GNU gcc is recommended
CC ?= gcc
# Options for the compiler
CFLAGS ?= -g -O -W -Wall -Wno-unused-result -ansi -pedantic # --coverage
override CPPFLAGS += -I../libjbig
export LD_LIBRARY_PATH := $(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)../libjbig
.SUFFIXES: .1 .5 .txt $(SUFFIXES)
.PHONY: txt test test82 test85 clean
all: pbmtojbg jbgtopbm pbmtojbg85 jbgtopbm85 txt
txt: pbmtojbg.txt jbgtopbm.txt pbm.txt pgm.txt
pbmtojbg: pbmtojbg.o
$(CC) $(CFLAGS) -o pbmtojbg pbmtojbg.o -L../libjbig -ljbig $(LDFLAGS)
jbgtopbm: jbgtopbm.o
$(CC) $(CFLAGS) -o jbgtopbm jbgtopbm.o -L../libjbig -ljbig $(LDFLAGS)
pbmtojbg85: pbmtojbg85.o
$(CC) $(CFLAGS) -o pbmtojbg85 pbmtojbg85.o -L../libjbig -ljbig $(LDFLAGS)
jbgtopbm85: jbgtopbm85.o
$(CC) $(CFLAGS) -o jbgtopbm85 jbgtopbm85.o -L../libjbig -ljbig $(LDFLAGS)
jbgtopbm.o: jbgtopbm.c ../libjbig/jbig.h
pbmtojbg.o: pbmtojbg.c ../libjbig/jbig.h
jbgtopbm85.o: jbgtopbm85.c ../libjbig/jbig85.h
pbmtojbg85.o: pbmtojbg85.c ../libjbig/jbig85.h
analyze:
clang $(CPPFLAGS) --analyze *.c
test: test82 test85
test82: pbmtojbg jbgtopbm
make IMG=ccitt1 OPTIONSP= dotest1
make IMG=ccitt2 OPTIONSP= dotest1
make IMG=ccitt3 OPTIONSP= dotest1
make IMG=xvlogo "OPTIONSP=-d 3" dotest1
make IMG=sandra OPTIONSP= OPTIONSJ= dotest2g
make IMG=sandra OPTIONSP=-b OPTIONSJ=-b dotest2g
make IMG=sandra OPTIONSP=-q OPTIONSJ= dotest2g
make IMG=sandra "OPTIONSP=-o 0" OPTIONSJ= dotest2g
make IMG=sandra "OPTIONSP=-o 2" OPTIONSJ= dotest2g
make IMG=multi OPTIONSP= OPTIONSJ= dotest2g
make IMG=multi OPTIONSP=-b OPTIONSJ=-b dotest2g
make IMG=mx "OPTIONSP=-q -s 3 -m 128" dotest1
make IMG=mx "OPTIONSP=-q -s 3 -m 128" dotest2b
make IMG=mx "OPTIONSP=-q -s 3 -m 128 -p 92" dotest2b
make IMG=mx "OPTIONSP=-q -Y -1" dotest2b
make IMG=mx "OPTIONSP=-Y -1" dotest2b
rm -f test-ccitt1.jbg test-ccitt1.pbm
./jbgtopbm ../examples/ccitt1.jbg | ./pbmtojbg > test-ccitt1.jbg
cmp ../examples/ccitt1.jbg test-ccitt1.jbg
rm -f test-ccitt1.jbg test-ccitt1.pbm
./jbgtopbm < ../examples/ccitt1.jbg | ./pbmtojbg - test-ccitt1.jbg
cmp ../examples/ccitt1.jbg test-ccitt1.jbg
rm -f test-ccitt1.jbg test-ccitt1.pbm
./jbgtopbm < ../examples/ccitt1.jbg - test-ccitt1.pbm ; \
./pbmtojbg test-ccitt1.pbm test-ccitt1.jbg
cmp ../examples/ccitt1.jbg test-ccitt1.jbg
rm -f test-ccitt1.jbg test-ccitt1.pbm
./jbgtopbm ../examples/ccitt1.jbg test-ccitt1.pbm ; \
./pbmtojbg test-ccitt1.pbm >test-ccitt1.jbg
cmp ../examples/ccitt1.jbg test-ccitt1.jbg
rm -f test-ccitt1.jbg test-ccitt1.pbm
@echo
@echo "The pbmtools have PASSED the functional tests. Good!"
@echo
dotest1:
./jbgtopbm ../examples/$(IMG).jbg test-$(IMG).pbm
./pbmtojbg $(OPTIONSP) test-$(IMG).pbm test-$(IMG).jbg
cmp test-$(IMG).jbg ../examples/$(IMG).jbg
dotest2b:
./pbmtojbg $(OPTIONSP) test-$(IMG).pbm test-$(IMG).jbg
./jbgtopbm $(OPTIONSJ) test-$(IMG).jbg test-$(IMG)-2.pbm
cmp test-$(IMG).pbm test-$(IMG)-2.pbm
dotest2g:
./pbmtojbg $(OPTIONSP) ../examples/$(IMG).pgm test-$(IMG).jbg
./jbgtopbm $(OPTIONSJ) test-$(IMG).jbg test-$(IMG).pgm
cmp test-$(IMG).pgm ../examples/$(IMG).pgm
test85: pbmtojbg jbgtopbm pbmtojbg85 jbgtopbm85 test-t82.pbm
export LD_LIBRARY_PATH=`pwd`/../libjbig
echo $(LD_LIBRARY_PATH)
make IMG=t82 "OPTIONSP=-p 0" dotest85
make IMG=t82 "OPTIONSP=-p 8" dotest85
make IMG=t82 "OPTIONSP=-p 8 -r" dotest85b
make IMG=t82 "OPTIONSP=-p 64" dotest85
make IMG=t82 "OPTIONSP=-p 72" dotest85
make IMG=t82 "OPTIONSP=-s 2 -C c" dotest85
make IMG=t82 "OPTIONSP=-s 99999" dotest85
make IMG=t82 "OPTIONSP=-Y 9999 0" dotest85
make IMG=t82 "OPTIONSP=-Y 1951 0" dotest85
make IMG=t82 "OPTIONSP=-Y -1 127" dotest85
make IMG=t82 "OPTIONSP=-Y -1 128" dotest85
make IMG=t82 "OPTIONSP=-Y -1 1919" dotest85
make IMG=t82 "OPTIONSP=-Y -1 1920" dotest85
make IMG=t82 "OPTIONSP=-Y -1 1949" dotest85
make IMG=t82 "OPTIONSP=-Y -1 1950" dotest85
make IMG=ccitt1 dotest85
make IMG=ccitt2 dotest85
make IMG=ccitt3 dotest85
@echo
@echo "The T.85 pbmtools have PASSED the functional tests. Good!"
@echo
# Workaround for dotest85{,b}
ANTI_TAP_DANCE ::= $(shell mktemp -u XXXXXXXX)
dotest85: test-$(IMG).pbm
./pbmtojbg85 $(OPTIONSP) test-$(IMG).pbm test-$(IMG)-$(ANTI_TAP_DANCE).jbg85
ls -l test-$(IMG)-$(ANTI_TAP_DANCE).jbg85
./jbgtopbm test-$(IMG)-$(ANTI_TAP_DANCE).jbg85 test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
cmp test-$(IMG).pbm test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
rm test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
./jbgtopbm85 test-$(IMG)-$(ANTI_TAP_DANCE).jbg85 test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
cmp test-$(IMG).pbm test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
rm test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
./jbgtopbm85 -B 1 test-$(IMG)-$(ANTI_TAP_DANCE).jbg85 test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
cmp test-$(IMG).pbm test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
dotest85b: test-$(IMG).pbm
./pbmtojbg -f $(OPTIONSP) test-$(IMG).pbm test-$(IMG)-$(ANTI_TAP_DANCE).jbg85
ls -l test-$(IMG)-$(ANTI_TAP_DANCE).jbg85
./jbgtopbm test-$(IMG)-$(ANTI_TAP_DANCE).jbg85 test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
cmp test-$(IMG).pbm test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
rm test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
./jbgtopbm85 test-$(IMG)-$(ANTI_TAP_DANCE).jbg85 test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
cmp test-$(IMG).pbm test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
rm test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
./jbgtopbm85 -B 1 test-$(IMG)-$(ANTI_TAP_DANCE).jbg85 test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
cmp test-$(IMG).pbm test-$(IMG)-$(ANTI_TAP_DANCE).pbm85
test-%.pbm: ../examples/%.jbg
./jbgtopbm $< $@
test-t82.pbm:
make -C ../libjbig tstcodec
../libjbig/tstcodec $@
FOPT=-c 1000 -p 300000 -m 3
fuzz: test-t82.pbm
while \
./pbmtojbg -f test-t82.pbm | ./jbgfuzz.pl $(FOPT) && \
./pbmtojbg test-t82.pbm | ./jbgfuzz.pl $(FOPT) -d jbgtopbm ; \
do true; done
.1.txt .5.txt:
groff -man -Tascii -P -c -P -b -P -u $< >$@
clean:
rm -f *.o *~ core pbmtojbg jbgtopbm pbmtojbg85 jbgtopbm85
rm -f test-*.jbg test-*.pbm test-*.pgm test-*.jbg85 test-*.pbm85
rm -f *.gcda *.gcno *.plist
|