From 7f5c7a3130e1f888edefe04c7f4ddffb033f75ee Mon Sep 17 00:00:00 2001 From: Rob Sayre Date: Tue, 5 Jul 2011 10:53:57 -0700 Subject: [PATCH] Add Makefile. Move some files around to make building the website easier. --- Makefile | 154 ++++++++++++++++++ .../compressed.tracemonkey-pldi-09.pdf | Bin {images => web/images}/buttons.png | Bin {images => web/images}/source/Buttons.psd.zip | Bin .../images}/source/FileButton.psd.zip | Bin web/index.html.template | 88 ++++++++++ .../multi_page_viewer.css | 0 .../multi_page_viewer.html | 0 .../multi_page_viewer.js | 0 viewer.css => web/viewer.css | 0 viewer.html => web/viewer.html | 0 viewer.js => web/viewer.js | 0 viewer_worker.html => web/viewer_worker.html | 0 13 files changed, 242 insertions(+) create mode 100644 Makefile rename compressed.tracemonkey-pldi-09.pdf => web/compressed.tracemonkey-pldi-09.pdf (100%) rename {images => web/images}/buttons.png (100%) rename {images => web/images}/source/Buttons.psd.zip (100%) rename {images => web/images}/source/FileButton.psd.zip (100%) create mode 100644 web/index.html.template rename multi_page_viewer.css => web/multi_page_viewer.css (100%) rename multi_page_viewer.html => web/multi_page_viewer.html (100%) rename multi_page_viewer.js => web/multi_page_viewer.js (100%) rename viewer.css => web/viewer.css (100%) rename viewer.html => web/viewer.html (100%) rename viewer.js => web/viewer.js (100%) rename viewer_worker.html => web/viewer_worker.html (100%) diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..da18e5b32 --- /dev/null +++ b/Makefile @@ -0,0 +1,154 @@ +REPO = git@github.com:andreasgal/pdf.js.git +BUILD_DIR := build +DEFAULT_BROWSERS := test/resources/browser_manifests/browser_manifest.json +DEFAULT_TESTS := test/test_manifest.json + +# JS files needed for pdf.js. +# This list doesn't account for the 'worker' directory. +PDF_JS_FILES = \ + pdf.js \ + crypto.js \ + fonts.js \ + glyphlist.js \ + $(NULL) + +# not sure what to do for all yet +all: help + +test: shell-test browser-test + +# make browser-test +# +# This target runs in-browser tests using two primary arguments: a +# test manifest file, and a browser manifest file. Both are simple +# JSON formats, and examples can be found in the test/ directory. The +# target will inspect the environment for the PDF_TESTS and +# PDF_BROWSERS variables, and use those if found. Otherwise, the +# defaults at the top of this file are used. +ifeq ($(PDF_TESTS),) +PDF_TESTS := $(DEFAULT_TESTS) +endif +ifeq ($(PDF_BROWSERS),) +PDF_BROWSERS := $(DEFAULT_BROWSERS) +endif + + +browser-test: + @if [ ! "$(PDF_BROWSERS)" ]; then \ + echo "Browser manifest file $(PDF_BROWSERS) does not exist."; \ + echo "Try copying one of the examples" \ + "in test/resources/browser_manifests/"; \ + exit 1; \ + fi; + + cd test; \ + python test.py --reftest \ + --browserManifestFile=$(abspath $(PDF_BROWSERS)) \ + --manifestFile=$(abspath $(PDF_TESTS)) + +# make shell-test +# +# This target runs all of the tests that can be run in a JS shell. +# The shell used is taken from the JS_SHELL environment variable. If +# that veriable is not defined, the script will attempt to use the copy +# of Rhino that comes with the Closure compiler used for producing the +# website. +SHELL_TARGET = $(NULL) +ifeq ($(JS_SHELL),) +JS_SHELL := "java -cp $(BUILD_DIR)/compiler.jar" +JS_SHELL += "com.google.javascript.jscomp.mozilla.rhino.tools.shell.Main" +SHELL_TARGET = compiler +endif + +shell-test: shell-msg $(SHELL_TARGET) font-test +shell-msg: +ifeq ($(SHELL_TARGET), compiler) + @echo "No JS_SHELL env variable present." + @echo "The default is to find a copy of Rhino and try that." +endif + @echo "JS shell command is: $(JS_SHELL)" + +font-test: + @echo "font test stub." + +# make lint +# +# This target runs the Closure Linter on most of our JS files. +# To install gjslint, see: +# +# +SRC_DIRS := . utils worker web +GJSLINT_FILES = $(foreach DIR,$(SRC_DIRS),$(wildcard $(DIR)/*.js)) +lint: + gjslint $(GJSLINT_FILES) + +# make web +# +# This target produces the website for the project, by checking out +# the gh-pages branch underneath the build directory, and then move +# the various viewer files into place. +# +# TODO: Use the Closure compiler to optimize the pdf.js files. +# +GH_PAGES = $(BUILD_DIR)/gh-pages +web: | compiler pages-repo \ + $(addprefix $(GH_PAGES)/, $(PDF_JS_FILES)) \ + $(addprefix $(GH_PAGES)/, $(wildcard web/*.*)) \ + $(addprefix $(GH_PAGES)/, $(wildcard web/images/*.*)) + + @cp $(GH_PAGES)/web/index.html.template $(GH_PAGES)/index.html; + @cd $(GH_PAGES); git add -A; + @echo "Website built in $(GH_PAGES)" + +# make pages-repo +# +# This target clones the gh-pages repo into the build directory. It +# deletes the current contents of the repo, since we overwrite +# everything with data from the master repo. The 'make web' target +# then uses 'git add -A' to track additions, modifications, moves, +# and deletions. +pages-repo: | $(BUILD_DIR) + @if [ ! -d "$(GH_PAGES)" ]; then \ + git clone -b gh-pages $(REPO) $(GH_PAGES); \ + rm -rf $(GH_PAGES)/*; \ + fi; + @mkdir -p $(GH_PAGES)/web; + @mkdir -p $(GH_PAGES)/web/images; + +$(GH_PAGES)/%.js: %.js + @cp $< $@ + +$(GH_PAGES)/web/%: web/% + @cp $< $@ + +$(GH_PAGES)/web/images/%: web/images/% + @cp $< $@ + +# make compiler +# +# This target downloads the Closure compiler, and places it in the +# build directory. This target is also useful when the user doesn't +# have a JS shell available--we can have them use the Rhino shell that +# comes with Closure. +COMPILER_URL = http://closure-compiler.googlecode.com/files/compiler-latest.zip + +compiler: $(BUILD_DIR)/compiler.zip +$(BUILD_DIR)/compiler.zip: | $(BUILD_DIR) + curl $(COMPILER_URL) > $(BUILD_DIR)/compiler.zip; + cd $(BUILD_DIR); unzip compiler.zip compiler.jar; + +# Make sure there's a build directory. +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) + +clean: + rm -rf $(BUILD_DIR) + +# make help +# +# This target just prints out a message to read these comments. :) +help: + @echo "Read the comments in the Makefile for guidance."; + +.PHONY: all test browser-test font-test shell-test \ + shell-msg lint clean web compiler help \ No newline at end of file diff --git a/compressed.tracemonkey-pldi-09.pdf b/web/compressed.tracemonkey-pldi-09.pdf similarity index 100% rename from compressed.tracemonkey-pldi-09.pdf rename to web/compressed.tracemonkey-pldi-09.pdf diff --git a/images/buttons.png b/web/images/buttons.png similarity index 100% rename from images/buttons.png rename to web/images/buttons.png diff --git a/images/source/Buttons.psd.zip b/web/images/source/Buttons.psd.zip similarity index 100% rename from images/source/Buttons.psd.zip rename to web/images/source/Buttons.psd.zip diff --git a/images/source/FileButton.psd.zip b/web/images/source/FileButton.psd.zip similarity index 100% rename from images/source/FileButton.psd.zip rename to web/images/source/FileButton.psd.zip diff --git a/web/index.html.template b/web/index.html.template new file mode 100644 index 000000000..c3086f078 --- /dev/null +++ b/web/index.html.template @@ -0,0 +1,88 @@ + + + + + + andreasgal/pdf.js @ GitHub + + + + + + Fork me on GitHub + +
+ +
+ + + + +
+ +

pdf.js + by andreasgal

+ +
+ PDF Reader in JavaScript +
+ +

Try it out!

+

Live demo lives here.

+ +

Authors

+

Vivien Nicolas (21@vingtetun.org) +
Andreas Gal (andreas.gal@gmail.com) +
Soumya Deb (debloper@gmail.com) +
Chris Jones (jones.chris.g@gmail.com) +
Justin D'Arcangelo (justindarc@gmail.com) +
sbarman (sbarman@eecs.berkeley.edu) +
+

+

Contact

+

(andreas.gal@gmail.com) +

+ + +

Download

+

+ You can download this project in either + zip or + tar formats. +

+

You can also clone the project with Git + by running: +

$ git clone git://github.com/andreasgal/pdf.js
+

+ + + +
+ + + + diff --git a/multi_page_viewer.css b/web/multi_page_viewer.css similarity index 100% rename from multi_page_viewer.css rename to web/multi_page_viewer.css diff --git a/multi_page_viewer.html b/web/multi_page_viewer.html similarity index 100% rename from multi_page_viewer.html rename to web/multi_page_viewer.html diff --git a/multi_page_viewer.js b/web/multi_page_viewer.js similarity index 100% rename from multi_page_viewer.js rename to web/multi_page_viewer.js diff --git a/viewer.css b/web/viewer.css similarity index 100% rename from viewer.css rename to web/viewer.css diff --git a/viewer.html b/web/viewer.html similarity index 100% rename from viewer.html rename to web/viewer.html diff --git a/viewer.js b/web/viewer.js similarity index 100% rename from viewer.js rename to web/viewer.js diff --git a/viewer_worker.html b/web/viewer_worker.html similarity index 100% rename from viewer_worker.html rename to web/viewer_worker.html