PACKAGE := ohm
VERSION := 0.1.2

TOPDIR  := $(shell while [ ! -d fedora -a "`pwd`" != "/" ]; do cd ..; done; \
		   [ -d fedora ] && pwd || exit 1)

ARCH     := i386
RPM      := $(PACKAGE)-$(VERSION).$(ARCH).rpm
SPECFILE := $(TOPDIR)/fedora/$(PACKAGE).spec
TARBALL  := $(TOPDIR)/fedora/$(PACKAGE)-$(VERSION).tar.gz
TARDIR  := $(notdir $(TOPDIR))

STAMP   := $(shell date +%Y-%m-%d-%H%M%S)
TMPDIR  := /tmp/$(PACKAGE)-$(USER)/$(STAMP)


all: rpms cleanup

# rule to build RPM(s) for this package
rpms: rmtar $(SPECFILE) $(TARBALL)
	mkdir -p $(TMPDIR)/{BUILD,RPMS,SOURCES,SPECS} && \
	cp $(SPECFILE) $(TMPDIR)/SPECS && \
	cp $(TARBALL) $(TMPDIR)/SOURCES && \
	rpmbuild --define '_topdir $(TMPDIR)' \
	    -bb $(TMPDIR)/SPECS/$(PACKAGE).spec && \
	cp $(TMPDIR)/RPMS/$(ARCH)/*.rpm $(TOPDIR)/fedora

cleanup:
	rm -fr $(TMPDIR) && \
	rm -f $(SPECFILE)
	rm -f $(TARBALL)

# rules to patch the SPEC file and build a source tarball
$(SPECFILE): $(SPECFILE).in
	cat $< | \
	    sed 's/##__VERSION__##/$(VERSION)/g;s/##__TARDIR__##/$(TARDIR)/g'| \
	    sed 's/##__ARCH__##/$(ARCH)/g' \
	    > $@

$(TARBALL):
	pushd $(TOPDIR) && make distclean || : && ./autogen.sh && popd && \
	pushd $(TOPDIR)/.. && \
	tar -cvzf /tmp/$(notdir $@) \
	    --exclude '*/fedora' \
	    --exclude '*/.git' $(notdir $(TARDIR)) && \
	mv /tmp/$(notdir $@) $@

rmtar:
	rm -f $(TARBALL)
