OPT=--compilation_level SIMPLE_OPTIMIZATIONS
CLOSURE=java -jar /usr/share/java/closure-compiler/closure-compiler.jar

all: Three Stats ThreeTools Bouncing Multisphere StreamingSimulator PrototypeTools PrototypeReplay PrototypeInteractive

Three:
	cp three/three.min.js ../static/js/

Stats:
	cp three/stats.min.js ../static/js/

ThreeTools:
	$(CLOSURE) $(OPT) \
		--js three/DDSLoader.js \
		--js three/MTLLoader.js \
		--js three/OBJMTLLoader.js \
		--js three/OBJLoader.js \
		--js three/OrbitControls.js \
		--js Tools.js \
		--js_output_file ../static/js/threetools.min.js

Bouncing:
	$(CLOSURE) $(OPT) \
		--js Camera.js \
		--js Cube.js \
		--js BouncingCube.js \
		--js bouncing/BouncingMain.js \
		--js_output_file ../static/js/bouncing.min.js

Multisphere:
	$(CLOSURE) $(OPT) \
		--js StaticPath.js \
		--js Camera.js \
		--js Cube.js \
		--js multisphere/MultiSphere.js \
		--js_output_file ../static/js/multisphere.min.js

StreamingSimulator:
	$(CLOSURE) $(OPT) \
		--js StaticPath.js \
		--js Camera.js \
		--js Cube.js \
		--js ProgressiveSphere.js \
		--js stream/main.js \
		--js_output_file ../static/js/streamingsimulator.min.js

PrototypeTools:
	$(CLOSURE) $(OPT) \
		--js StaticPath.js \
		--js Hermite.js \
		--js Camera.js \
		--js PointerCamera.js \
		--js CameraContainer.js \
		--js prototype/ArrowCamera.js \
		--js prototype/FixedCamera.js \
		--js prototype/OldFixedCamera.js \
		--js prototype/ReverseCamera.js \
		--js prototype/ReplayCamera.js \
		--js prototype/initScene.js \
		--js prototype/raycasterTools.js \
		--js prototype/Previewer.js \
		--js prototype/ButtonManager.js \
		--js prototype/Coin.js \
		--js Logger.js \
		--js_output_file ../static/js/prototypetools.min.js

PrototypeInteractive:
	$(CLOSURE) $(OPT) \
		--js prototype/main.js \
		--js_output_file ../static/js/prototypeinteractive.min.js

PrototypeReplay:
	$(CLOSURE) $(OPT) \
		--js prototype/replay.js \
		--js_output_file ../static/js/replay.min.js

clean:
	rm -ri ../static/js/*