diff --git a/CMakeLists.txt b/CMakeLists.txt
index 19b3bcdfb..50672896c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -106,11 +106,6 @@ ADD_SUBDIRECTORY( doc )
CONFIGURE_FILE(config.h.cmake config.h @ONLY)
-CONFIGURE_FILE(
- "${CMAKE_CURRENT_SOURCE_DIR}/cmake/makedist.sh.in"
- "${CMAKE_CURRENT_BINARY_DIR}/makedist.sh" IMMEDIATE
- @ONLY)
-
CONFIGURE_FILE(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
@@ -120,9 +115,8 @@ ADD_CUSTOM_TARGET(uninstall
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
ADD_CUSTOM_TARGET(dist
- "${CMAKE_BINARY_DIR}/makedist.sh"
- DEPENDS doc
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+ "${CMAKE_CURRENT_SOURCE_DIR}/makedist.sh" "${VERSION}" "HEAD"
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
# pkgconfig file
SET(PACKAGE "${PROJECT_NAME}")
diff --git a/cmake/makedist.sh.in b/makedist.sh
similarity index 53%
rename from cmake/makedist.sh.in
rename to makedist.sh
index 92eee263e..4cb84e0fe 100755
--- a/cmake/makedist.sh.in
+++ b/makedist.sh
@@ -18,35 +18,32 @@
# along with WeeChat. If not, see .
#
-VERSION=@VERSION@
-SRCROOT=@CMAKE_SOURCE_DIR@
-BUILDDIR=@CMAKE_BINARY_DIR@
-PROJECT=@PROJECT_NAME@
-TAG=release-$(echo $VERSION | sed -e 's/\./-/g')
+#
+# Build tarballs (.tar.gz and .tar.bz2) for WeeChat using git-archive.
+#
+# Syntax:
+# makedist.sh
+#
+# version : WeeChat version, for example 0.3.9 or 0.4.0-dev
+# tree-ish: git tree-ish (optional, defaults to HEAD), example: v0.3.9
+#
-EXCLUDE="@DIST_EXCLUDE@"
-EXPORT_DIR="${PROJECT}-${VERSION}"
-
-if [ -z $CVSROOT ]; then
- echo "The CVSROOT variable must be set"
+if [ $# -eq 0 ]; then
+ echo "Syntax: $0 "
exit 1
fi
-echo "Exporting source tree"
-if [ $(echo $VERSION | grep cvs) ]; then
- cvs export -r HEAD -d $PROJECT-$VERSION $PROJECT
-else
- cvs export -r $TAG -d $PROJECT-$VERSION $PROJECT
+VERSION=$1
+TREEISH="HEAD"
+if [ $# -gt 1 ]; then
+ TREEISH=$2
fi
-echo "Removing not needed stuff"
-for i in $EXCLUDE ; do
- echo " $i"
- rm -rf $EXPORT_DIR/$i
-done
+PREFIX="weechat-${VERSION}/"
+FILE="weechat-${VERSION}.tar"
-echo "Generating archive"
-tar cjf ${BUILDDIR}/${PROJECT}-${VERSION}.tar.bz2 ${EXPORT_DIR}
+echo "Building file ${FILE}.bz2"
+git archive --prefix=${PREFIX} ${TREEISH} | bzip2 -c >${FILE}.bz2
-echo "Cleaning up"
-rm -rf ${EXPORT_DIR}
+echo "Building file ${FILE}.gz"
+git archive --prefix=${PREFIX} ${TREEISH} | gzip -c >${FILE}.gz