1dnl slurp-ffmpeg.m4 0.1.1 2dnl 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: 6dnl AS_SLURP_FFMPEG(DIRECTORY, DATE, [ACTION-IF-WORKED [, ACTION-IF-NOT-WORKED]]]) 7dnl 8dnl Example: 9dnl 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) 17 18AC_DEFUN([AS_SLURP_FFMPEG], 19[ 20 # save original dir 21 FAILED="" 22 DIRECTORY=`pwd` 23 # get/update cvs 24 if test ! -d $1; then mkdir -p $1; fi 25 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 29 30 if test ! -e ffmpeg/README; then 31 # check out cvs code 32 AC_MSG_NOTICE(checking out ffmpeg cvs code from $2 into $1) 33 cvs -Q -z4 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -D '$2' ffmpeg || FAILED=yes 34 else 35 # compare against Tag file and see if it needs updating 36 if test "`cat Tag`" == "$2"; then 37 AC_MSG_NOTICE(ffmpeg cvs code in sync) 38 else 39 cd ffmpeg 40 AC_MSG_NOTICE(updating ffmpeg cvs code to $2) 41 cvs -Q -z4 update -dP -D '$2' || FAILED=yes 42 cd .. 43 fi 44 fi 45 if test "x$FAILED" != "xyes"; then 46 echo "$2" > Tag 47 fi 48 49 # now go back 50 cd $DIRECTORY 51 52 if test "x$FAILED" == "xyes"; then 53 [$4] 54 false 55 else 56 [$3] 57 true 58 fi 59]) 60