#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-
# Copyright © 2011-2017 Jonas Smedegaard <dr@jones.dk>
# Description: Main Debian packaging script for UglifyJS
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

include /usr/share/cdbs/1/rules/debhelper.mk

pkg = node-uglify
libdir = /usr/lib/nodejs/uglify-js

jspkg = libjs-uglify
jslibdir = /usr/share/javascript/uglifyjs

# Needed by upstream build process and (always/seldom) at runtime
deps = node-yargs
deps-suggest = node-acorn

# Needed by upstream testsuite
bdeps-test = mocha, node-escodegen, node-estraverse

CDBS_BUILD_DEPENDS +=, $(deps), $(deps-suggest), $(bdeps-test)
CDBS_DEPENDS_$(pkg) = nodejs, $(deps)
CDBS_RECOMMENDS_$(pkg) = node-source-map
CDBS_SUGGESTS_$(pkg) = $(deps-suggest), node-uglify-to-browserify
CDBS_PROVIDES_$(pkg) = uglifyjs

# don't fail on experimental builds
DEB_SUITE_EXP = $(filter experimental% UNRELEASED,$(DEB_SUITE))

# generate man page from --help output of script itself
CDBS_BUILD_DEPENDS +=, help2man
DEB_INSTALL_MANPAGES_$(pkg) = debian/uglifyjs.1
common-build-indep:: debian/stamp-build
debian/stamp-build:
	NODE_PATH=lib help2man --no-info bin/uglifyjs | sed \
	    -e 's/[[:space:]]*\[string\]$$/ This parameter is a string./g' \
	    -e 's/[[:space:]]*\[boolean\]$$/ This parameter is a boolean./g' \
	    -e 's/[[:space:]]*\[array\]$$/ This parameter is an array./g'> debian/uglifyjs.1
	$(if $(filter nocheck,$(DEB_BUILD_OPTIONS)),\
		,\
		NODE_PATH=lib nodejs test/run-tests.js \
		$(if $(DEB_SUITE_EXP),|| true))
	nodejs bin/uglifyjs \
	  --self \
	  --comments /Copyright/ \
	  --output debian/uglify.js
	touch $@
common-post-build-indep::
	rm -f lib/uglify-js
clean::
	rm -f lib/index.js lib/package.json
	rm -f debian/stamp-build debian/uglifyjs.1
	rm -f debian/uglify.js

DEB_DH_INSTALL_ARGS_$(pkg) = package.json bin lib tools $(libdir)
DEB_DH_INSTALL_ARGS_$(jspkg) = debian/uglify.js $(jslibdir)
DEB_DH_LINK_$(pkg) = $(libdir)/bin/uglifyjs /usr/bin/uglifyjs
DEB_INSTALL_DOCS_ALL += README.md

binary-fixup/$(pkg)::
	chmod a+x debian/$(pkg)/usr/lib/nodejs/uglify-js/bin/extract-props.js
