blob: 421cca79f779114d54c5ea03eef0ff081d8ea986 (
plain)
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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
# $Id$
# This file is public domain. (Originally written by Karl Berry, 2009.)
prg = epstopdf
e2p = ./$(prg).pl #--debug
re2p = ./r$(prg) --restricted
re2p_script = ./r$(prg)
default: check
$(re2p_script):
ln -s $(prg).pl $@
# These are not comprehensive tests by any means. Mostly we're just
# making sure we don't crash.
check: check-help check-version check-help-r check-usage \
check-atend \
check-binary check-bin2 \
check-binhdr-lf check-binhdr-cr check-binhdr-crlf \
check-filter check-filter-outfile \
check-gray \
check-gscmd check-gsopt check-gsopts \
check-nogs \
check-output \
check-pdfversion \
check-percent \
check-restricted-nosafer \
check-restricted-device \
check-restricted-gscmd \
check-restricted-outfile \
check-restricted-safe-in check-restricted-safe-out \
check-simple \
check-tn5002 \
check-write-error \
check-help:
$(e2p) --help
check-version:
$(e2p) --version
check-help-r: $(re2p_script)
$(re2p_script) --help | grep restricted # should have default=true
check-usage:
! $(e2p) # no args
! $(e2p) arg1 arg2 arg3 # too many args
! $(e2p) --nonesuch # no option
check-restricted-device: $(re2p_script)
! $(re2p) --device=unsafe test-simple.eps
check-restricted-gscmd: $(re2p_script)
! $(re2p) --gscmd=/bin/unsafe test-simple.eps
! $(re2p) --gscmd=unsafe test-simple.eps
check-restricted-gsopt: $(re2p_script)
$(re2p) --gsopt=-dAutoFilterColorImages=true test-simple.eps
! $(re2p) --gsopt=-dNOSAFER=false test-simple.eps
check-restricted-nosafer: $(re2p_script)
! $(re2p) --nosafer test-simple.eps -o test-nosafer.pdf
check-restricted-outfile: $(re2p_script)
! $(re2p) test-simple.eps -o "%pipe%echo should not echo"
! $(re2p) test-simple.eps -o "|echo should not echo"
check-restricted-safe-in: $(re2p_script)
! $(re2p) /unsafe/in.eps
check-restricted-safe-out: $(re2p_script)
! $(re2p) test-simple.eps -o /unsafe/out.eps
check-filter:
cat test-simple.eps | $(e2p) --filter >test-filter.pdf
pdfinfo test-filter.pdf | grep "Page size:"
check-filter-outfile:
rm -f test-filter.pdf
cat test-simple.eps | $(e2p) --filter --outfile=test-filter.pdf
pdfinfo test-filter.pdf | grep "Page size:"
#
rm -f test-filter.pdf
cat test-simple.eps | $(e2p) --outfile=test-filter.pdf --filter
pdfinfo test-filter.pdf | grep "Page size:"
check-gray:
$(e2p) --gray test-tiger.eps
pdfinfo test-tiger.pdf | grep "Page size:"
check-write-error:
! $(e2p) test-simple.eps --outfile=/dev/full
check-gscmd:
! $(e2p) --gscmd=false test-simple.eps
! $(e2p) --gscmd='foo bar' test-simple.eps
check-gsopt:
! $(e2p) --gscmd=false --gsopt=foo --gsopt=bar test-simple.eps
! $(e2p) --restricted --gsopt=bar test-simple.eps
check-gsopts:
$(e2p) --gscmd=echo --gsopts='foo bar' test-simple.eps
! $(e2p) --restricted --gsopts=bar test-simple.eps
check-nogs:
$(e2p) --no-gs test-simple.eps >test-simple.out
# the two files should be different:
cmp -s test-simple.eps test-simple.out || exit 0
check-output: $(re2p_script)
$(re2p) test-simple.eps -o test-p.pdf # not if restricted
# should do this everywhere -- remove first, validate after.
#rm -f test-o.pdf; $(e2p) -o test-o.pdf test-simple.eps; pdfinfo test-o.pdf
$(e2p) -o test-o.pdf test-simple.eps
$(e2p) --outfile test-o.pdf test-simple.eps
$(e2p) --outfile=test-o.pdf test-simple.eps
$(e2p) --output test-o.pdf test-simple.eps
$(e2p) test-simple.eps test-p.pdf
$(re2p) test-simple.eps test-p.pdf
! $(e2p) test-simple.eps test-p.pdg # not .pdf
! $(e2p) -o test-o.pdf test-simple.eps test-p.pdf # two methods
check-simple:
$(MAKE) file=test-simple check1
check-atend:
$(MAKE) file=test-atend check1
check-binary:
$(MAKE) file=test-binary check1
check-bin2:
$(MAKE) file=test-bin2 check1
check-binhdr-lf:
$(MAKE) file=test-binhdr-lf check1
check-binhdr-cr:
$(MAKE) file=test-binhdr-cr check1
check-binhdr-crlf:
$(MAKE) file=test-binhdr-crlf check1
check-pdfversion:
$(e2p) test-simple.eps
pdfinfo test-simple.pdf | grep '^PDF version.*1\.5$$'
$(e2p) --gsopt=-dCompatibilityLevel=1.4 test-simple.eps
pdfinfo test-simple.pdf | grep '^PDF version.*1\.4$$'
check-percent:
$(MAKE) file=test-per%cent check1
test -s test-per%cent.pdf
check-tn5002:
$(MAKE) file=test-tn5002-cr check1
$(MAKE) file=test-tn5002-crlf check1
$(MAKE) file=test-tn5002-lf check1
# complicated, from http://www.vectorfloral.com/floral-swirly-flowers-with-butterflies-vector-graphic-174.html
# another, even bigger, is at http://www.backgroundvector.com/abstract-colorful-background-vector-image-94.html
# both are CC-BY 3.0.
check-floral:
$(MAKE) file=test-floral check1
# subtarget for simple test that conversion of $(file) works.
check1:
$(e2p) $(file).eps
pdfinfo $(file).pdf | grep "Page size"
#
# put tar contents in a directory for CTAN.
dist: $(prg).tar.gz $(prg).html
.PHONY: dist
$(prg).tar.gz: README $(prg).pl $(prg).1 r$(prg).1 $(prg).man1.pdf
rm -rf $(prg); mkdir $(prg)
cp $^ $(prg)
tar cvzf $(prg).tar.gz $(prg)
rm -rf $(prg)
# upload .tar.gz to ctan.org/upload, mv .html ~www/$(prg).
# compare cwd against last release
orig_epstopdf = /home/texlive/trunk/Master/texmf-dist/scripts/epstopdf/epstopdf.pl
dist-diff:
diff -u0 $(orig_epstopdf) $(prg).pl
groff = groff
groff_opts = -man -t
pspdf = ps2pdf -sPAPERSIZE=a4
$(prg).man1.pdf pdf: $(prg).1
$(groff) $(groff_opts) $< | $(pspdf) - $@
$(prg).html: $(prg).1
$(groff) $(groff_opts) -Thtml $< >$@
show-man:
man ./$(prg).1 | col -b
# $(groff) $(groff_opts) -Tascii -M. -mraggedright -P-cbouU $(prg).1
# -P-c... avoids ANSI color sequences and backspaces in the output.
|