#
#  make all
#  make Release
#  make clean
#
VERSION := ${notdir ${shell pwd -P}}

RELEASE_DIR := ../release

# MINIFY := yes

.PHONY: all clean Html Sample Doc Release SimplePkg FullPkg HtmlArc

#
# make all
#  (Html, Sample, Doc)
#
all:	Html


#
# make Html
#
JS_MINIFIER := ~/bin/jar/closure-compiler.jar
# JS_FILES := $(wildcard src/js/*.js)
JS_FILES := $(notdir $(wildcard src/js/*.js))
CSS_FILES := $(notdir $(wildcard src/*.css))
PNG_FILES := $(notdir $(wildcard doc/*.png src/*.png))
HTML_SRC := spelam.html spelam-embedded.html spelam-if.html
build/js/%.js: src/js/%.js
	@mkdir -p build/js
ifeq ($(MINIFY),yes)
	 java -jar $(JS_MINIFIER) --js $< --js_output_file $@
else
	 cp -p $< $@
endif
build/%.html: src/%.html
	@mkdir -p build
	cp -p $< $@;
build/%.css: src/%.css
	mkdir -p build
	cp -p $< $@;
html/%.png: doc/%.png
	mkdir -p html
	cp -p $< $@;
html/%.png: src/%.png
	mkdir -p html
	cp -p $< $@;
html/%.html: build/%.html \
	  $(addprefix build/js/,$(JS_FILES)) \
	  $(addprefix build/,$(CSS_FILES)) \
	  $(addprefix html/,$(PNG_FILES)) 
	@mkdir -p html
	script/packhtml.pl $< \
	| perl -pe 's/__VERSION__/$(VERSION)/g' \
	> $@
Html: $(addprefix html/,$(HTML_SRC)) Sample Doc \
	  $(addprefix build/,$(HTML_SRC)) \
	  $(addprefix build/js/,$(JS_FILES)) \
	  $(addprefix build/,$(CSS_FILES)) \
	  $(addprefix html/,$(PNG_FILES)) 


#
# make Sample
#
SAMPLE_SRC := $(wildcard sample/*)
SAMPLE_DST := $(addprefix html/,$(SAMPLE_SRC))
html/sample/%: sample/%
	@mkdir -p html/sample
	cp -p $< $@
Sample: $(SAMPLE_DST)


#
# make Doc
#
Doc:
	cd doc; make


#
# make Release
#
ARC_DIR := $(RELEASE_DIR)/archive
SimplePkg: Html
	@mkdir -p build $(ARC_DIR)
	rm -rf build/spelam-simple-$(VERSION)
	cp -rp html build/spelam-simple-$(VERSION)
	rm -rf $(ARC_DIR)/spelam-simple-$(VERSION).zip
	cd build; \
	  zip -rq ../$(ARC_DIR)/spelam-simple-$(VERSION).zip \
	    spelam-simple-$(VERSION)
FULL_FILES := Makefile src doc sample script test html
FullPkg: Html
	@mkdir -p build $(ARC_DIR)
	rm -rf build/spelam-full-$(VERSION)
	mkdir build/spelam-full-$(VERSION)
	cp -rp $(FULL_FILES) build/spelam-full-$(VERSION)
	rm -rf $(ARC_DIR)/spelam-full-$(VERSION).zip
	cd build; \
	  zip -rq ../$(ARC_DIR)/spelam-full-$(VERSION).zip \
	    spelam-full-$(VERSION)
HtmlArc: Html
	@mkdir -p $(ARC_DIR)
	rm -rf $(ARC_DIR)/html-$(VERSION)
	cp -rp html $(ARC_DIR)/html-$(VERSION)
Release: HtmlArc SimplePkg FullPkg
	@mkdir -p $(ARC_DIR)
	script/mkarchive.pl html/archive.html $(ARC_DIR) 'archive/' \
	  > $(RELEASE_DIR)/archive.html
	cp -rp html/doc.css $(RELEASE_DIR)
	cp -rp html/master-index.html $(RELEASE_DIR)/index.html
	cp -p html/spelam-icon3.png $(RELEASE_DIR)
	cp -p html/header.png $(RELEASE_DIR)
	



#
# make clean
#
clean:
	rm -rf html build
