# Copyright (C) 2010 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 clean clobber configure copy deb haddock help hlint install lintian prof rpm rpmlint sdist
all: install
install: build haddock
@[ -z "$$CABAL_INSTALL_OPTIONS" ] || echo "INFO: CABAL_INSTALL_OPTIONS='$$CABAL_INSTALL_OPTIONS'"
runhaskell Setup.hs $@ $$CABAL_INSTALL_OPTIONS
prof:
CABAL_CONFIGURE_OPTIONS="--enable-library-profiling --enable-executable-profiling $$CABAL_CONFIGURE_OPTIONS" make install
copy: build
@[ -z "$$CABAL_COPY_OPTIONS" ] || echo "INFO: CABAL_COPY_OPTIONS='$$CABAL_COPY_OPTIONS'"
runhaskell Setup.hs $@ $$CABAL_COPY_OPTIONS
build: configure
@[ -z "$$CABAL_BUILD_OPTIONS" ] || echo "INFO: CABAL_BUILD_OPTIONS='$$CABAL_BUILD_OPTIONS'"
runhaskell Setup.hs $@ $$CABAL_BUILD_OPTIONS
configure: regexchar.cabal Setup.hs
@[ -z "$$CABAL_CONFIGURE_OPTIONS" ] || echo "INFO: CABAL_CONFIGURE_OPTIONS='$$CABAL_CONFIGURE_OPTIONS'"
runhaskell Setup.hs $@ $$CABAL_CONFIGURE_OPTIONS #--user
haddock: configure
PATH=~/.cabal/bin:$$PATH runhaskell Setup.hs $@ --hyperlink-source --executables #Amend path to find 'HsColour', as required for 'hyperlink-source'.
hlint:
@$@ src/
sdist: configure
runhaskell Setup.hs $@
rpm: regexchar.spec
rpmbuild -bb -- $^
mv -- `find /usr/src/packages/ -type f -name 'regexchar*.rpm' -mtime 0 -print` ./
rpmlint: regexchar.spec
@$@ $^
deb: build
mkdir -p 'debian/usr/bin/' && strip --strip-all 'dist/build/grecce/grecce' && mv 'dist/build/grecce/grecce' 'debian/usr/bin/'
mkdir -p 'debian/usr/share/doc/regexchar/' && cp 'changelog' 'changelog.Debian' 'LICENSE' 'debian/usr/share/doc/regexchar/' && gzip --best debian/usr/share/doc/regexchar/*
mkdir -p 'debian/usr/share/regexchar/data/' && cp data/*.txt 'debian/usr/share/regexchar/data/'
cp 'copyright' 'debian/usr/share/doc/regexchar/'
mkdir -p 'debian/usr/share/man/man1/' && cp 'man/man1/grecce.1' 'debian/usr/share/man/man1/' && gzip --best debian/usr/share/man/man1/*.1
cd 'debian' && md5sum `find usr -type f -print` >'DEBIAN/md5sums'
fakeroot dpkg-deb --build debian .
lintian:
lintian -v *.deb
clean:
runhaskell Setup.hs $@
rm -rf 'debian/usr/' 'debian/DEBIAN/md5sums'
clobber: clean
rm -f -- *.rpm *.deb
help:
@grep '^[a-zA-Z].*:' makefile | sed -e 's/:.*//'