1
- REPO = git@github.com:andreasgal /pdf.js.git
1
+ REPO = git@github.com:mozilla /pdf.js.git
2
2
BUILD_DIR := build
3
+ BUILD_TARGET := $(BUILD_DIR ) /pdf.js
3
4
DEFAULT_BROWSERS := resources/browser_manifests/browser_manifest.json
4
5
DEFAULT_TESTS := test_manifest.json
5
6
6
7
EXTENSION_SRC := ./extensions/
7
8
FIREFOX_EXTENSION_NAME := pdf.js.xpi
8
9
CHROME_EXTENSION_NAME := pdf.js.crx
9
10
11
+ all : bundle
12
+
10
13
# Let folks define custom rules for their clones.
11
14
-include local.mk
12
15
13
16
# JS files needed for pdf.js.
14
- # This list doesn't account for the 'worker' directory.
15
17
PDF_JS_FILES = \
16
- pdf.js \
17
- crypto.js \
18
- fonts.js \
19
- metrics.js \
20
- charsets.js \
21
- cidmaps.js \
22
- glyphlist.js \
18
+ core.js \
19
+ util.js \
20
+ canvas.js \
21
+ obj.js \
22
+ function.js \
23
+ charsets.js \
24
+ cidmaps.js \
25
+ colorspace.js \
26
+ crypto.js \
27
+ evaluator.js \
28
+ fonts.js \
29
+ glyphlist.js \
30
+ image.js \
31
+ metrics.js \
32
+ parser.js \
33
+ pattern.js \
34
+ stream.js \
35
+ worker.js \
23
36
$(NULL )
24
37
25
- # not sure what to do for all yet
26
- all : help
27
-
28
38
# make server
29
39
#
30
40
# This target starts a local web server at localhost:8888. This can be
@@ -34,6 +44,28 @@ server:
34
44
35
45
test : shell-test browser-test
36
46
47
+ #
48
+ # Create production output (pdf.js, and corresponding changes to web files)
49
+ #
50
+ production : | bundle
51
+ @echo " Preparing web/viewer-production.html" ; \
52
+ cd web; \
53
+ sed ' /PDFJSSCRIPT_REMOVE/d' viewer.html > viewer-1.tmp; \
54
+ sed ' /PDFJSSCRIPT_INCLUDE_BUILD/ r viewer-snippet.html' viewer-1.tmp > viewer-production.html; \
55
+ rm -f * .tmp; \
56
+ cd ..
57
+
58
+ #
59
+ # Bundle pdf.js
60
+ #
61
+ bundle : | $(BUILD_DIR )
62
+ @echo " Bundling source files into $( BUILD_TARGET) "
63
+ @cd src; \
64
+ cat $(PDF_JS_FILES ) > all_files.tmp; \
65
+ sed ' /PDFJSSCRIPT_INCLUDE_ALL/ r all_files.tmp' pdf.js > ../$(BUILD_TARGET ) ; \
66
+ rm -f * .tmp; \
67
+ cd ..
68
+
37
69
# make browser-test
38
70
#
39
71
# This target runs in-browser tests using two primary arguments: a
@@ -93,11 +125,11 @@ browser-test:
93
125
# To install gjslint, see:
94
126
#
95
127
# <http://code.google.com/closure/utilities/docs/linter_howto.html>
96
- SRC_DIRS := . utils worker web test examples/helloworld extensions/firefox \
128
+ SRC_DIRS := . src utils web test examples/helloworld extensions/firefox \
97
129
extensions/firefox/components extensions/chrome
98
130
GJSLINT_FILES = $(foreach DIR,$(SRC_DIRS ) ,$(wildcard $(DIR ) /* .js) )
99
131
lint :
100
- gjslint $(GJSLINT_FILES )
132
+ gjslint --nojsdoc $(GJSLINT_FILES )
101
133
102
134
# make web
103
135
#
@@ -108,14 +140,13 @@ lint:
108
140
# TODO: Use the Closure compiler to optimize the pdf.js files.
109
141
#
110
142
GH_PAGES = $(BUILD_DIR ) /gh-pages
111
- web : | extension compiler pages-repo \
112
- $(addprefix $(GH_PAGES ) /, $(PDF_JS_FILES ) ) \
113
- $(addprefix $(GH_PAGES ) /, $(wildcard web/* .* ) ) \
114
- $(addprefix $(GH_PAGES ) /, $(wildcard web/images/* .* ) ) \
115
- $(addprefix $(GH_PAGES ) /, $(wildcard $(EXTENSION_SRC ) /firefox/* .xpi) ) \
116
- $(addprefix $(GH_PAGES ) /, $(wildcard $(EXTENSION_SRC ) /chrome/* .crx) )
117
-
143
+ web : | production extension compiler pages-repo
144
+ @cp $(BUILD_TARGET ) $(GH_PAGES ) /$(BUILD_TARGET )
145
+ @cp -R web/* $(GH_PAGES ) /web
146
+ @cp web/images/* $(GH_PAGES ) /web/images
147
+ @cp $(EXTENSION_SRC ) /firefox/* .xpi $(GH_PAGES ) /$(EXTENSION_SRC ) /firefox/
118
148
@cp $(GH_PAGES ) /web/index.html.template $(GH_PAGES ) /index.html;
149
+ @mv -f $(GH_PAGES ) /web/viewer-production.html $(GH_PAGES ) /web/viewer.html;
119
150
@cd $(GH_PAGES ) ; git add -A;
120
151
@echo
121
152
@echo " Website built in $( GH_PAGES) ."
@@ -135,22 +166,8 @@ pages-repo: | $(BUILD_DIR)
135
166
fi ;
136
167
@mkdir -p $(GH_PAGES ) /web;
137
168
@mkdir -p $(GH_PAGES ) /web/images;
169
+ @mkdir -p $(GH_PAGES ) /build;
138
170
@mkdir -p $(GH_PAGES ) /$(EXTENSION_SRC ) /firefox;
139
- @mkdir -p $(GH_PAGES ) /$(EXTENSION_SRC ) /chrome;
140
-
141
- $(GH_PAGES ) /% .js : % .js
142
- @cp $< $@
143
-
144
- $(GH_PAGES ) /web/% : web/%
145
- @cp $< $@
146
-
147
- $(GH_PAGES ) /web/images/% : web/images/%
148
- @cp $< $@
149
-
150
- $(GH_PAGES ) /$(EXTENSION_SRC ) /firefox/% : $(EXTENSION_SRC ) /firefox/%
151
- @cp -R $< $@
152
-
153
- $(GH_PAGES ) /$(EXTENSION_SRC ) /chrome/% : $(EXTENSION_SRC ) /chrome/%
154
171
155
172
# # make compiler
156
173
# #
@@ -169,29 +186,36 @@ $(GH_PAGES)/$(EXTENSION_SRC)/chrome/%: $(EXTENSION_SRC)/chrome/%
169
186
#
170
187
# This target produce a restartless firefox extension containing a
171
188
# copy of the pdf.js source.
172
- CONTENT_DIR := firefox/content
189
+ CONTENT_DIR := content
190
+ FIREFOX_CONTENT_DIR := $(EXTENSION_SRC ) /firefox/$(CONTENT_DIR ) /
191
+ CHROME_CONTENT_DIR := $(EXTENSION_SRC ) /chrome/$(CONTENT_DIR ) /
173
192
PDF_WEB_FILES = \
174
193
web/images \
175
194
web/compatibility.js \
176
195
web/viewer.css \
177
196
web/viewer.js \
178
- web/viewer.html \
197
+ web/viewer-production .html \
179
198
$(NULL )
180
- extension :
199
+ extension : | production
181
200
# Copy a standalone version of pdf.js inside the content directory
182
- @rm -Rf $(EXTENSION_SRC ) /$(CONTENT_DIR ) /
183
- @mkdir -p $(EXTENSION_SRC ) /$(CONTENT_DIR ) /web
184
- @cp $(PDF_JS_FILES ) $(EXTENSION_SRC ) /$(CONTENT_DIR ) /
185
- @cp -r $(PDF_WEB_FILES ) $(EXTENSION_SRC ) /$(CONTENT_DIR ) /web/
201
+ @rm -Rf $(FIREFOX_CONTENT_DIR )
202
+ @mkdir -p $(FIREFOX_CONTENT_DIR ) /$(BUILD_DIR )
203
+ @mkdir -p $(FIREFOX_CONTENT_DIR ) /web
204
+ @cp $(BUILD_TARGET ) $(FIREFOX_CONTENT_DIR ) /$(BUILD_DIR )
205
+ @cp -r $(PDF_WEB_FILES ) $(FIREFOX_CONTENT_DIR ) /web/
206
+ @mv -f $(FIREFOX_CONTENT_DIR ) /web/viewer-production.html $(FIREFOX_CONTENT_DIR ) /web/viewer.html
186
207
187
208
# Create the xpi
188
209
@cd $(EXTENSION_SRC)/firefox; zip -r $(FIREFOX_EXTENSION_NAME) *
189
210
@echo "extension created: " $(FIREFOX_EXTENSION_NAME)
190
211
191
212
# Copy a standalone version of pdf.js inside the extension directory
192
- @cp $(PDF_JS_FILES) $(EXTENSION_SRC)/chrome/
193
- @mkdir -p $(EXTENSION_SRC)/chrome/web
194
- @cp -r $(PDF_WEB_FILES) $(EXTENSION_SRC)/chrome/web/
213
+ @rm -Rf $(CHROME_CONTENT_DIR)
214
+ @mkdir -p $(CHROME_CONTENT_DIR)/$(BUILD_DIR)
215
+ @mkdir -p $(CHROME_CONTENT_DIR)/web
216
+ @cp $(BUILD_TARGET) $(CHROME_CONTENT_DIR)/$(BUILD_DIR)
217
+ @cp -r $(PDF_WEB_FILES) $(CHROME_CONTENT_DIR)/web/
218
+ @mv -f $(CHROME_CONTENT_DIR)/web/viewer-production.html $(CHROME_CONTENT_DIR)/web/viewer.html
195
219
196
220
# Create the crx
197
221
# TODO
@@ -211,5 +235,5 @@ clean:
211
235
help :
212
236
@echo " Read the comments in the Makefile for guidance." ;
213
237
214
- .PHONY :: all test browser-test font-test shell-test \
238
+ .PHONY :: production test browser-test font-test shell-test \
215
239
shell-msg lint clean web compiler help server
0 commit comments