as-slurp-ffmpeg.m4 1.45 KB
Newer Older
1
dnl slurp-ffmpeg.m4 0.1.1
2 3 4 5
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:
6
dnl AS_SLURP_FFMPEG(DIRECTORY, DATE, [ACTION-IF-WORKED [, ACTION-IF-NOT-WORKED]]])
7 8
dnl
dnl Example:
9 10 11 12 13 14 15 16
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)
17 18 19 20

AC_DEFUN(AS_SLURP_FFMPEG,
[
  # save original dir
21
  FAILED=""
22 23 24 25 26
  DIRECTORY=`pwd`
  # get/update cvs
  if test ! -d $1; then mkdir -p $1; fi
  cd $1

27
  if test ! -e ffmpeg/README; then
28 29
    # check out cvs code
    AC_MSG_NOTICE(checking out ffmpeg cvs code from $2 into $1)
Jeremy Simon's avatar
Jeremy Simon committed
30
    cvs -Q -z4 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -D '$2' ffmpeg || FAILED=yes
31
  else
32
    # compare against Tag file and see if it needs updating
33
    if test "`cat Tag`" == "$2"; then
34 35 36
      AC_MSG_NOTICE(ffmpeg cvs code in sync)
    else
      cd ffmpeg 
37
      AC_MSG_NOTICE(updating ffmpeg cvs code to $2)
Jeremy Simon's avatar
Jeremy Simon committed
38
      cvs -Q -z4 update -dP -D '$2' || FAILED=yes
39
      cd ..
40
    fi
41
  fi
42 43 44
  if test "x$FAILED" != "xyes"; then
    echo "$2" > Tag 
  fi
45 46 47 48 49 50
  
  # now go back
  cd $DIRECTORY

  if test "x$FAILED" == "xyes"; then
    [$4]
51
    false
52 53
  else
    [$3]
54
    true
55 56
  fi
])