mirror of
https://github.com/videolan/vlc.git
synced 2024-12-01 13:55:14 +08:00
276 lines
6.8 KiB
Bash
Executable File
276 lines
6.8 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-config.in.in -a -f src/libvlc.c || 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]*' -not -name 'config.rpath' -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/"
|
|
if test ! -d "${distdir}/extras/contrib/src/Distributions"
|
|
then
|
|
mkdir "${distdir}/extras/contrib/src/Distributions"
|
|
fi
|
|
cp ${srcdir}/extras/contrib/src/Distributions/* "${distdir}/extras/contrib/src/Distributions/"
|
|
fi
|
|
|