File: Makefile

package info (click to toggle)
jbigkit 2.1-6.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,204 kB
  • sloc: ansic: 5,662; makefile: 340; perl: 82; sh: 3
file content (163 lines) | stat: -rw-r--r-- 6,309 bytes parent folder | download
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