#!/usr/bin/make -f include /usr/share/dpkg/pkg-info.mk # detect when build is targeted the experimental suite DEB_SUITE_EXP = $(filter experimental% UNRELEASED,$(DEB_DISTRIBUTION)) # generate documentation unless nodoc requested ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS))) DOCS_md = $(wildcard README.md X*/README.md) DOCS = $(DOCS_md:.md=.html) $(DOCS_md:.md=.txt) CHANGELOGS_md = $(wildcard CHANGELOG.md X*/CHANGELOG.md) CHANGELOGS = $(CHANGELOGS_md:.md=.html) $(CHANGELOGS_md:.md=.txt) endif MOCHA = mocha --reporter tap # from folder $1 check mocha tests $2 # * tolerate failure of experimental builds _mocha = $(if $(filter-out .,$1),cd $1 && )$(strip \ $(MOCHA) $2 \ $(if $(DEB_SUITE_EXP),|| true)) # either resolve some files to include, or explicitly exclude # 1: include filter, 2: include list, 3: exclude filter _get_files_or_exclude = $(strip $(if $(filter $1%,$($2)),\ -- $(filter $1%,$($2)),\ -X$(or $3,$(patsubst %S,%,$2)))) override_dh_auto_build: \ Xauth/index.js \ Xhttp/codes.json \ $(CHANGELOGS) $(DOCS) # check testsuites unless nocheck requested override_dh_auto_test: # $(call _must) # $(call _jest, Xauth) # $(call _must, Xhttp) $(call _mocha, Xwebidl, test/*.js) # suppress upstream cleanup unneeded here override_dh_auto_clean: override_dh_installdocs: dh_installdocs -pnode-auth-header \ $(call _get_files_or_exclude,Xauth/,DOCS,README) dh_installdocs -pnode-standard-error \ $(call _get_files_or_exclude,README,DOCS,README) dh_installdocs -pnode-standard-http-error \ $(call _get_files_or_exclude,Xhttp/,DOCS,README) dh_installdocs -pnode-webidl-conversions \ $(call _get_files_or_exclude,Xwebidl/,DOCS,README) override_dh_installchangelogs: dh_installchangelogs -pnode-auth-header \ $(call _get_files_or_exclude,Xauth/,CHANGELOGS) dh_installchangelogs -pnode-standard-error \ $(call _get_files_or_exclude,CHANGELOG,CHANGELOGS) dh_installchangelogs -pnode-standard-http-error \ $(call _get_files_or_exclude,Xhttp/,CHANGELOGS) dh_installchangelogs -pnode-webidl-conversions \ $(call _get_files_or_exclude,Xwebidl/,CHANGELOGS) # prefix upstream version to our weird bundle to ease dependency tracking override_dh_gencontrol: dh_gencontrol -pnode-auth-header \ -- -v$(shell jq --raw-output .version < Xauth/package.json)~$(DEB_VERSION) dh_gencontrol -pnode-standard-error \ -- -v$(shell jq --raw-output .version < package.json)~$(DEB_VERSION) dh_gencontrol -pnode-standard-http-error \ -- -v$(shell jq --raw-output .version < Xhttp/package.json)~$(DEB_VERSION) dh_gencontrol -pnode-webidl-conversions \ -- -v$(shell jq --raw-output .version < Xwebidl/package.json)~$(DEB_VERSION) override_dh_clean: dh_clean $(DOCS) $(CHANGELOGS) Xauth/index.js: BROWSERSLIST='node 6' babeljs \ --no-babelrc --presets=@babel/preset-env,@babel/preset-flow \ --out-dir Xauth/dist \ -- Xauth/src Xhttp/codes.json: make -C Xhttp codes.json %.html: %.md pandoc --from gfm-raw_html --to html --standalone --output $@ $< %.txt: %.md pandoc --from gfm-raw_html --to plain --output $@ $< %: dh $@