build: Fix the dist - libswscale isn't an external on the 0.5 branch
authorJan Schmidt <thaytan@noraisin.net>
Sat, 6 Jun 2009 14:14:45 +0000 (15:14 +0100)
committerJan Schmidt <thaytan@noraisin.net>
Sat, 6 Jun 2009 14:14:45 +0000 (15:14 +0100)
The 0.5 ffmpeg branch includes libswscale directly, not as an external,
breaking the dist (and warning in autogen.sh) about not being able to
update its revision.

Add some code to not update the svn external if the
FFMPEG_EXTERNALS_REVISION variable is empty.

Also, in autogen.sh check that the current FFmpeg checkout is from the
right branch according to ffmpegrev, and check it out again if
it's not.

autogen.sh
ffmpegrev
gst-libs/ext/Makefile.am

index 2a2e364..8a096a0 100755 (executable)
@@ -18,18 +18,28 @@ git submodule update
 
 if test -x $have_svn && [ $have_svn ];
 then
-    if test ! -f $FFMPEG_CO_DIR/configure
-    then
+    co_ffmpeg=no
+
+    if test ! -f $FFMPEG_CO_DIR/configure; then
+      co_ffmpeg=yes
+    else
+      if ! svn info gst-libs/ext/ffmpeg | grep "URL: $FFMPEG_SVN" > /dev/null; then
+        echo "FFmpeg checkout is on the wrong branch. Re-fetching."
+        co_ffmpeg=yes
+      fi
+    fi
+
+    if [ "$co_ffmpeg" = "yes" ]; then
        # checkout ffmpeg from its repository
        rm -rf $FFMPEG_CO_DIR
        echo "+ getting ffmpeg from svn"
        svn -r $FFMPEG_REVISION co $FFMPEG_SVN $FFMPEG_CO_DIR
-       echo "+ updating externals"
-       svn update -r $FFMPEG_EXTERNALS_REVISION $FFMPEG_CO_DIR/libswscale
     else
        # update ffmpeg from its repository
        echo "+ updating ffmpeg checkout"
        svn -r $FFMPEG_REVISION up $FFMPEG_CO_DIR
+    fi
+    if [ "x$FFMPEG_EXTERNALS_REVISION" != "x" ]; then
        echo "+ updating externals"
        svn update -r $FFMPEG_EXTERNALS_REVISION $FFMPEG_CO_DIR/libswscale
     fi
index f1ad70b..4d2f8cd 100644 (file)
--- a/ffmpegrev
+++ b/ffmpegrev
@@ -1,8 +1,9 @@
 FFMPEG_REVISION=18939
 FFMPEG_CO_DIR=gst-libs/ext/ffmpeg
 FFMPEG_SVN=svn://svn.ffmpeg.org/ffmpeg/branches/0.5
-# Because ffmpeg checks out libswscale via an svn:externals, checking
+# Because ffmpeg trunk checks out libswscale via an svn:externals, checking
 # out an old ffmpeg does not check out a corresponding libswscale.
 # Keep the swscale checkout manually synchronized, then. Update this
-# when you update FFMPEG_REVISION.
-FFMPEG_EXTERNALS_REVISION=29320
+# when you update FFMPEG_REVISION. Set it to empty if there's no
+# external to update (as on ffmpeg 0.5 branch)
+FFMPEG_EXTERNALS_REVISION=
index cbafe3a..d11bc96 100644 (file)
@@ -29,7 +29,9 @@ distclean: dist-clean
 
 dist-local:
        svn -r $(FFMPEG_REVISION) co $(FFMPEG_SVN) $(TMP_DIST_DIR)
-       svn update -r $(FFMPEG_EXTERNALS_REVISION) $(TMP_DIST_DIR)/libswscale
+       @if [ "x$(FFMPEG_EXTERNALS_REVISION)" != x ]; then \
+               svn update -r $(FFMPEG_EXTERNALS_REVISION) $(TMP_DIST_DIR)/libswscale; \
+       fi
        mkdir $(DIST_DIR)
        pwd
        cp $(TMP_DIST_DIR)/*.c $(TMP_DIST_DIR)/*.h $(TMP_DIST_DIR)/Makefile $(TMP_DIST_DIR)/configure $(TMP_DIST_DIR)/version.sh $(DIST_DIR)