mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-08 11:26:59 +02:00
![Rémi Denis-Courmont](/assets/img/avatar_default.png)
Missing some cases that I could not test. Also ffmpeg/chroma.c is locked, so I can but leave it broken. Fix is for the remaining modules is obvious and the issue is easy to detect.
271 lines
6.5 KiB
Bash
Executable File
271 lines
6.5 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
|
|
## toolbox for the VLC media player
|
|
## $Id$
|
|
##
|
|
## Copyright (C) 2002-2006 the VideoLAN team
|
|
##
|
|
## Authors: Samuel Hocevar <sam@zoy.org>
|
|
## Rémi Denis-Courmont <rem # videolan.org>
|
|
|
|
###
|
|
### Get a sane environment, just in case
|
|
###
|
|
LC_ALL=C
|
|
export LC_ALL
|
|
LANG=C
|
|
export LANG
|
|
CYGWIN=binmode
|
|
export CYGWIN
|
|
|
|
##
|
|
## Give help
|
|
##
|
|
help()
|
|
{
|
|
cat << EOF
|
|
recognized flags are:
|
|
--update-po update translation files
|
|
--update-includes generate various include files
|
|
--update-glade2 generate and fix Glade 2 code
|
|
--update-flexml generate and fix flexml and flex code
|
|
--distclean "make distclean" on steroids
|
|
--dist-contrib add the contrib dir to MAKE_DIST
|
|
EOF
|
|
exit 1
|
|
}
|
|
|
|
##
|
|
## Extract stuff from Makefile.am
|
|
##
|
|
getfiles()
|
|
{
|
|
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" | \
|
|
tr '\\ ' '\n\n' | \
|
|
sed -ne 's/[^-$()_a-zA-Z0-9][^-$()_a-zA-Z0-9]*\([a-zA-Z]\)/\1/p' | \
|
|
sed -e "s,^,${srcdir}/,"
|
|
}
|
|
|
|
###
|
|
### argument check
|
|
###
|
|
|
|
if test "$1" = ""
|
|
then
|
|
help
|
|
fi
|
|
|
|
case "$1" in
|
|
--changelog|--update-changelog)
|
|
action=changelog
|
|
;;
|
|
--update-po)
|
|
action=po
|
|
;;
|
|
--update-includes)
|
|
action=includes
|
|
;;
|
|
--update-flexml)
|
|
action=flexml
|
|
;;
|
|
--update-glade2|--update-glade-2|--fix-glade2)
|
|
action=glade2
|
|
;;
|
|
--distclean)
|
|
action=distclean
|
|
;;
|
|
--add-include)
|
|
action=include
|
|
;;
|
|
--dist-contrib)
|
|
action=contrib
|
|
;;
|
|
--help)
|
|
help
|
|
;;
|
|
*)
|
|
echo "$0: unknown option $1"
|
|
help
|
|
;;
|
|
esac
|
|
shift
|
|
|
|
##
|
|
## Add includes to help doxygen
|
|
##
|
|
if test "${action}" = "include"
|
|
then
|
|
case "$1" in
|
|
*/vlc_common.h|*/include/vlc/*);;
|
|
*/include/*.h) echo "#include <vlc_common.h>" ;;
|
|
esac
|
|
cat $1
|
|
exit 0
|
|
fi
|
|
|
|
##
|
|
## Update the CVS changelog
|
|
##
|
|
if test "${action}" = "changelog"
|
|
then
|
|
YEAR="`date +%Y`"
|
|
echo "toolbox --changelog no longer required. use this instead:"
|
|
echo " LANG=C svn log -v -r '{$YEAR-12-31}:{$YEAR-01-01}' > ChangeLog"
|
|
exit 0
|
|
fi
|
|
|
|
##
|
|
## Update the potfiles because no one ever does it
|
|
##
|
|
if test "${action}" = "po"
|
|
then
|
|
# find out the source files
|
|
echo "WARNING: you should run \"make update-po\" instead!" >&2
|
|
make update-po
|
|
exit $?
|
|
fi
|
|
|
|
##
|
|
## Create include files
|
|
##
|
|
if test "${action}" = "includes"
|
|
then
|
|
#set -x
|
|
|
|
if test -z "${srcdir}"; then
|
|
srcdir="`sed -ne 's/^srcdir *= *//p' < Makefile`"
|
|
fi
|
|
if test -z "${builddir}"; then
|
|
builddir="`sed -ne 's/^top_builddir *= *//p' < Makefile`"
|
|
fi
|
|
BUILTINS=`sed -ne 's/.*builtins *= *" *\([^"]*\)".*/\1/p' ${builddir}/vlc-config`
|
|
|
|
file="${builddir}/src/modules/builtin.h"
|
|
|
|
rm -f "${file}.tmp"
|
|
mkdir -p -- "${builddir}/src/modules"
|
|
cat "${srcdir}/src/modules/builtin.h.in" > "${file}.tmp" || exit 1
|
|
if test -n "${BUILTINS}"
|
|
then
|
|
for i in `echo ${BUILTINS}`
|
|
do
|
|
echo "int vlc_entry__`echo $i | sed -e 'y@/@_@' -e 's@\..*@@'`( module_t* );" >> "${file}.tmp"
|
|
done
|
|
echo "" >> "${file}.tmp"
|
|
fi
|
|
echo "#define ALLOCATE_ALL_BUILTINS() \\" >> ${file}.tmp
|
|
echo " do \\" >> "${file}.tmp"
|
|
echo " { \\" >> "${file}.tmp"
|
|
if test -n "${BUILTINS}"
|
|
then
|
|
for i in `echo ${BUILTINS}`
|
|
do
|
|
echo " ALLOCATE_BUILTIN(`echo $i | sed -e 'y@/@_@' -e 's@\..*@@'`); \\" >> "${file}.tmp"
|
|
done
|
|
fi
|
|
echo " } while( 0 );" >> "${file}.tmp"
|
|
echo "" >> "${file}.tmp" || exit 1
|
|
if diff >/dev/null 2>&1 "${file}" "${file}.tmp"
|
|
then
|
|
rm -f "${file}.tmp"
|
|
else
|
|
echo "creating new ${file}"
|
|
mv -f "${file}.tmp" "${file}"
|
|
fi
|
|
|
|
exit 0
|
|
fi
|
|
|
|
##
|
|
## Fix glade2-generated files
|
|
##
|
|
if test "${action}" = "glade2"
|
|
then
|
|
file="modules/gui/pda/pda.glade"
|
|
echo "generating code from $file"
|
|
glade-2 -w "$file" || exit 1
|
|
|
|
file="modules/gui/pda/pda_interface.c"
|
|
echo "fixing $file"
|
|
if grep "DO NOT EDIT THIS FILE" "$file" >/dev/null 2>&1
|
|
then
|
|
rm -f -- "$file.$$.bak"
|
|
cat > "$file.$$.bak" << EOF
|
|
/* This file was created automatically by glade2 and fixed by bootstrap */
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
# include "config.h"
|
|
#endif
|
|
|
|
#include <vlc/vlc.h>
|
|
EOF
|
|
sed -e 1,7d \
|
|
-e 's#_(\(".:..:.."\))#\1#' \
|
|
-e 's#_(\("[a-z0-9]*://[^"]*"\))#\1#' \
|
|
-e 's#_("---")#"---"#' \
|
|
-e 's#_("--")#"--"#' \
|
|
-e 's#_(\("/dev/[^"]*"\))#\1#' \
|
|
-e 's#_(\("./."\))#\1#' \
|
|
< "$file" >> "$file.$$.bak"
|
|
mv -f "$file.$$.bak" "$file"
|
|
fi
|
|
|
|
exit 0
|
|
fi
|
|
|
|
##
|
|
## Make distclean
|
|
##
|
|
if test "${action}" = "distclean"
|
|
then
|
|
set -x
|
|
# a naive sanity check to make sure we are in a VLC tree
|
|
test -f vlc.mandriva.spec -a -f vlc.win32.nsi.in || exit 1
|
|
# let's rock!
|
|
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 '{}' ';'
|
|
(cd autotools && find . -maxdepth 1 -name '[a-z]*' -exec rm -f '{}' ';')
|
|
find . -type d -name '.deps' -exec rm -Rf '{}' ';'
|
|
find . -type d -name '.libs' -exec rm -Rf '{}' ';'
|
|
# there's some more cruft all around
|
|
rm -f config.h config.log config.status
|
|
rm -f vlc vlc-config Makefile Modules.am
|
|
rm -Rf autom4te.cache
|
|
echo "\`toolbox --distclean\' is known to be broken."
|
|
echo "Don't complain if it does not work, or better yet, don't use it."
|
|
echo "You were warned."
|
|
# FIXME: a lot of Makefiles are still there
|
|
fi
|
|
|
|
##
|
|
## Add the extras/contrib dir to the distribution
|
|
##
|
|
if test "${action}" = "contrib"
|
|
then
|
|
set -x
|
|
if test ! -d "${distdir}/extras"
|
|
then
|
|
mkdir "${distdir}/extras"
|
|
fi
|
|
if test ! -d "${distdir}/extras/contrib"
|
|
then
|
|
mkdir "${distdir}/extras/contrib"
|
|
fi
|
|
cp "${srcdir}/extras/contrib/Makefile" "${distdir}/extras/contrib/Makefile"
|
|
cp "${srcdir}/extras/contrib/README" "${distdir}/extras/contrib/README"
|
|
cp "${srcdir}/extras/contrib/bootstrap" "${distdir}/extras/contrib/bootstrap"
|
|
cp "${srcdir}/extras/contrib/change_prefix.sh" "${distdir}/extras/contrib/change_prefix.sh"
|
|
if test ! -d "${distdir}/extras/contrib/src"
|
|
then
|
|
mkdir "${distdir}/extras/contrib/src"
|
|
fi
|
|
cp "${srcdir}/extras/contrib/src/Makefile" "${distdir}/extras/contrib/src/Makefile"
|
|
cp "${srcdir}/extras/contrib/src/packages.mak" "${distdir}/extras/contrib/src/packages.mak"
|
|
if test ! -d "${distdir}/extras/contrib/src/Patches"
|
|
then
|
|
mkdir "${distdir}/extras/contrib/src/Patches"
|
|
fi
|
|
cp ${srcdir}/extras/contrib/src/Patches/* "${distdir}/extras/contrib/src/Patches/"
|
|
fi
|
|
|