print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | grep -v Makefile.inc | grep -v ${package}-${version}.tar.gz | egrep -v ^./debian | egrep -v ^./[^/]*.spec | grep -v .cvsignore | grep -v project/changelog >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/{BUILD,RPMS,SOURCES,SRPMS}; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;