summaryrefslogtreecommitdiff
path: root/Build/source/extra/epstopdf/Makefile
blob: 8e815303dde654ac0c1ce30651c5f02e74306fa4 (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
# $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: 

# 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-atend \
       check-binary check-bin2 \
       check-binhdr-lf check-binhdr-cr check-binhdr-crlf \
       check-gscmd check-gsopt check-gsopts \
       check-filter check-filter-outfile \
       check-gscmd \
       check-nogs \
       check-percent \
       check-restricted-device \
       check-restricted-gscmd \
       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-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
	
$(re2p_script):
	ln -s $(prg).pl $@

check-restricted-device:
	! $(re2p) --device=unsafe test-simple.eps

check-restricted-gscmd:
	! $(re2p) --gscmd=/bin/unsafe test-simple.eps
	! $(re2p) --gscmd=unsafe test-simple.eps

check-restricted-safe-in:
	! $(re2p) /unsafe/in.eps

check-restricted-safe-out:
	! $(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-write-error:
	-$(e2p) test-simple.eps --outfile=/dev/full

check-gscmd:
	-$(e2p) --gscmd=true test-simple.eps
	-$(e2p) --gscmd='foo bar' test-simple.eps # fails

check-gsopt:
	-$(e2p) --gscmd=echo --gsopt=foo --gsopt=bar test-simple.eps
	-$(e2p) --restricted --gsopt=bar test-simple.eps # fails

check-gsopts:
	-$(e2p) --gscmd=echo --gsopts='foo bar' test-simple.eps
	-$(e2p) --restricted --gsopts=bar test-simple.eps # fails

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-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

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).

groff = groff
groff_opts = -man -t
pspdf = ps2pdf -sPAPERSIZE=a4
$(prg).man1.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.