Skip to content

Instantly share code, notes, and snippets.

@dhm116
Created May 31, 2013 17:55
Show Gist options
  • Save dhm116/5686715 to your computer and use it in GitHub Desktop.
Save dhm116/5686715 to your computer and use it in GitHub Desktop.
Dagre.js Makefile for Windows
SHELL=C:/Windows/System32/cmd.exe
NODE?=node
NPM?=npm
PEGJS?=node node_modules/pegjs/bin/pegjs
MOCHA?=node node_modules/mocha/bin/mocha
MOCHA_OPTS?=--recursive
JS_COMPILER=node node_modules/uglify-js/bin/uglifyjs
JS_COMPILER_OPTS?=--no-seqs
all: package.json dagre.js dagre.min.js
.INTERMEDIATE dagre.js: \
src/pre.js \
src/version.js \
src/graph.js \
src/layout/layout.js \
src/layout/acyclic.js \
src/layout/rank.js \
src/layout/order.js \
src/layout/position.js \
src/util.js \
src/priority-queue.js \
src/dot.js \
src/dot-grammar.js \
src/post.js
dagre.min.js: dagre.js
@rm -f $@
$(JS_COMPILER) $(JS_COMPILER_OPTS) dagre.js > $@
@chmod a-w $@
dagre.js: Makefile node_modules
@rm -f $@
cat $(filter %.js, $^) > $@
@chmod a-w $@
src/dot-grammar.js: src/dot-grammar.pegjs node_modules
$(PEGJS) -e dot_parser "src/dot-grammar.pegjs" $@
node_modules: package.json
$(NPM) install
package.json: src/version.js package.js
@rm -f $@
$(NODE) package.js > $@
.PHONY: test
test: dagre.js
$(MOCHA) $(MOCHA_OPTS)
clean:
rm -f dagre.js package.json dagre.min.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment