toolbox
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:7k
源码类别:

midi

开发平台:

Unix_Linux

  1. #! /bin/sh
  2. ##  toolbox for the VLC media player
  3. ##  $Id$
  4. ##
  5. ##  Copyright (C) 2002-2006  the VideoLAN team
  6. ##
  7. ##  Authors: Samuel Hocevar <sam@zoy.org>
  8. ##           R茅mi Denis-Courmont <rem # videolan.org>
  9. ###
  10. ###  Get a sane environment, just in case
  11. ###
  12. LC_ALL=C
  13. export LC_ALL
  14. LANG=C
  15. export LANG
  16. CYGWIN=binmode
  17. export CYGWIN
  18. ##
  19. ##  Give help
  20. ##
  21. help()
  22. {
  23.   cat << EOF
  24. recognized flags are:
  25.   --update-po             update translation files
  26.   --update-includes       generate various include files
  27.   --update-glade2         generate and fix Glade 2 code
  28.   --update-flexml         generate and fix flexml and flex code
  29.   --distclean             "make distclean" on steroids
  30.   --dist-contrib          add the contrib dir to MAKE_DIST
  31. EOF
  32.   exit 1
  33. }
  34. ##
  35. ##  Extract stuff from Makefile.am
  36. ##
  37. getfiles()
  38. {
  39.   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" | 
  40.     tr '\ ' 'nn' | 
  41.     sed -ne 's/[^-$()_a-zA-Z0-9][^-$()_a-zA-Z0-9]*([a-zA-Z])/1/p' | 
  42.     sed -e "s,^,${srcdir}/,"
  43. }
  44. ###
  45. ###  argument check
  46. ###
  47. if test "$1" = ""
  48. then
  49.   help
  50. fi
  51. case "$1" in
  52.   --changelog|--update-changelog)
  53.     action=changelog
  54.     ;;
  55.   --update-po)
  56.     action=po
  57.     ;;
  58.   --update-includes)
  59.     action=includes
  60.     ;;
  61.   --update-flexml)
  62.     action=flexml
  63.     ;;
  64.   --update-glade2|--update-glade-2|--fix-glade2)
  65.     action=glade2
  66.     ;;
  67.   --distclean)
  68.     action=distclean
  69.     ;;
  70.   --add-include)
  71.     action=include
  72.     ;;
  73.   --dist-contrib)
  74.     action=contrib
  75.     ;;
  76.   --help)
  77.     help
  78.     ;;
  79.   *)
  80.     echo "$0: unknown option $1"
  81.     help
  82.     ;;
  83. esac
  84. shift
  85. ##
  86. ##  Add includes to help doxygen
  87. ##
  88. if test "${action}" = "include"
  89. then
  90.   case "$1" in
  91.     */vlc_common.h|*/include/vlc/*);;
  92.     */include/*.h) echo "#include <vlc_common.h>" ;;
  93.   esac
  94.   cat $1
  95.   exit 0
  96. fi
  97. ##
  98. ##  Update the CVS changelog
  99. ##
  100. if test "${action}" = "changelog"
  101. then
  102.   YEAR="`date +%Y`"
  103.   echo "toolbox --changelog no longer required. use this instead:"
  104.   echo " LANG=C svn log -v -r '{$YEAR-12-31}:{$YEAR-01-01}' > ChangeLog"
  105.   exit 0
  106. fi
  107. ##
  108. ##  Update the potfiles because no one ever does it
  109. ##
  110. if test "${action}" = "po"
  111. then
  112.   # find out the source files
  113.   echo "WARNING: you should run "make update-po" instead!" >&2
  114.   make update-po
  115.   exit $?
  116. fi
  117. ##
  118. ##  Create include files
  119. ##
  120. if test "${action}" = "includes"
  121. then
  122.   #set -x
  123.   if test -z "${srcdir}"; then
  124.     srcdir="`sed -ne 's/^srcdir *= *//p' < Makefile`"
  125.   fi
  126.   if test -z "${builddir}"; then
  127.     builddir="`sed -ne 's/^top_builddir *= *//p' < Makefile`"
  128.   fi
  129.   BUILTINS=`sed -ne 's/.*builtins *= *" *([^"]*)".*/1/p' ${builddir}/vlc-config`
  130.   file="${builddir}/src/modules/builtin.h"
  131.   rm -f "${file}.tmp"
  132.   mkdir -p -- "${builddir}/src/modules"
  133.   cat "${srcdir}/src/modules/builtin.h.in" > "${file}.tmp" || exit 1
  134.   if test -n "${BUILTINS}"
  135.   then
  136.     for i in `echo ${BUILTINS}`
  137.     do
  138.       echo "int vlc_entry__`echo $i | sed -e 'y@/@_@' -e 's@..*@@'`( module_t* );" >> "${file}.tmp"
  139.     done
  140.     echo "" >> "${file}.tmp"
  141.   fi
  142.   echo "#define ALLOCATE_ALL_BUILTINS() \" >> ${file}.tmp
  143.   echo "    do \" >> "${file}.tmp"
  144.   echo "    { \" >> "${file}.tmp"
  145.   if test -n "${BUILTINS}"
  146.   then
  147.     for i in `echo ${BUILTINS}`
  148.     do
  149.       echo "        ALLOCATE_BUILTIN(`echo $i | sed -e 'y@/@_@' -e 's@..*@@'`); \" >> "${file}.tmp"
  150.     done
  151.   fi
  152.   echo "    } while( 0 );" >> "${file}.tmp"
  153.   echo "" >> "${file}.tmp" || exit 1
  154.   if diff >/dev/null 2>&1 "${file}" "${file}.tmp"
  155.   then
  156.     rm -f "${file}.tmp"
  157.   else
  158.     echo "creating new ${file}"
  159.     mv -f "${file}.tmp" "${file}"
  160.   fi
  161.   exit 0
  162. fi
  163. ##
  164. ##  Fix glade2-generated files
  165. ##
  166. if test "${action}" = "glade2"
  167. then
  168.   file="modules/gui/pda/pda.glade"
  169.   echo "generating code from $file"
  170.   glade-2 -w "$file" || exit 1
  171.   file="modules/gui/pda/pda_interface.c"
  172.   echo "fixing $file"
  173.   if grep "DO NOT EDIT THIS FILE" "$file" >/dev/null 2>&1
  174.   then
  175.     rm -f -- "$file.$$.bak"
  176.     cat > "$file.$$.bak" << EOF
  177. /* This file was created automatically by glade2 and fixed by bootstrap */
  178. #ifdef HAVE_CONFIG_H
  179. # include "config.h"
  180. #endif
  181. #include <vlc/vlc.h>
  182. EOF
  183.     sed -e 1,7d 
  184.         -e 's#_((".:..:.."))#1#' 
  185.         -e 's#_(("[a-z0-9]*://[^"]*"))#1#' 
  186.         -e 's#_("---")#"---"#' 
  187.         -e 's#_("--")#"--"#' 
  188.         -e 's#_(("/dev/[^"]*"))#1#' 
  189.         -e 's#_(("./."))#1#' 
  190.         < "$file" >> "$file.$$.bak"
  191.     mv -f "$file.$$.bak" "$file"
  192.   fi
  193.   exit 0
  194. fi
  195. ##
  196. ##  Make distclean
  197. ##
  198. if test "${action}" = "distclean"
  199. then
  200.   set -x
  201.   # a naive sanity check to make sure we are in a VLC tree
  202.   test -f vlc-config.in.in -a -f src/libvlc.c || exit 1
  203.   # let's rock!
  204.   find . -false -path './extras/contrib/*' -type f '(' -name '*.[oa]' -o -name '*.l[oa]' -o -name '*.so' -o -name '*.sl' -o -name '*.dylib' -o -name '*.dll' -o -name .dirstamp -o '(' '(' ! -path './doc/developer/Makefile.in' ')' -a -name Makefile.in ')' -o -name 'stamp-h*' -o -name '*~' -o -name '*.bak' -o -name '*.moc.cpp' ')' -exec rm -f '{}' ';'
  205.   (cd autotools && find . -maxdepth 1 -name '[a-z]*' -not -name 'config.rpath' -exec rm -f '{}' ';')
  206.   find . -type d -name '.deps' -exec rm -Rf '{}' ';'
  207.   find . -type d -name '.libs' -exec rm -Rf '{}' ';'
  208.   # there's some more cruft all around
  209.   rm -f config.h config.log config.status
  210.   rm -f vlc vlc-config Makefile Modules.am
  211.   rm -Rf autom4te.cache
  212.   echo "`toolbox --distclean' is known to be broken."
  213.   echo "Don't complain if it does not work, or better yet, don't use it."
  214.   echo "You were warned."
  215.   # FIXME: a lot of Makefiles are still there
  216. fi
  217. ##
  218. ## Add the extras/contrib dir to the distribution
  219. ##
  220. if test "${action}" = "contrib"
  221. then
  222.   set -x
  223.   if test ! -d "${distdir}/extras"
  224.   then
  225.     mkdir "${distdir}/extras"
  226.   fi
  227.   if test ! -d "${distdir}/extras/contrib"
  228.   then
  229.     mkdir "${distdir}/extras/contrib"
  230.   fi
  231.   cp "${srcdir}/extras/contrib/Makefile" "${distdir}/extras/contrib/Makefile"
  232.   cp "${srcdir}/extras/contrib/README" "${distdir}/extras/contrib/README"
  233.   cp "${srcdir}/extras/contrib/bootstrap" "${distdir}/extras/contrib/bootstrap"
  234.   cp "${srcdir}/extras/contrib/change_prefix.sh" "${distdir}/extras/contrib/change_prefix.sh"
  235.   if test ! -d "${distdir}/extras/contrib/src"
  236.   then
  237.     mkdir "${distdir}/extras/contrib/src"
  238.   fi
  239.   cp "${srcdir}/extras/contrib/src/Makefile" "${distdir}/extras/contrib/src/Makefile"
  240.   cp "${srcdir}/extras/contrib/src/packages.mak" "${distdir}/extras/contrib/src/packages.mak"
  241.   if test ! -d "${distdir}/extras/contrib/src/Patches"
  242.   then
  243.     mkdir "${distdir}/extras/contrib/src/Patches"
  244.   fi
  245.   cp ${srcdir}/extras/contrib/src/Patches/* "${distdir}/extras/contrib/src/Patches/"
  246.   if test ! -d "${distdir}/extras/contrib/src/Distributions"
  247.   then
  248.     mkdir "${distdir}/extras/contrib/src/Distributions"
  249.   fi
  250.   cp ${srcdir}/extras/contrib/src/Distributions/* "${distdir}/extras/contrib/src/Distributions/"
  251. fi