#!/usr/bin/make -f

STEMS = adapter adapter_no_global adapter_no_edge adapter_no_edge_no_global
DOCS = README.md

# concatenate for browsers using browserify-lite
_mkweb = NODE_PATH=.:/usr/lib/nodejs \
 browserify-lite $(patsubst %,--standalone %,$3) --outfile $2 $1

%:
	dh $@

# optimize JavaScript for browser use
# TODO: include source-map when supported by concatenation
debian/js/%.min.js: debian/js/%.js
	mkdir --parents debian/js
	uglifyjs --compress --mangle \
		--output $@ \
		-- $<

# pre-compress for browser use
%.gz: %
	pigz --force --keep -11 -- $<
	brotli --force --keep --best -- $<

override_dh_auto_build: $(patsubst %,debian/js/%.min.js.gz,$(STEMS))

# build browser libraries
$(patsubst %,debian/js/%.js,$(STEMS)):
	grunt babel
	mkdir --parents out
	$(call _mkweb, dist/adapter_core5.js, out/adapter.js, adapter)
	$(call _mkweb, dist/adapter_core5.js, out/adapter_no_global.js)
	rm dist/edge/edge_shim.js
	sed --in-place --expression '/edge_shim/d' dist/adapter_factory.js
	$(call _mkweb, dist/adapter_core5.js, out/adapter_no_edge.js, adapter)
	$(call _mkweb, dist/adapter_core5.js, out/adapter_no_edge_no_global.js)
	mkdir --parents debian/js
	cp --force \
		--target-directory debian/js \
		-- out/*.js

override_dh_installdocs:
	dh_installdocs --all -- $(DOCS)

.SECONDARY:
