NAME=method-draw VERSION=2.6 PACKAGE=$(NAME) MAKEDOCS=naturaldocs/NaturalDocs CLOSURE=build/tools/closure-compiler.jar YUICOMPRESSOR=build/tools/yuicompressor-2.4.7.jar # All files that will be compiled by the Closure compiler. JS_FILES=\ lib/pathseg.js \ lib/touch.js \ lib/js-hotkeys/jquery.hotkeys.min.js \ icons/jquery.svgicons.js \ lib/jgraduate/jquery.jgraduate.js \ lib/contextmenu/jquery.contextMenu.js \ src/browser.js \ src/svgtransformlist.js \ src/math.js \ src/units.js \ src/svgutils.js \ src/sanitize.js \ src/history.js \ src/select.js \ src/draw.js \ src/path.js \ src/svgcanvas.js \ src/method-draw.js \ lib/jquery-draginput.js \ lib/contextmenu.js \ lib/jquery-ui/jquery-ui-1.8.17.custom.min.js \ lib/jgraduate/jpicker.min.js \ lib/mousewheel.js \ extensions/ext-eyedropper.js \ extensions/ext-grid.js \ extensions/ext-shapes.js \ lib/requestanimationframe.js \ lib/taphold.js \ lib/filesaver.js CSS_FILES=\ lib/jgraduate/css/jPicker.css \ lib/jgraduate/css/jgraduate.css \ css/method-draw.css \ JS_INPUT_FILES=$(addprefix editor/, $(JS_FILES)) CSS_INPUT_FILES=$(addprefix editor/, $(CSS_FILES)) JS_BUILD_FILES=$(addprefix $(PACKAGE)/, $(JS_FILES)) CSS_BUILD_FILES=$(addprefix $(PACKAGE)/, $(CSS_FILES)) CLOSURE_JS_ARGS=$(addprefix --js , $(JS_INPUT_FILES)) COMPILED_JS=editor/method-draw.compiled.js COMPILED_CSS=editor/css/method-draw.compiled.css all: release # The build directory relies on the JS being compiled. $(PACKAGE): $(COMPILED_JS) $(COMPILED_CSS) rm -rf config; mkdir config; if [ -x $(MAKEDOCS) ] ; then $(MAKEDOCS) -i editor/ -o html docs/ -p config/ -oft -r ; fi # Make build directory and copy all editor contents into it mkdir -p $(PACKAGE) cp -r editor/* $(PACKAGE) # Remove all hidden .svn directories -find $(PACKAGE) -name .svn -type d | xargs rm -rf {} \; -find $(PACKAGE) -name .git -type d | xargs rm -rf {} \; # Create the release version of the main HTML file. build/tools/ship.py --i=editor/index.html --on=svg_edit_release > $(PACKAGE)/index.html # NOTE: Some files are not ready for the Closure compiler: (jquery) # NOTE: Our code safely compiles under SIMPLE_OPTIMIZATIONS # NOTE: Our code is *not* ready for ADVANCED_OPTIMIZATIONS # NOTE: WHITESPACE_ONLY and --formatting PRETTY_PRINT is helpful for debugging. $(COMPILED_CSS): cat $(CSS_INPUT_FILES) > editor/temp.css; java -jar $(YUICOMPRESSOR) editor/temp.css -o $(COMPILED_CSS) --line-break 0; rm editor/temp.css; $(COMPILED_JS): java -jar $(CLOSURE) \ --compilation_level SIMPLE_OPTIMIZATIONS \ $(CLOSURE_JS_ARGS) \ --js_output_file $(COMPILED_JS) compile: $(COMPILED_JS) $(COMPILED_CSS) release: $(PACKAGE) clean: rm -rf config rm -rf $(PACKAGE) rm -rf $(COMPILED_JS) rm -rf $(COMPILED_CSS)