version		:= $(shell . ./scripts/ptxdist_version.sh && echo $${PTXDIST_VERSION_FULL})
project		:= ptxdist-$(version)

prefix		:= /home/roman/proj/ptxdist
exec_prefix	:= ${prefix}
abs_srcdir 	:= /home/roman/proj/ptxdist/ptxdist-2011.11.0
libdir	 	:= ${exec_prefix}/lib
bindir	 	:= ${exec_prefix}/bin
instdir		:= $(libdir)/$(project)

CC		:= gcc
CXX		:= g++
CFLAGS		:= -g -O2
CXXFLAGS	:= -g -O2
CPPFLAGS	:= 
LDFLAGS		:= 

SHELL		:= /bin/bash

export SHELL

NCONF = nconf

all:
	@echo "building conf and mconf ..."
	@CC="$(CC)" \
	CXX="$(CXX)" \
	CFLAGS="$(CFLAGS)" \
	CXXFLAGS="$(CXXFLAGS)" \
	CPPFLAGS="$(CPPFLAGS)" \
	LDFLAGS="$(LDFLAGS)" \
	$(MAKE) -C "$(abs_srcdir)/scripts/kconfig" \
		CONF_LIBS="" \
		MCONF_LIBS="-lncurses " \
		CURSES_LOC="<ncurses.h>" \
		conf mconf $(NCONF)
	@echo "done."
	@touch .done

clean:
	@rm -f .done
	@$(MAKE) -C "$(abs_srcdir)/scripts/kconfig" clean

dirty-check:
	@case "$(version)" in \
		*-dirty) echo "refusing to install or package a dirty git tree!" ; exit 1 ;; \
	esac

install: all dirty-check
	@echo "installing PTXdist to $(DESTDIR)$(prefix)..."
	@rm -fr   "$(DESTDIR)$(instdir)"
	@mkdir -p "$(DESTDIR)$(instdir)"
	@tar -C "$(abs_srcdir)" -cf - \
		--exclude *~ \
		--exclude .git \
		--exclude .pc \
		--exclude .svn \
		--exclude autom4te.cache \
		--exclude config.log \
		--exclude config.status \
		--exclude debian \
		--exclude state \
		. | \
		tar -o -C "$(DESTDIR)$(instdir)" -xvf -
	@if [ \! -e "$(DESTDIR)$(instdir)/.tarball-version" ]; then \
		echo -n "${version}" > "$(DESTDIR)$(instdir)/.tarball-version"; \
	fi
	@mkdir -p "$(DESTDIR)$(bindir)"
	@rm -f    "$(DESTDIR)$(bindir)/ptxdist"
	@ln -sf   "$(instdir)/bin/ptxdist" "$(DESTDIR)$(bindir)/ptxdist-$(version)"
	@ln -sf   "$(instdir)/bin/ptxdist" "$(DESTDIR)$(bindir)/ptxdist"
	@if [ -d "$(DESTDIR)/etc/bash_completion.d" -a \
		-w "$(DESTDIR)/etc/bash_completion.d" ]; then \
		cp scripts/bash_completion "$(DESTDIR)/etc/bash_completion.d/ptxdist"; \
	fi


dist: dirty-check
	@rm -rf "$(project)"
	@git archive "$(project)" --prefix="$(project)"/ > "${project}.tar"
	tar xf "${project}.tar"
	echo -n "${version}" > "${project}/.tarball-version"
	cd "$(project)" && ./autogen.sh

	tar -rf "${project}.tar" \
		"${project}/configure" \
		"${project}/.tarball-version"
	bzip2 "${project}.tar"
	md5sum "${project}.tar.bz2" > "${project}.tar.bz2.md5"

distclean: clean
	rm -fr Makefile
	rm -fr build-stamp
	rm -fr config.log config.status autom4te.cache

maintainer-clean: distclean
	rm -f configure

release:
	@scripts/make_$@.sh
