summaryrefslogtreecommitdiff
path: root/m4/as-slurp-ffmpeg.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/as-slurp-ffmpeg.m4')
-rw-r--r--m4/as-slurp-ffmpeg.m459
1 files changed, 59 insertions, 0 deletions
diff --git a/m4/as-slurp-ffmpeg.m4 b/m4/as-slurp-ffmpeg.m4
new file mode 100644
index 0000000..fd54b42
--- /dev/null
+++ b/m4/as-slurp-ffmpeg.m4
@@ -0,0 +1,59 @@
+dnl slurp-ffmpeg.m4 0.1.1
+dnl a macro to slurp in ffmpeg's cvs source inside a project tree
+dnl taken from Autostar Sandbox, http://autostars.sourceforge.net/
+
+dnl Usage:
+dnl AS_SLURP_FFMPEG(DIRECTORY, DATE, [ACTION-IF-WORKED [, ACTION-IF-NOT-WORKED]]])
+dnl
+dnl Example:
+dnl AM_PATH_FFMPEG(lib/ffmpeg, 2002-12-14 12:00 GMT)
+dnl
+dnl make sure you have a Tag file in the dir where you check out that
+dnl is the Tag of CVS you want to have checked out
+dnl it should correspond to the DATE argument you supply, ie resolve to
+dnl the same date
+dnl (in an ideal world, cvs would understand it's own Tag file format as
+dnl a date spec)
+
+AC_DEFUN([AS_SLURP_FFMPEG],
+[
+ # save original dir
+ FAILED=""
+ DIRECTORY=`pwd`
+ # get/update cvs
+ if test ! -d $1; then mkdir -p $1; fi
+ dnl we need to check $srcdir/$1 or it will always checkout ffmpeg even if it is there
+ dnl at least when top_srcdir != top_builddir.
+ dnl FIXME: unfortunately this makes the checkout go into top_srcdir
+ cd $srcdir/$1
+
+ if test ! -e ffmpeg/README; then
+ # check out cvs code
+ AC_MSG_NOTICE(checking out ffmpeg cvs code from $2 into $1)
+ cvs -Q -z4 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -D '$2' ffmpeg || FAILED=yes
+ else
+ # compare against Tag file and see if it needs updating
+ if test "`cat Tag`" == "$2"; then
+ AC_MSG_NOTICE(ffmpeg cvs code in sync)
+ else
+ cd ffmpeg
+ AC_MSG_NOTICE(updating ffmpeg cvs code to $2)
+ cvs -Q -z4 update -dP -D '$2' || FAILED=yes
+ cd ..
+ fi
+ fi
+ if test "x$FAILED" != "xyes"; then
+ echo "$2" > Tag
+ fi
+
+ # now go back
+ cd $DIRECTORY
+
+ if test "x$FAILED" == "xyes"; then
+ [$4]
+ false
+ else
+ [$3]
+ true
+ fi
+])