blob: fd54b4298acbbd7f745f45d6ab1ecfcd39f80dab [file] [log] [blame]
Thomas Vander Stichelefae586d2003-01-05 11:31:42 +00001dnl slurp-ffmpeg.m4 0.1.1
Thomas Vander Sticheled367c102002-12-27 16:04:22 +00002dnl a macro to slurp in ffmpeg's cvs source inside a project tree
3dnl taken from Autostar Sandbox, http://autostars.sourceforge.net/
4
5dnl Usage:
Thomas Vander Stichelefae586d2003-01-05 11:31:42 +00006dnl AS_SLURP_FFMPEG(DIRECTORY, DATE, [ACTION-IF-WORKED [, ACTION-IF-NOT-WORKED]]])
Thomas Vander Sticheled367c102002-12-27 16:04:22 +00007dnl
8dnl Example:
Thomas Vander Stichelefae586d2003-01-05 11:31:42 +00009dnl AM_PATH_FFMPEG(lib/ffmpeg, 2002-12-14 12:00 GMT)
10dnl
11dnl make sure you have a Tag file in the dir where you check out that
12dnl is the Tag of CVS you want to have checked out
13dnl it should correspond to the DATE argument you supply, ie resolve to
14dnl the same date
15dnl (in an ideal world, cvs would understand it's own Tag file format as
16dnl a date spec)
Thomas Vander Sticheled367c102002-12-27 16:04:22 +000017
Thomas Vander Stichelefd831b82004-02-11 16:44:05 +000018AC_DEFUN([AS_SLURP_FFMPEG],
Thomas Vander Sticheled367c102002-12-27 16:04:22 +000019[
20 # save original dir
Benjamin Ottef4a7caa2003-06-29 19:46:13 +000021 FAILED=""
Thomas Vander Sticheled367c102002-12-27 16:04:22 +000022 DIRECTORY=`pwd`
23 # get/update cvs
24 if test ! -d $1; then mkdir -p $1; fi
Benjamin Otte803ff8f2003-11-24 04:08:47 +000025 dnl we need to check $srcdir/$1 or it will always checkout ffmpeg even if it is there
26 dnl at least when top_srcdir != top_builddir.
27 dnl FIXME: unfortunately this makes the checkout go into top_srcdir
28 cd $srcdir/$1
Thomas Vander Sticheled367c102002-12-27 16:04:22 +000029
Christian Schallerbc873392003-09-13 10:25:22 +000030 if test ! -e ffmpeg/README; then
Thomas Vander Sticheled367c102002-12-27 16:04:22 +000031 # check out cvs code
32 AC_MSG_NOTICE(checking out ffmpeg cvs code from $2 into $1)
Jeremy Simon096dc552003-10-23 20:45:32 +000033 cvs -Q -z4 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -D '$2' ffmpeg || FAILED=yes
Thomas Vander Sticheled367c102002-12-27 16:04:22 +000034 else
Thomas Vander Stichelefae586d2003-01-05 11:31:42 +000035 # compare against Tag file and see if it needs updating
Benjamin Ottef4a7caa2003-06-29 19:46:13 +000036 if test "`cat Tag`" == "$2"; then
Thomas Vander Stichelefae586d2003-01-05 11:31:42 +000037 AC_MSG_NOTICE(ffmpeg cvs code in sync)
38 else
Thomas Vander Stichelefae586d2003-01-05 11:31:42 +000039 cd ffmpeg
Benjamin Ottef4a7caa2003-06-29 19:46:13 +000040 AC_MSG_NOTICE(updating ffmpeg cvs code to $2)
Jeremy Simon096dc552003-10-23 20:45:32 +000041 cvs -Q -z4 update -dP -D '$2' || FAILED=yes
Benjamin Ottef4a7caa2003-06-29 19:46:13 +000042 cd ..
Thomas Vander Stichelefae586d2003-01-05 11:31:42 +000043 fi
Thomas Vander Sticheled367c102002-12-27 16:04:22 +000044 fi
Benjamin Otted79e4c62003-09-27 16:44:53 +000045 if test "x$FAILED" != "xyes"; then
46 echo "$2" > Tag
47 fi
Thomas Vander Sticheled367c102002-12-27 16:04:22 +000048
Thomas Vander Sticheled367c102002-12-27 16:04:22 +000049 # now go back
50 cd $DIRECTORY
51
52 if test "x$FAILED" == "xyes"; then
53 [$4]
Thomas Vander Stichelefae586d2003-01-05 11:31:42 +000054 false
Thomas Vander Sticheled367c102002-12-27 16:04:22 +000055 else
56 [$3]
Thomas Vander Stichelefae586d2003-01-05 11:31:42 +000057 true
Thomas Vander Sticheled367c102002-12-27 16:04:22 +000058 fi
59])