include $(TOPDIR)/include/builddefs
 endif
 
+SRCTAR = $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
 TESTS = $(shell sed -n -e '/^[0-9][0-9][0-9]*/s/ .*//p' group)
 CONFIGURE = configure include/builddefs include/config.h
 LSRCFILES = configure configure.ac aclocal.m4 README VERSION
 LDIRT = config.log .ltdep .dep config.status config.cache confdefs.h \
        conftest* check.log check.time
 
+ifeq ($(HAVE_BUILDDEFS), yes)
+LDIRT += $(SRCTAR)
+endif
 
 LIB_SUBDIRS = include lib
 TOOL_SUBDIRS = ltp src m4
 realclean distclean: clean
        $(Q)rm -f $(LDIRT) $(CONFIGURE)
        $(Q)rm -rf autom4te.cache Logs
+
+dist: include/builddefs include/config.h default
+ifeq ($(HAVE_BUILDDEFS), no)
+       $(Q)$(MAKE) $(MAKEOPTS) -C . $@
+else
+       $(Q)$(MAKE) $(MAKEOPTS) $(SRCTAR)
+endif
+
+$(SRCTAR) : default
+       $(Q)git archive --prefix=$(PKG_NAME)-$(PKG_VERSION)/ --format=tar \
+         v$(PKG_VERSION) > $(PKG_NAME)-$(PKG_VERSION).tar
+       $(Q)$(TAR) --transform "s,^,$(PKG_NAME)-$(PKG_VERSION)/," \
+         -rf $(PKG_NAME)-$(PKG_VERSION).tar $(CONFIGURE)
+       $(Q)$(ZIP) $(PKG_NAME)-$(PKG_VERSION).tar
+       echo Wrote: $@
 
 version=${PKG_MAJOR}.${PKG_MINOR}.${PKG_REVISION}
 date=`date +"%-d %B %Y"`
 
+echo "Cleaning up"
+make realclean
+
 echo "Updating CHANGES"
 sed -e "s/${version}.*/${version} (${date})/" doc/CHANGES > doc/CHANGES.tmp && \
        mv doc/CHANGES.tmp doc/CHANGES
 echo "Tagging git repository"
 git tag -s -a -m "${version} release" v${version}
 
-echo "Done.  Please remember to push out tags using \"git push --tags\""
-echo "If you wish to create a source tarball, run \"make dist\""
+echo "Making source tarball"
+make dist
 
+echo "Sign the source tarball"
+gpg --detach-sign xfstests-${version}.tar.gz
+
+echo "Done.  Please remember to push out tags using \"git push --tags\""