#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# The following is for internal development usage only
# Update that sum when new _upstream_ releases occur, this
# catches silent file content forges at the upstream server side
# Archive downloaded from https://www.icce.rug.nl/debian/bisonc++
#   file: bisonc++_x.y.z.tar.gz

MD5TRUSTED := cdb9a11ec237f10b1c8cc31e7f4076d0

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

export DEB_BUILD_HARDENING = 1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export CPPFLAGS = $(shell dpkg-buildflags --get CPPFLAGS)
export LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS)
export CXXFLAGS = $(shell dpkg-buildflags --get CXXFLAGS)
export CXXFLAGS += --std=c++0x -Wall 
export CXX = g++

SKEL = /usr/share/bisonc++

configure: configure-stamp
configure-stamp:
	dh_testdir
	# Add here commands to configure the package.
	touch configure-stamp

build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
build-stamp: configure-stamp
	dh_testdir

	# compile the package.
	./build program
	./build man

	touch build-stamp

build-indep:
	./build manual

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	# Add here commands to clean up after the build process.
	./build clean

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	# Add here commands to install the package into debian/bisonc++.
	./build install program debian/bisonc++/usr/bin/bisonc++
	./build install skel    debian/bisonc++/usr/share/bisonc++
	./build install man     debian/bisonc++/usr/share/man/man1
	./build install std     debian/bisonc++/usr/share/doc/bisonc++

install-indep:
	./build install manual  debian/bisonc++-doc/usr/share/doc/bisonc++-doc
	./build install extra   debian/bisonc++-doc/usr/share/doc/bisonc++-doc

# Build architecture-independent files here.
binary-indep: build-indep install-indep
	dh_testdir -i
	dh_testroot -i
	dh_installdocs -i  README.class-setup  README.flex README.lookaheads  README.states  README.parser README.states-and-conflicts
	dh_installinfo -i
	dh_installchangelogs -i
	dh_link -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir -a
	dh_testroot -a
	dh_installchangelogs -a
	dh_installdocs README-0.98 -a
	dh_installexamples -a
	#dh_installman -a
	dh_link -a
	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

DEBVERSION:=$(shell head -n 1 debian/changelog | sed -e 's/^[^(]*(\([^)]*\)).*/\1/')
UPVERSION:=$(shell echo $(DEBVERSION) | sed -e 's/^.*://' -e 's/-[0-9.]*$$//' -e 's/.dfsg$$//')
UPNAME := bisonc++
UPFILE := $(UPNAME)_$(UPVERSION).tar.gz
DEFILE := $(UPNAME)_$(UPVERSION).orig.tar.gz
URL        := https://www.icce.rug.nl/debian/bisonc++
MD5CURRENT := `md5sum ../tarballs/$(DEFILE) | sed -e 's/ .*//'`

get-orig-source:
	@@dh_testdir
	@@[ -d ../tarballs/. ]||mkdir -p ../tarballs

	-@if [ ! -f ../tarballs/$(DEFILE) ] ; then \
	echo -e "Downloading $(URL)/$(UPFILE)\nSaving into ../tarballs/$(DEFILE) ..." ; \
	wget --no-check-certificate --quiet -N -nv -T20 -t3 -O \
	 ../tarballs/$(DEFILE) $(URL)/$(UPFILE) ; \
	else \
	echo "Upstream source tarball has already been downloaded" ; \
	fi

	-@if [ "$(MD5CURRENT)" != "$(MD5TRUSTED)" ] ; then \
	echo "Expecting upstream filename md5sum $(MD5TRUSTED), but $(MD5CURRENT) found" ; \
	echo "Upstream filename md5sum is NOT trusted! Possible upstream filename forge!" ; \
	false ; \
	else \
	echo "Upstream filename md5sum is trusted!" ; \
	fi


print-version:
	@@echo "Debian version:  $(DEBVERSION)"
	@@echo "Upstream version:        $(UPVERSION)"


binary: binary-arch binary-indep
.PHONY: build clean binary-indep binary-arch binary install configure

