| 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 |
| ]) |