#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-
# Copyright © 2011, 2012, 2013 Jonas Smedegaard <dr@jones.dk>
# Description: Main Debian packaging script for async
#
# 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/upstream-tarball.mk
include /usr/share/cdbs/1/rules/utils.mk
include /usr/share/cdbs/1/rules/debhelper.mk

libname = async
libdirname = $(libname)
libpkgname = libjs-$(libname)
nodepkgname = node-$(libname)

# suppress optional build-dependencies
CDBS_BUILD_DEPENDS_rules_upstream-tarball =
CDBS_BUILD_DEPENDS_rules_utils_copyright-check =

DEB_UPSTREAM_URL = http://github.com/caolan/async/archive
DEB_UPSTREAM_TARBALL_BASENAME = v$(DEB_UPSTREAM_TARBALL_VERSION)

# suppress checking binary files, to not upset dpkg-source
DEB_COPYRIGHT_CHECK_IGNORE_REGEX = ^(dist/async\.min\.js|debian/(changelog|copyright(|_hints|_newhints)))$

DEB_INSTALL_DOCS_ALL += README.md

# Ease backporting (node-uglify is tough to backport)
# TODO: drop fallback-dependency after Squeeze
CDBS_BUILD_DEPENDS += , node-uglify | yui-compressor
js-compressor := $(or $(notdir $(shell which uglifyjs)),yui-compressor)

# TODO: generalize (at least non-node) parts below as a CDBS snippet

js-basedir = lib/
#js-stems = $(basename $(wildcard $(js-basedir)*.js))
js-stems = $(libname)
js-min = $(js-stems:%=debian/%.min.js)
js-destdir = /usr/share/javascript/$(libdirname)

node-destdir = /usr/lib/nodejs

DEB_DH_INSTALL_ARGS_DEFAULT = $(js-stems:%=$(js-basedir)%.js) debian/*.min.js $(js-destdir)
DEB_DH_INSTALL_ARGS_$(nodepkgname) = $(js-stems:%=$(js-basedir)%.js) $(node-destdir)

build/$(libpkgname):: $(js-min)
$(js-min): debian/%.min.js: $(js-basedir)%.js
	$(js-compressor) -o $@ $<
clean::
	rm -f debian/*.js

# Unset executable bit on library files
binary-post-install/$(nodepkgname)::
	chmod -x debian/$(cdbs_curpkg)$(node-destdir)/*
binary-post-install/$(libpkgname)::
	chmod -x debian/$(cdbs_curpkg)$(js-destdir)/*
