"ETICS-less releases" - creating new common targets in Makefile.inc:
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Tue, 26 Jun 2012 14:33:18 +0000 (14:33 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Tue, 26 Jun 2012 14:33:18 +0000 (14:33 +0000)
- dist:
- files to distribute in source tarball listed in SOURCES in each Makefile
- fix files permissions, using SOURCES_EXEC for executables
- some files included automaticaly (configure, several from project)
- distcheck:
- helper target, which compares current directory content with
  generated source tarball
- ignores some service files (CVS, ...)
- 'rpm' and 'deb' targets: generating of the source packages
- new targets in summary Makefile: 'release-rpm' and 'release-deb'

org.glite.lb/configure

index 59e46f2..5b05d44 100755 (executable)
@@ -488,7 +488,7 @@ sub mode_build {
 
                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($_);
@@ -520,6 +520,13 @@ sub mode_build {
                        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;
        }
 }
@@ -1354,6 +1361,52 @@ top_srcdir = $top_srcdir
 
        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;