#!/usr/bin/make -f STEMS = adapter adapter_no_global adapter_no_edge adapter_no_edge_no_global DOCS = README.md # normalize output with TAP where possible unless terse requested ifeq (,$(filter terse,$(DEB_BUILD_OPTIONS))) MOCHA = mocha --reporter tap else MOCHA = mocha --reporter dot --no-colors endif # concatenate for browsers _mkweb = mkdir --parents out && \ rollup --strict --config=debian/rollup.config.js --format=iife $(if $3,--name=$3) --file=$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 --suffix=.brotli -- $< override_dh_auto_build: $(patsubst %,debian/js/%.min.js.gz,$(STEMS)) override_dh_auto_test: $(MOCHA) test/unit # build browser libraries dist/adapter_core5.js: src/js/adapter_core5.js babeljs --no-babelrc --presets @babel/preset-env \ --source-root src/js/index.js \ --out-dir dist \ -- src/js dist_x/adapter_core5.js: dist/adapter_core5.js cp --force --archive dist dist_x rm dist_x/edge/edge_shim.js sed --in-place --expression '/edge_shim/d' dist_x/adapter_factory.js $(patsubst %,%/adapter_core_no_global.js,dist dist_x): src/js/adapter_core.js cp --force --archive src/js/adapter_core.js dist/adapter_core_no_global.js sed --in-place --expression 's/const /var /; s/{window}/{ window: window }/; /^export default/d' dist/adapter_core_no_global.js out/adapter.js: dist/adapter_core5.js $(call _mkweb,$<,$@,adapter) out/adapter_no_global.js: dist/adapter_core_no_global.js $(call _mkweb,$<,$@) out/adapter_no_edge.js: dist_x/adapter_core5.js $(call _mkweb,$<,$@,adapter) out/adapter_no_edge_no_global.js: dist_x/adapter_core_no_global.js $(call _mkweb,$<,$@) $(patsubst %,debian/js/%.js,$(STEMS)): debian/js/%.js: out/%.js mkdir --parents debian/js cp --force --target-directory debian/js $< override_dh_installdocs: dh_installdocs --all -- $(DOCS) .SECONDARY: