toolbox
上传用户:riyaled888
上传日期:2009-03-27
资源大小:7338k
文件大小:20k
源码类别:

多媒体

开发平台:

MultiPlatform

  1. #! /bin/sh
  2. ##  toolbox for the VLC media player
  3. ##  $Id: toolbox 9292 2004-11-12 10:44:50Z gbazin $
  4. ##
  5. ##  Authors: Samuel Hocevar <sam@zoy.org>
  6. ###
  7. ###  Get a sane environment, just in case
  8. ###
  9. LC_ALL=C
  10. export LC_ALL
  11. LANG=C
  12. export LANG
  13. CYGWIN=binmode
  14. export CYGWIN
  15. ##
  16. ##  Give help
  17. ##
  18. help()
  19. {
  20.   cat << EOF
  21. recognized flags are:
  22.   --update-vc             update Microsoft Visual Studio files
  23.   --update-po             update translation files
  24.   --update-includes       generate various include files
  25.   --update-glade          generate and fix Glade code
  26.   --update-glade2         generate and fix Glade 2 code
  27.   --update-flexml         generate and fix flexml and flex code
  28.   --distclean             "make distclean" on steroids
  29.   --make-woody <dir>      change distdir <dir> to a woody distdir
  30. EOF
  31.   exit 1
  32. }
  33. ##
  34. ##  Extract stuff from Makefile.am
  35. ##
  36. getfiles()
  37. {
  38.   awk 'BEGIN{a=0}{if(!a&&$0~/^'"$1"'[^-_a-zA-Z0-9]*=/){a=1;print$0;next;}if(a){if($0~/^[a-zA-Z]/){exit;}print $0}}' < "${srcdir}/Makefile.am" | 
  39.     tr '\ ' 'nn' | 
  40.     sed -ne 's/[^-$()_a-zA-Z0-9][^-$()_a-zA-Z0-9]*([a-zA-Z])/1/p' | 
  41.     sed -e "s,^,${srcdir}/,"
  42. }
  43. ###
  44. ###  argument check
  45. ###
  46. if test "$1" = ""
  47. then
  48.   help
  49. fi
  50. case "$1" in
  51.   --changelog|--update-changelog)
  52.     action=changelog
  53.     ;;
  54.   --update-vc)
  55.     action=vc
  56.     ;;
  57.   --update-po)
  58.     action=po
  59.     ;;
  60.   --update-includes)
  61.     action=includes
  62.     ;;
  63.   --update-flexml)
  64.     action=flexml
  65.     ;;
  66.   --update-glade|--fix-glade)
  67.     action=glade
  68.     ;;
  69.   --update-glade2|--update-glade-2|--fix-glade2)
  70.     action=glade2
  71.     ;;
  72.   --distclean)
  73.     action=distclean
  74.     ;;
  75.   --make-woody)
  76.     action=woody
  77.     ;;
  78.   --add-include)
  79.     action=include
  80.     ;;
  81.   --help)
  82.     help
  83.     ;;
  84.   *)
  85.     echo "$0: unknown option $1"
  86.     help
  87.     ;;
  88. esac
  89. shift
  90. ##
  91. ##  Add includes to help doxygen
  92. ##
  93. if test "${action}" = "include"
  94. then
  95.   case "$1" in
  96.     */vlc_common.h|*/include/vlc/*);;
  97.     */include/*.h) echo "#include <vlc_common.h>" ;;
  98.   esac
  99.   cat $1
  100.   exit 0
  101. fi
  102. ##
  103. ##  Update the CVS changelog
  104. ##
  105. if test "${action}" = "changelog"
  106. then
  107.   YEAR="`date +%Y`"
  108.   echo "toolbox --changelog no longer required. use this instead:"
  109.   echo " svn log -v -r '{$YEAR-12-31}:{$YEAR-01-01}' > ChangeLog"
  110.   exit 0
  111. fi
  112. ##
  113. ##  Update the MSVC project files
  114. ##
  115. if test "${action}" = "vc"
  116. then
  117.   echo "generating Visual Studio files"
  118.   if test -z "${srcdir}"; then
  119.     srcdir="`sed -ne 's/^srcdir *= *//p' < Makefile`"
  120.   fi
  121.   #  The evil ^M. printf 'r' does not work in Cygwin.
  122.   M=' '
  123.   #  Variables we get from configure.ac
  124.   LIBVLC_VERSION=`sed -ne '/AC_INIT/s/.*,(.*))/1/p' < configure.ac`
  125.   LIBVLC_CODENAME=`sed -ne '/CODENAME=/s/.*"(.*)"/1/p' < configure.ac`
  126.   LIBVLC_SYMBOL=`echo $LIBVLC_VERSION | sed -e 'y/.-/__/'`
  127.   #  Sources that get built under Win32 - FIXME: anyone wanna deuglify this? :)
  128.   LIBVLC_SOURCES=`getfiles SOURCES_libvlc_common; getfiles SOURCES_libvlc_win32; getfiles SOURCES_libvlc_dirent; getfiles SOURCES_libvlc_getopt; getfiles SOURCES_libvlc_libc`
  129.   LIBVLC_HEADERS=`getfiles HEADERS_include; getfiles HEADERS_include_built`
  130.   LIBVLC_PKG_HEADERS=`getfiles dist_pkginclude_HEADERS`
  131.   # Clean up
  132.   rm -f evc/*.vcp msvc/*.dsp msvc/*.vcproj msvc/*.sln msvc/*.ncb
  133.   # config files
  134.   for target in evc/config.h msvc/config.h
  135.   do
  136.     printf "."
  137.     rm -f ${target}
  138.     sed -e "s/@CODENAME@/${LIBVLC_CODENAME}/" 
  139.         -e "s/@VERSION@/${LIBVLC_VERSION}/" 
  140.         -e "s/@SYMBOL@/${LIBVLC_SYMBOL}/" < ${target}.in > ${target}
  141.   done
  142.   # libvlc files
  143.   for target in evc/libvlc.vcp msvc/libvlc.dsp
  144.   do
  145.     printf "."
  146.     #  Top of the project file
  147.     perl -pe 'if(/