packages feed

fishfood-0.0.1.3: makefile

# Copyright (C) 2013-2014 Dr. Alistair Ward
#
# 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 of the License, 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/>.

.PHONY: all build check clean clobber configure copy deb haddock help hlint install prof rpm sdist

PACKAGE_NAME=fishfood

all: install

install: build haddock
	@[ -z "$$CABAL_INSTALL_OPTIONS" ] || echo "INFO: CABAL_INSTALL_OPTIONS='$$CABAL_INSTALL_OPTIONS'"
	runhaskell Setup $@ $$CABAL_INSTALL_OPTIONS

prof:
	CABAL_CONFIGURE_OPTIONS="--enable-executable-profiling $$CABAL_CONFIGURE_OPTIONS" make build

copy: build
	@[ -z "$$CABAL_COPY_OPTIONS" ] || echo "INFO: CABAL_COPY_OPTIONS='$$CABAL_COPY_OPTIONS'"
	runhaskell Setup $@ $$CABAL_COPY_OPTIONS

build: configure
	@[ -z "$$CABAL_BUILD_OPTIONS" ] || echo "INFO: CABAL_BUILD_OPTIONS='$$CABAL_BUILD_OPTIONS'"
	runhaskell Setup $@ $$CABAL_BUILD_OPTIONS

configure: $(PACKAGE_NAME).cabal Setup.hs
	@[ -z "$$CABAL_CONFIGURE_OPTIONS" ] || echo "INFO: CABAL_CONFIGURE_OPTIONS='$$CABAL_CONFIGURE_OPTIONS'"
	runhaskell Setup $@ $$CABAL_CONFIGURE_OPTIONS	#--user

haddock: configure
	PATH=~/.cabal/bin:$$PATH runhaskell Setup $@ --hyperlink-source --executables	#Amend path to find 'HsColour', as required for 'hyperlink-source'.

hlint:
	@$@ src/ +RTS -N

sdist:
	TAR_OPTIONS='--format=ustar' runhaskell Setup $@

check: sdist
	cabal upload --check --verbose=3 dist/*.tar.gz;

rpm: $(PACKAGE_NAME).spec
	rpmbuild -bb --nodeps -- $^
	mv -- `find ~/rpmbuild -type f -name '$(PACKAGE_NAME)*.rpm' -mtime 0 -print` ./

deb: build
	mkdir -p debian/usr/bin/ && strip --strip-all 'dist/build/$(PACKAGE_NAME)/$(PACKAGE_NAME)' && mv 'dist/build/$(PACKAGE_NAME)/$(PACKAGE_NAME)' debian/usr/bin/
	mkdir -p 'debian/usr/share/doc/$(PACKAGE_NAME)/' && cp changelog changelog.Debian copyright LICENSE 'debian/usr/share/doc/$(PACKAGE_NAME)/' && cd 'debian/usr/share/doc/$(PACKAGE_NAME)/' && gzip --best -f changelog changelog.Debian LICENSE
	mkdir -p debian/usr/share/ && cp -R man/ debian/usr/share/ && gzip --best -f debian/usr/share/man/man1/*.1
	cd debian/ && md5sum `find usr -type f -print` >'DEBIAN/md5sums'
	fakeroot dpkg-deb --build debian .

clean:
	runhaskell Setup $@
	rm -rf 'debian/usr/' 'debian/DEBIAN/md5sums'
	find src -type f \( -name '*.hc' -o -name '*.hcr' -o -name '*.hi' -o -name '*.o' \) -delete

clobber: clean
	rm -f -- *.rpm *.deb

help:
	@grep '^[a-zA-Z].*:' makefile | sed -e 's/:.*//'