#! /bin/sh
## toolbox for the VLC media player
-## $Id: toolbox,v 1.54 2004/01/04 18:18:45 sam Exp $
+## $Id$
##
## Authors: Samuel Hocevar <sam@zoy.org>
--update-glade generate and fix Glade code
--update-glade2 generate and fix Glade 2 code
--update-flexml generate and fix flexml and flex code
- --changelog update the CVS changelog
--distclean "make distclean" on steroids
+ --dist-contrib add the contrib dir to MAKE_DIST
--make-woody <dir> change distdir <dir> to a woody distdir
EOF
exit 1
--add-include)
action=include
;;
+ --dist-contrib)
+ action=contrib
+ ;;
--help)
help
;;
##
if test "${action}" = "changelog"
then
- set -e
- set -x
- cvs2cl --help >/dev/null 2>&1 || exit 1
- rm -f ChangeLog ChangeLog.tmp
- cvs2cl --utc --hide-filenames --no-wrap -w --stdout -g -z9 | \
- sed -e 's/^[^0-9]/ /' -e 's/^ *$//' -e 's/^ \* / /g' | \
- grep -v '^ \*$' | uniq > ChangeLog.tmp # ^-- tab
- YEAR=`sed -e 's/\(....\)-..-.*/\1/;q' ChangeLog.tmp`
- LASTYEAR="$((${YEAR} - 1))"
- sed -ne "/^${YEAR}-..-../,/^${LASTYEAR}-..-../{/^${LASTYEAR}-..-../d;p}" \
- < ChangeLog.tmp > ChangeLog
- rm -f ChangeLog.tmp
+ YEAR="`date +%Y`"
+ echo "toolbox --changelog no longer required. use this instead:"
+ echo " svn log -v -r '{$YEAR-12-31}:{$YEAR-01-01}' > ChangeLog"
exit 0
- # To generate changelog for the year 2001:
- # sed -ne '/^2001/,/^2000/{/^2000/d;p}'
fi
##
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE ARM) Debug"${M}
# PROP Output_Dir "ARMDbg\\${subdir}"${M}
# PROP Intermediate_Dir "ARMDbg\\${subdir}"${M}
+!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE ARMV4) Release"${M}
+# PROP Output_Dir "ARMV4Rel\\${subdir}"${M}
+# PROP Intermediate_Dir "ARMV4Rel\\${subdir}"${M}
+!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE ARMV4) Debug"${M}
+# PROP Output_Dir "ARMV4Dbg\\${subdir}"${M}
+# PROP Intermediate_Dir "ARMV4Dbg\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE x86em) Release"${M}
# PROP Output_Dir "X86EMRel\\${subdir}"${M}
# PROP Intermediate_Dir "X86EMRel\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE x86em) Debug"${M}
# PROP Output_Dir "X86EMDbg\\${subdir}"${M}
# PROP Intermediate_Dir "X86EMDbg\\${subdir}"${M}
+!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE emulator) Debug"${M}
+# PROP Output_Dir "emulatorDbg\\${subdir}"${M}
+# PROP Intermediate_Dir "emulatorDbg\\${subdir}"${M}
+!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE emulator) Release"${M}
+# PROP Output_Dir "emulatorRel\\${subdir}"${M}
+# PROP Intermediate_Dir "emulatorRel\\${subdir}"${M}
+!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE x86) Debug"${M}
+# PROP Output_Dir "X86Dbg\\${subdir}"${M}
+# PROP Intermediate_Dir "X86Dbg\\${subdir}"${M}
+!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE x86) Release"${M}
+# PROP Output_Dir "X86Rel\\${subdir}"${M}
+# PROP Intermediate_Dir "X86Rel\\${subdir}"${M}
!ENDIF${M}
# End Source File${M}
EOF
# Top of the project file
perl -pe 'if(/§SOURCES§/){last;}' < ${target}.in > ${target}
# The source files
- if test "${target}" = "evc/vlc.vcp"
- then
- cat >> ${target} << EOF
-# Begin Source File${M}
-SOURCE="..\\evc\\vlc.c"${M}
-# End Source File${M}
-EOF
- else
cat >> ${target} << EOF
# Begin Source File${M}
SOURCE="..\\src\\vlc.c"${M}
# End Source File${M}
EOF
- fi
# Bottom of the project file - handles resource files too
perl -e 'while(<>){if(/§SOURCES§/){last;}}while(<>){print $_}' < ${target}.in >> ${target}
done
##
if test "${action}" = "po"
then
- # create a fake file containing win32 strings
- rm -f modules/gui/win32/strings.cpp
- #printf "/* Automatically generated by 'toolbox --update-po', please don't compile */\n" > modules/gui/win32/strings.cpp
- #find modules/gui/win32 -name '*.dfm' | while read file
- #do
- # printf "\n/*\n * from $file:\n */\n\n" >> modules/gui/win32/strings.cpp
- # perl -ne 'chop; chop; if( / (Caption|Text|Hint) / || $buffer =~ /[+=] *$/ ) { $buffer =~ s/\+ *$//; $buffer .= $_; } if( $buffer =~ /'"'"' *$/) { $buffer =~ s/'"'"'/"/g; $buffer =~ s/\\/\\\\/g; $buffer =~ s/=/= _(/; print $buffer." );\n"; $buffer = "";}' < $file | grep -v '"-*"' | grep -v '"http://' | grep -v '"vlcs"' >> modules/gui/win32/strings.cpp || exit 1
- #done
# find out the source files
rm -f po/POTFILES.in
echo "# automatically created by toolbox --update-po" > po/POTFILES.in
echo "" >> po/POTFILES.in
echo "# modules" >> po/POTFILES.in
find modules -name '*.[chm]' -o -name '*.[ch]pp' \
- | grep -v '\(gui/win32/\|\.moc\.\|gui/gtk2/\)' \
+ | grep -v '\(\.moc\.\|gui/gtk2/\)' \
| sort >> po/POTFILES.in
# clean old potfiles
cd po
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
+ mkdir -p "${builddir}/include"
+
LIBVLC_HEADERS=`getfiles HEADERS_include`
BUILTINS=`sed -ne 's/.*builtins *= *" *\([^"]*\)".*/\1/p' vlc-config`
- file="${srcdir}/include/vlc_symbols.h"
+ file="${builddir}/include/vlc_symbols.h"
rm -f ${file}.in
echo '/* DO NOT EDIT THIS FILE! See Makefile.am */' >> ${file}.in
mv -f ${file}.in ${file}
fi
- file="${srcdir}/src/misc/modules_plugin.h"
+ file="${builddir}/src/misc/modules_plugin.h"
- rm -f ${file}.tmp && cp ${file}.in ${file}.tmp
- sed -e 's#.*\$[I][d]:.*# * Automatically generated from '${file}'.in by bootstrap#' < ${file}.in > ${file}.tmp
+ rm -f ${file}.tmp
+ sed -e 's#.*\$[I][d]:.*# * Automatically generated from '${file}'.in by bootstrap#' < ${srcdir}/src/misc/modules_plugin.h.in > ${file}.tmp
echo '#define STORE_SYMBOLS( p_symbols ) \' >> ${file}.tmp
cat ${LIBVLC_HEADERS} | grep '^ *VLC_EXPORT.*;' | sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/ (p_symbols)->\2_inner = \2; \\/' >> ${file}.tmp
echo '' >> ${file}.tmp
mv -f ${file}.tmp ${file}
fi
- file="${srcdir}/src/misc/modules_builtin.h"
+ file="${builddir}/src/misc/modules_builtin.h"
- rm -f ${file}.tmp && cp ${file}.in ${file}.tmp
+ rm -f ${file}.tmp && cp ${srcdir}/src/misc/modules_builtin.h.in ${file}.tmp
if test -n "${BUILTINS}"
then
for i in `echo ${BUILTINS}`
exit 0
fi
-##
-## Fix flexml-generated files
-##
-if test "${action}" = "flexml"
-then
- cd modules/gui/skins/parser
- flexml -SH -a skin.act skin.dtd
- # comment the dummy main function
- file=skin.c
- sed 's@int main@//int main@' < $file > $file.$$.bak
- mv -f $file.$$.bak $file
- flex -oflex.c -BLs skin.l
-fi
-
##
## Make distclean
##
test -f vlc.spec.mdk -a -f debian/rules || exit 1
# let's rock!
find . -type f '(' -name '*.[oa]' -o -name '*.so' -o -name '*.sl' -o -name '*.dylib' -o -name '*.dll' -o -name .dirstamp -o -name Makefile.in -o -name 'stamp-h*' -o -name '*~' -o -name '*.bak' -o -name '*.moc.cpp' ')' -exec rm -f '{}' ';'
- (cd autotools && find . -name '[a-z]*' -exec rm -f '{}' ';')
+ (cd autotools && find . -name '[a-z]*' -maxdepth 1 -exec rm -f '{}' ';')
(cd debian && find . -type d -name '[a-z]*' -maxdepth 1 -exec rm -Rf '{}' ';')
find msvc -type f -name '*.dsp' -exec rm -f '{}' ';'
find evc -type f -name '*.vcp' -exec rm -f '{}' ';'
# 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
+
##
## Build a woody-friendly package
##
# ttf-freefont with ttf-thryomanes
# dvb-dev (>= 1.0.1-6) with dvb-dev
# remove libwxgtk2.4-dev
- # libflac-dev
# libidl0 (workaround for mozilla-dev's bad deps)
# libglib2.0-0 (workaround for mozilla-dev's bad deps)
- # libmatroska-dev
- # libspeex-dev
+ # gcc-3.2 (workaround for an ICE in gcc-3.3)
# change Section: gnome with Section: graphics
# Section: kde with Section: kde
# Section: libdevel with Section: devel
-e 's/, dvb-dev[^,]*/, dvb-dev/' \
-e 's/, libwx[^,]*//' \
-e '/Package: wxvlc/,/^ *$/d' \
- -e 's/, libflac-dev[^,]*//' \
-e 's/, libidl0[^,]*//' \
-e 's/, libglib2.0-0[^,]*//' \
- -e 's/, libmatroska-dev[^,]*//' \
- -e 's/, libspeex-dev[^,]*//' \
+ -e 's/, gcc-3.2[^,]*//' \
-e 's/Section: gnome/Section: graphics/' \
-e 's/Section: kde/Section: graphics/' \
-e 's/Section: libdevel/Section: devel/' \
mv "$1/debian/control.woody" "$1/debian/control"
# rules: remove wxwindows and skins stuff
- # remove flac support
- # remove matroska support
sed -e '/# Package: wxvlc/,/^ *$/d' \
-e 's,--enable-wxwindows,--disable-wxwindows,' \
-e 's,--enable-skins,--disable-skins,' \
- -e 's,--enable-flac,--disable-flac,' \
- -e 's,--enable-mkv,--disable-mkv,' \
- -e 's,--enable-speex,--disable-speex,' \
< "$1/debian/rules" > "$1/debian/rules.woody"
mv "$1/debian/rules.woody" "$1/debian/rules"
chmod 0755 "$1/debian/rules"