#!/usr/bin/make -f STEM = leaflet ESLINT = eslint --format tap # TODO: drop when node-eslint-config-mourner is in Debian ESLINT += $(strip \ --no-eslintrc --global L --env commonjs,amd,node \ --parser-options '{ "ecmaVersion": 2015, "sourceType": "module" }' \ --rule '{ \ "linebreak-style": [ 0, "unix" ], \ "no-mixed-spaces-and-tabs": [ 2, "smart-tabs" ], \ "indent": [ 2, "tab", { "VariableDeclarator": 0, "flatTernaryExpressions": true } ], \ "curly": 2, \ "spaced-comment": 2, \ "strict": 0, \ "wrap-iife": 0, \ "key-spacing": 0, \ "consistent-return": 0, \ "no-unused-expressions": [ "error", { "allowShortCircuit": true } ] }') override_dh_auto_build: \ debian/js/$(STEM).esm.min.js.gz \ debian/js/$(STEM).min.js.gz \ debian/js/$(STEM).css.gz dist/$(STEM)-src.esm.js \ dist/$(STEM)-src.js: NODE_ENV=release rollup --config build/rollup-config.js override_dh_auto_test: $(ESLINT) src spec/suites docs/docs/js execute_after_dh_install: rename 's/-src//' debian/*/usr/share/javascript/leaflet/*.js # optimize JavaScript for browser use # * include source-map using upstream intermediary debian/js/%.esm.min.js: dist/%-src.esm.js mkdir --parents debian/js terser --compress --mangle \ --source-map "base='$(abspath $(dir $@))',content='$<.map',url='$(notdir $@).map'" \ --output $@ \ -- $< debian/js/%.min.js: dist/%-src.js mkdir --parents debian/js uglifyjs --compress --mangle \ --source-map "base='$(abspath $(dir $@))',content='$<.map',url='$(notdir $@).map'" \ --output $@ \ -- $< # pre-compress for browser use %.gz: % pigz --force --keep -11 -- $< brotli --force --keep --best --suffix=.brotli -- $< # optimize CSS debian/js/%.css: dist/%.css sassc --style compressed --sourcemap \ -- $< $@ %: dh $@ .SECONDARY: