diff --git a/Makefile.am b/Makefile.am index 5a112cef..263e0490 100644 --- a/Makefile.am +++ b/Makefile.am @@ -587,3 +587,8 @@ coverage-clean: .PHONY: .FORCE .FORCE: + +EXTRA_DIST += \ + doc/meson.build \ + subprojects/libgwater/xcb/meson.build \ + meson.build diff --git a/meson.build b/meson.build index 5016c9db..a5d33374 100644 --- a/meson.build +++ b/meson.build @@ -439,3 +439,5 @@ if ohcount.found() ], ) endif + +run_target('dist', command: [ 'script/dist.sh' ]) diff --git a/script/dist.sh b/script/dist.sh new file mode 100755 index 00000000..04f7dc3f --- /dev/null +++ b/script/dist.sh @@ -0,0 +1,21 @@ +#! /bin/sh + +NAME=`mesonintrospect ${MESON_BUILD_ROOT} --projectinfo | tr ',[' '\n\n' | sed -n 1,/subprojects/p | grep name | cut -d'"' -f4` +VERSION=`mesonintrospect ${MESON_BUILD_ROOT} --projectinfo | tr ',[' '\n\n' | sed -n 1,/subprojects/p | grep version | cut -d'"' -f4` +PREFIX=${NAME}-${VERSION} +TAR=${MESON_BUILD_ROOT}/${PREFIX}.tar + +rm -f ${TAR} ${TAR}.xz +git archive --prefix=${PREFIX}/ --format=tar HEAD > ${TAR} +( + git submodule | \ + while read commit path ref; do + ( + cd ${path} + git archive --prefix=${PREFIX}/${path}/ --format=tar ${commit} > tmp.tar + tar -Af ${TAR} tmp.tar + rm -f tmp.tar + ) + done +) +xz ${TAR}