#
#    Release Makefile for LTP.
#
#    Copyright (C) 2010, Copyrights-are-for-losers, Inc.
#
#    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 2 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, write to the Free Software Foundation, Inc.,
#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Invoke like:
#
#	make -f Makefile.release release TARBALL_VERSION=FOO
#
# Cheers.
#

top_srcdir	?= $(CURDIR)

include $(top_srcdir)/include/mk/env_pre.mk
include $(top_srcdir)/include/mk/automake.mk

TARBALL_PREFIX	?= ltp

ifneq ($(wildcard $(top_srcdir)/Version),)
TARBALL_VERSION	?= $(shell $(top_srcdir)/Version)
endif

TARBALL_VERSION	?= $(error you must either make Version via make $$PWD/Version or specify an LTP version via TARBALL_VERSION)

TARBALL		:= $(TARBALL_PREFIX)-$(TARBALL_VERSION).tgz

clean:
	$(MAKE) -f Makefile $@

release: | autotools distclean
	tar -cvz --exclude "$(TARBALL)" -f $(TARBALL) .
