Daily versions will be generated in format:

  ${package}-${base_version}-${date}-${git_abbreviation}

For example: opensm-3.2.1-20080707-12af490

Tarball files will have a same names but with .tar.gz suffix.

Daily build will generate new tarball only when actual changes have been
made.

Signed-off-by: Sasha Khapyorsky <[EMAIL PROTECTED]>
---
 make.dist |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/make.dist b/make.dist
index 29cee0c..2e67940 100755
--- a/make.dist
+++ b/make.dist
@@ -51,6 +51,12 @@ if [ -z "$1" ]; then usage; exit 1; fi
 
 if [ "$1" != "daily" -a "$1" != "release" ]; then usage; exit 1; fi
 
+git diff-index --quiet HEAD -- $package > /dev/null 2>&1
+if [ $? -eq 1 ] ; then
+       echo "git tree is dirty, please commit or undo the changes"
+       #exit 2
+fi
+
 if [ -z "$TARGETS" ]; then
        TARGETS="libibcommon libibumad libibmad opensm infiniband-diags"
 fi
@@ -95,7 +101,6 @@ for target in $TARGETS; do
 # incrementally higher than the last officially released tarball.
                RELEASE=1
                echo $RELEASE > $TMPDIR/$target.release
-               TARBALL=$target-$VERSION.tar.gz
 
                if [ ! -z "$2" ]; then
                        if [ $2 = "signed" ]; then
@@ -108,6 +113,16 @@ for target in $TARGETS; do
                fi
        elif [ "$1" = "daily" ]; then
                DATE=`date +%Y%m%d`
+               git_rev=`./gen_ver.sh $target | sed -e 's/^'$VERSION'-//'`
+               VERSION=$VERSION-$DATE-$git_rev
+               if [ -f $TMPDIR/$target.gitrev ]; then
+                       old_rev=`cat $TMPDIR/$target.gitrev`
+               fi
+               echo $git_rev > $TMPDIR/$target.gitrev
+               if [ "$old_rev" = "$git_rev" ] ; then
+                       echo "No daily build is needed for '$target' ($git_rev)"
+                       continue
+               fi
                if [ -f $TMPDIR/$target.release ]; then
                        RELEASE=`cat $TMPDIR/$target.release`
                        RELEASE=`expr $RELEASE + 1`
@@ -116,12 +131,19 @@ for target in $TARGETS; do
                fi
                echo $RELEASE > $TMPDIR/$target.release
                RELEASE=0.${RELEASE}.${DATE}git
-               TARBALL=$target-$VERSION-$RELEASE.tar.gz
+               cat $target/configure.in \
+                 | sed -e '/AC_INIT/s/'$target', .*,/'$target', '$VERSION',/' \
+                 > configure.in.new
+               diff $target/configure.in configure.in.new > /dev/null \
+                 || cat configure.in.new > $target/configure.in
        fi
 
+       TARBALL=$target-$VERSION.tar.gz
+
        echo "Creating $TMPDIR/$TARBALL"
        ( cd $target && ./autogen.sh &&
          RELEASE=$RELEASE TARBALL=$TARBALL ./configure &&
          make dist && mv $target-$VERSION.tar.gz $TMPDIR/$TARBALL ) ||
        exit $?
+       git checkout $target/configure.in
 done
-- 
1.5.5.1.178.g1f811

_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to