
all:

DESTDIR=
PREFIX=/usr
BINDIR=$(PREFIX)/bin
MAN1DIR=$(PREFIX)/share/man/man1
PROGRAM=antlink
DOCDIR=/usr/share/doc

BASH_COMPLETION_DIR ?= $(shell pkg-config --variable=completionsdir bash-completion)


install: install_program install_bash_completion

install_program:
	test -d $(DESTDIR)$(BINDIR) || mkdir -p $(DESTDIR)$(BINDIR)
	cp $(PROGRAM) $(DESTDIR)$(BINDIR)/$(PROGRAM)
	chmod u=rwx,go=rx $(DESTDIR)$(BINDIR)/$(PROGRAM)
	-mkdir -p $(DESTDIR)$(MAN1DIR)
	-pod2man $(PROGRAM) |gzip >$(DESTDIR)$(MAN1DIR)/$(PROGRAM).1.gz

install_bash_completion:
	test -d $(DESTDIR)$(BASH_COMPLETION_DIR) || mkdir -p $(DESTDIR)$(BASH_COMPLETION_DIR)
	cp bash-completion.antlink $(DESTDIR)$(BASH_COMPLETION_DIR)/antlink
	chmod u=rw,go=r $(DESTDIR)$(BASH_COMPLETION_DIR)/antlink

# override DOCSUBDIR on epel to be $(PROGRAM)-$(VERSION)
DOCSUBDIR=$(PROGRAM)
install_docs:
	test -d $(DESTDIR)$(DOCDIR)/$(DOCSUBDIR) || mkdir -p $(DESTDIR)$(DOCDIR)/$(DOCSUBDIR)
	cp README.md COPYING $(DESTDIR)$(DOCDIR)/$(DOCSUBDIR)

#
# Copied from Perl's MakeMaker
#
TEST_VERBOSE=0
TEST_FILES = TEST/*.t
INST_LIB=
INST_ARCHLIB=

test::
	git config --global user.email || echo "make test requires some value for git config --global user.email"
	git config --global user.name || echo "make test requires some value for git config --global user.name"
	git config --global init.defaultBranch || echo "make test requires some value for git config --global init.defaultBranch.name"
	perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES)

antlink.html: antlink
	pod2html $< >$@

#
# packaging
#

RPM_DIST=$(shell rpm --eval '%{dist}')
VERSION=$(shell cat VERSION)

VERSION: antlink
	grep VERSION antlink |grep -v sub | sed "s/^.*'\([.0-9]*\)';.*$$/\1/" >$@

tar.gz dist: VERSION antlink.spec.in
	ln -s . antlink-$(VERSION)
	tar cvzf antlink-$(VERSION).tar.gz \
		antlink-$(VERSION)/README.md \
		antlink-$(VERSION)/COPYING \
		antlink-$(VERSION)/VERSION \
		antlink-$(VERSION)/Makefile \
		antlink-$(VERSION)/antlink \
		antlink-$(VERSION)/antlink.spec.in \
		antlink-$(VERSION)/bash-completion.antlink \
		antlink-$(VERSION)/TEST/base.t
	rm antlink-$(VERSION)



#
# fedora packaging
#

antlink.spec: antlink.spec.in VERSION
	<antlink.spec.in sed 's/@VERSION@/'$(VERSION)'/g' >$@

RPM_ARCH=noarch
RPM_PREFIX=antlink
SPEC_PREFIX=$(RPM_PREFIX)
RPM_DIST=$(shell rpm --eval '%{dist}')

rpms: antlink.spec VERSION
	cp antlink-$(VERSION).tar.gz $$HOME/rpmbuild/SOURCES
	cp antlink.spec $$HOME/rpmbuild/SPECS
	( cd $$HOME/rpmbuild; rpmbuild -ba SPECS/antlink.spec && rpmsign --addsign RPMS/$(RPM_ARCH)/$(RPM_PREFIX)-$(VERSION)-1$(RPM_DIST).$(RPM_ARCH).rpm && rpmsign --addsign SRPMS/$(RPM_PREFIX)-$(VERSION)-1$(RPM_DIST).src.rpm; )
	cp $$HOME/rpmbuild/RPMS/noarch/antlink-$(VERSION)-1$(RPM_DIST).noarch.rpm .
	cp $$HOME/rpmbuild/SRPMS/antlink-$(VERSION)-1$(RPM_DIST).src.rpm .

rpmlint:
	rpmlint antlink-$(VERSION)-1$(RPM_DIST).noarch.rpm antlink-$(VERSION)-1$(RPM_DIST).src.rpm

INTERNAL_WEBSITE=../../../../ANT/WWW/ant_2015/software/antlink
release: antlink.html
	@echo "You should have done: \"make tar.gz; make rpms; make rpmlint\""
	cp antlink-$(VERSION).tar.gz antlink-$(VERSION)-1$(RPM_DIST).src.rpm antlink.html $(INTERNAL_WEBSITE)
	( cd $(INTERNAL_WEBSITE); git add antlink-$(VERSION).tar.gz antlink-$(VERSION)-1$(RPM_DIST).src.rpm antlink.html; )
	@echo "now (edit _data/software.yaml); git tag -s -u 0x4c6cd6f2 -m 'antlink-$(VERSION) release' antlink-$(VERSION); cd $(INTERNAL_WEBSITE); git commit -m 'release $(VERSION)'; git push;"
