NAME        = snake
VERSION		= $(shell echo `grep "^Version:" snake.spec | awk '{print $$2}'`)
RELEASE		= $(shell echo `grep "^Release:" snake.spec | awk '{print $$2}'
NEWRELEASE	= $(shell echo $$(($(RELEASE) + 1)))

MESSAGESPOT=po/messages.pot

TOPDIR = $(shell pwd)
DIRS	= snake docs scripts
PYDIRS	= snake scripts
EXAMPLEDIR = examples
INITDIR	= init-scripts

all: rpms


manpage:
	pod2man --center="snake-tree" --release="" ./docs/snake-tree.pod | gzip -c > ./docs/snake-tree.1.gz
	pod2man --center="snake-ks" --release="" ./docs/snake-ks.pod | gzip -c > ./docs/snake-ks.1.gz
	pod2man --center="snake-install" --release="" ./docs/snake-install.pod | gzip -c > ./docs/snake-install.1.gz

messages:
	xgettext -k_ -kN_ -o $(MESSAGESPOT) snake/minion/*.py
	sed -i'~' -e 's/SOME DESCRIPTIVE TITLE/snake/g' -e 's/YEAR THE PACKAGE'"'"'S COPYRIGHT HOLDER/2007 Red Hat, inc. /g' -e 's/FIRST AUTHOR <EMAIL@ADDRESS>, YEAR/Adrian Likins <alikins@redhat.com>, 2007/g' -e 's/PACKAGE VERSION/snake $(VERSION)-$(RELEASE)/g' -e 's/PACKAGE/snake/g' $(MESSAGESPOT)

build: clean
	python setup.py build -f

clean:
	-rm -f  MANIFEST
	-rm -rf dist/ build/ rpm-build/
	-rm -rf *~
	-rm -rf docs/*.gz docs/*.bz2
	-for d in $(DIRS); do ($(MAKE) -C $$d clean ); done

clean_hard:
	-rm -rf $(shell python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")/snake

clean_harder:
	-rm -rf /etc/pki/snake
	-rm -rf /etc/snake
	-rm -rf /var/lib/snake

clean_hardest: clean_rpms


install: build manpage
	python setup.py install -f

install_hard: clean_hard install

install_harder: clean_harder install

install_hardest: clean_harder clean_rpms rpms install_rpm restart

install_rpm:
	-rpm -Uvh rpm-build/snake-$(VERSION)-$(RELEASE)$(shell rpm -E "%{?dist}").noarch.rpm

restart:
	-/etc/init.d/snake-server restart

recombuild: install_harder restart

clean_rpms:
	-rpm -e snake

## sdist: messages
sdist:
	python setup.py sdist --formats=bztar

new-rpms: bumprelease rpms

pychecker:
	-for d in $(PYDIRS); do ($(MAKE) -C $$d pychecker ); done
pyflakes:
	-for d in $(PYDIRS); do ($(MAKE) -C $$d pyflakes ); done

money: clean
	-sloccount --addlang "makefile" $(TOPDIR) $(PYDIRS) $(EXAMPLEDIR) $(INITDIR)

rpms: build manpage sdist
	mkdir -p rpm-build
	cp dist/*.bz2 rpm-build
	chmod 644 rpm-build/*.bz2
	rpmbuild --define "_topdir %(pwd)/rpm-build" \
	--define "_builddir %{_topdir}" \
	--define "_rpmdir %{_topdir}" \
	--define "_srcrpmdir %{_topdir}" \
	--define '_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm' \
	--define "_specdir %{_topdir}" \
	--define "_sourcedir  %{_topdir}" \
	-ba snake.spec
