# CORE=/home/vagrant/sapl/packages/core
# TOOLS=/home/vagrant/sapl/tools


BASE=../..
LIBS=../../libs
SHARED=../../shared

SL=/home/vagrant/sapl/bin/sl --include-dir=build \
	--include-dir=/home/vagrant/sapl/packages/core/ghc-prim \
	--include-dir=/home/vagrant/sapl/packages/core/base \
	--include-dir=/home/vagrant/sapl/packages/core/array \
	--include-dir=/home/vagrant/sapl/packages/core/containers \
	--include-dir=/home/vagrant/sapl/packages/core/bytestring \
	--include-dir=/home/vagrant/sapl/packages/core/utf8-string \
	--include-dir=/home/vagrant/sapl/packages/core/integer-gmp \
	--include-dir=/home/vagrant/sapl/packages/core/time \
	--include-dir=/home/vagrant/sapl/packages/core/old-locale \
 	--include-dir=/home/vagrant/sapl/packages/platform/vector-0.10.9.1 \
	--include-dir=/home/vagrant/sapl/packages/platform/transformers-0.3.0.0 \
 	--include-dir=/home/vagrant/sapl/packages/platform/hashable-1.2.1.0 \
 	--include-dir=/home/vagrant/sapl/packages/platform/unordered-containers-0.2.3.3 \
	--include-dir=/home/vagrant/sapl/packages/thirdparty/primitive-0.5.1.0 \
	--include-dir=/home/vagrant/sapl/packages/thirdparty/data-default-0.5.3 \
	--include-dir=/home/vagrant/sapl/packages/thirdparty/data-default-class-0.0.1 \
	--include-dir=/home/vagrant/sapl/packages/thirdparty/data-default-instances-base-0.0.1 \
	--include-dir=/home/vagrant/sapl/packages/thirdparty/data-default-instances-containers-0.0.1 \
	--include-dir=/home/vagrant/sapl/packages/thirdparty/data-default-instances-old-locale-0.0.1 \
 	--include-dir=$(BASE)/packages

# 	--include-dir=/home/vagrant/sapl/packages/platform/fursuit-0.1 \
#	--include-dir=/home/vagrant/sapl/packages/platform/attoparsec-0.10.4.0 \
#	--include-dir=/home/vagrant/sapl/packages/platform/blaze-builder-0.3.3.0 \
#	--include-dir=/home/vagrant/sapl/packages/core/text-0.11.2.3 \
# 	--include-dir=/home/vagrant/sapl/packages/platform/aeson-0.6.2.1 \


S2JS=/home/vagrant/sapl/bin/sapl2js -f ghc
# GHCSAPL=./invokeghcsapl.sh

GHCSAPL=ghcsapl -O2 -outputdir=build -i$(LIBS) -i$(BASE)/packages

#	-ipackages -ipackages/unordered-containers-0.2.3.3 -ipackages/aeson-0.6.1.0 \
#	-ipackages/hashable-1.2.1.0 -ipackages/vector-0.10.9.1 -Ipackages/vector-0.10.9.1/include

CC=java -jar /home/vagrant/sapl/tools/closure-compiler.jar   

ifndef FILE
SOURCES=MainGenGui.hs
else 
SOURCES=$(FILE).hs
endif 
MODULES=$(SOURCES:.hs=.sapl)
TARGETS=$(MODULES:.sapl=.js)

all: create $(MODULES) $(TARGETS)

clean: 
	rm -rf js
	rm -rf build
	rm -rf ffis
	
create:
	mkdir -p js
	mkdir -p build
	mkdir -p ffis
	
%.sapl:
	$(GHCSAPL) --make $*

if [ -f "$*.ffi.js" ]; then ffi ="$*.ffi.js"; else ffi=""; fi
	
%.js:
# $(SL) --expr=MainCarrousel.carrousel js/$*.sapl
	$(BASE)/catruntime.sh $(BASE) "$(SHARED)/script/uuid/uuid.js"
	$(SL) --expr=$*.main js/$*.sapl
#	$(SL) --expr=Main.main js/$*.sapl
	$(S2JS) -o build/$*.js js/$*.sapl
	$(CC) --js_output_file js/Main.js build/$*.js ./ffis/$*.ffi.js js/runtime.js
#	$(CC) --js_output_file js/Main.js build/$*.js Main.ffi.js js/runtime.js