From 97efafee8aac2bcc1bb404fb774c4f8fdbf1b3c0 Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 13 Nov 2012 23:41:38 +0100 Subject: build: remove doc/locale language auto-detection, simplify This removes the rather complicated configure and Makefile parts related to auto-detecting available languages for manpages and locales. We don't have non-English manpages or any locales, so this is pointless. It didn't even work: configure --language=all created an invalid config.mak that would cause "make install" to fail. Remove installation of locales. There are no translations at all which could be installed. Should there ever be someone who is interested in adding translations, this can be added back in a simpler way. Rename the --enable-translation configure option to --enable-gettext. This is what this option really does: enable gettext() use. This may be interesting for people who want to experiment with localizing mpv, but is entirely useless for normal use. Remove detection of the binary codecs directory in configure. --- .gitignore | 2 - Makefile | 46 +++----------------- configure | 135 ++++++---------------------------------------------------- core/mp_msg.c | 6 +-- 4 files changed, 22 insertions(+), 167 deletions(-) diff --git a/.gitignore b/.gitignore index 6fc7816d5c..7ceff799c5 100644 --- a/.gitignore +++ b/.gitignore @@ -14,8 +14,6 @@ /core/input/input_conf.h /tags /TAGS -/locale -/po /video/out/vo_opengl_shaders.h /video/out/vdpau_template.c /demux/ebml_defs.c diff --git a/Makefile b/Makefile index 466f095052..40b3ed661c 100644 --- a/Makefile +++ b/Makefile @@ -286,11 +286,9 @@ ALL_PRG += mpv$(EXESUF) INSTALL_TARGETS += check_rst2man \ install-mpv \ - install-mpv-man \ - install-mpv-msg + install-mpv-man -INSTALL_NO_MAN_TARGETS += install-mpv \ - install-mpv-msg +INSTALL_NO_MAN_TARGETS += install-mpv DIRS = . \ audio \ @@ -309,8 +307,6 @@ DIRS = . \ video/filter \ video/out -MOFILES := $(MSG_LANGS:%=locale/%/LC_MESSAGES/mpv.mo) - ADDSUFFIXES = $(foreach suf,$(1),$(addsuffix $(suf),$(2))) ADD_ALL_DIRS = $(call ADDSUFFIXES,$(1),$(DIRS)) @@ -325,7 +321,7 @@ endif ###### generic rules ####### -all: $(ALL_PRG) locales +all: $(ALL_PRG) %.1: %.rst $(RST2MAN) $< $@ @@ -392,16 +388,9 @@ version.h .version: version.sh %$(EXESUF): %.c $(CC) $(CFLAGS) -o $@ $^ -locales: $(MOFILES) - -locale/%/LC_MESSAGES/mpv.mo: po/%.po - mkdir -p $(dir $@) - msgfmt -c -o $@ $< - %.ho: %.h $(CC) $(CFLAGS) -Wno-unused -c -o $@ -x c $< - ###### dependency declarations / specific CFLAGS ###### core/version.c osdep/mpv-rc.o: version.h @@ -421,46 +410,26 @@ install-no-man: $(INSTALL_NO_MAN_TARGETS) install-dirs: if test ! -d $(BINDIR) ; then $(INSTALL) -d $(BINDIR) ; fi if test ! -d $(CONFDIR) ; then $(INSTALL) -d $(CONFDIR) ; fi - if test ! -d $(LIBDIR) ; then $(INSTALL) -d $(LIBDIR) ; fi install-%: %$(EXESUF) install-dirs $(INSTALL) -m 755 $(INSTALLSTRIP) $< $(BINDIR) -install-mpv-man: $(foreach lang,$(MAN_LANGS),install-mpv-man-$(lang)) -install-mpv-msg: $(foreach lang,$(MSG_LANGS),install-mpv-msg-$(lang)) +install-mpv-man: install-mpv-man-en install-mpv-man-en: DOCS/man/en/mpv.1 if test ! -d $(MANDIR)/man1 ; then $(INSTALL) -d $(MANDIR)/man1 ; fi $(INSTALL) -m 644 DOCS/man/en/mpv.1 $(MANDIR)/man1/ -define MPLAYER_MAN_RULE -install-mpv-man-$(lang): DOCS/man/$(lang)/mpv.1 - if test ! -d $(MANDIR)/$(lang)/man1 ; then $(INSTALL) -d $(MANDIR)/$(lang)/man1 ; fi - $(INSTALL) -m 644 DOCS/man/$(lang)/mpv.1 $(MANDIR)/$(lang)/man1/ -endef - -$(foreach lang,$(filter-out en,$(MAN_LANG_ALL)),$(eval $(MPLAYER_MAN_RULE))) - -define MPLAYER_MSG_RULE -install-mpv-msg-$(lang): - if test ! -d $(LOCALEDIR)/$(lang)/LC_MESSAGES ; then $(INSTALL) -d $(LOCALEDIR)/$(lang)/LC_MESSAGES ; fi - $(INSTALL) -m 644 locale/$(lang)/LC_MESSAGES/mpv.mo $(LOCALEDIR)/$(lang)/LC_MESSAGES/ -endef - -$(foreach lang,$(MSG_LANG_ALL),$(eval $(MPLAYER_MSG_RULE))) - uninstall: $(RM) $(BINDIR)/mpv$(EXESUF) $(RM) $(MANDIR)/man1/mpv.1 - $(RM) $(foreach lang,$(MAN_LANGS),$(foreach man,mpv.1,$(MANDIR)/$(lang)/man1/$(man))) - $(RM) $(foreach lang,$(MSG_LANGS),$(LOCALEDIR)/$(lang)/LC_MESSAGES/mpv.1) + $(RM) $(MANDIR)/en/man1/mpv.1 clean: -$(RM) $(call ADD_ALL_DIRS,/*.o /*.d /*.a /*.ho /*~) - -$(RM) $(foreach lang,$(MAN_LANGS),$(foreach man,mpv.1,DOCS/man/$(lang)/$(man))) -$(RM) $(call ADD_ALL_DIRS,/*.o /*.a /*.ho /*~) -$(RM) $(call ADD_ALL_EXESUFS,mpv) - -$(RM) $(MOFILES) + -$(RM) DOCS/man/en/mpv.1 -$(RM) version.h -$(RM) core/codecs.conf.h -$(RM) core/input/input_conf.h @@ -470,7 +439,6 @@ clean: -$(RM) sub/osd_font.h distclean: clean - -$(RM) -r locale -$(RM) config.log config.mak config.h TAGS tags TAGS: @@ -484,7 +452,7 @@ osxbundle: -include $(DEP_FILES) -.PHONY: all locales *install* +.PHONY: all *install* .PHONY: checkheaders *clean .version # Disable suffix rules. Most of the builtin rules are suffix rules, diff --git a/configure b/configure index 91a16bfcbe..e494d8df59 100755 --- a/configure +++ b/configure @@ -272,10 +272,6 @@ case $(echo -n) in *) _echo_n='-n ' _echo_c= ;; # BSD echo esac -msg_lang_all='' -ls po/*.po >/dev/null 2>&1 && msg_lang_all=$(echo po/*.po | sed -e 's:po/\([^[:space:]]*\)\.po:\1:g') -man_lang_all=$(echo DOCS/man/??/mpv.1 DOCS/man/??_??/mpv.1 | sed -e "s:DOCS/man/\(..\)/mpv.1:\1:g" -e "s:DOCS/man/\(.._..\)/mpv.1:\1:g") -doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g") show_help(){ cat << EOF @@ -292,12 +288,9 @@ Installation directories: --mandir=DIR directory for installing man pages [PREFIX/share/man] --confdir=DIR directory for installing configuration files [PREFIX/etc/mpv] - --localedir=DIR directory for locale tree [PREFIX/share/locale] - --libdir=DIR directory for object code libraries [PREFIX/lib] - --codecsdir=DIR directory for binary codecs [LIBDIR/codecs] + --localedir=DIR directory for gettext locales [PREFIX/share/locale] Optional features: - --disable-mpv disable mpv compilation [enable] --disable-encoding disable encoding functionality [enable] --enable-termcap use termcap database for key codes [autodetect] --enable-termios use termios database for key codes [autodetect] @@ -378,22 +371,8 @@ Audio output: --disable-dsound disable DirectSound audio output [autodetect] --disable-select disable using select() on the audio device [enable] -Language options: - --enable-translation enable support for translated output [disable] - --language-doc=lang language to use for the documentation [en] - --language-man=lang language to use for the man pages [en] - --language-msg=lang extra languages for program messages [all] - --language=lang default language to use [en] -Specific options override --language. You can pass a list of languages separated -by whitespace or commas instead of a single language. Nonexisting translations -will be dropped from each list. All translations available in the list will be -installed. The value "all" will activate all translations. The LINGUAS -environment variable is honored. In all cases the fallback is English. -The program always supports English-language output; additional message -languages are only installed if --enable-translation is also specified. -Available values for --language-doc are: all $doc_lang_all -Available values for --language-man are: all $man_lang_all -Available values for --language-msg are: all $msg_lang_all +Localization options: + --enable-gettext enable gettext() usage [disable] Miscellaneous options: --enable-cross-compile enable cross-compilation [disable] @@ -492,9 +471,8 @@ _apple_remote=auto _apple_ir=auto _termcap=auto _termios=auto -#language=en _shm=auto -_translation=no +_gettext=no _cdda=auto _cddb=auto _coreaudio=auto @@ -541,12 +519,6 @@ for ac_option do --confdir=*) _confdir=$(echo $ac_option | cut -d '=' -f 2) ;; - --libdir=*) - _libdir=$(echo $ac_option | cut -d '=' -f 2) - ;; - --codecsdir=*) - _codecsdir=$(echo $ac_option | cut -d '=' -f 2) - ;; --localedir=*) _localedir=$(echo $ac_option | cut -d '=' -f 2) ;; @@ -580,18 +552,6 @@ for ac_option do --windres=*) _windres=$(echo $ac_option | cut -d '=' -f 2) ;; - --language-doc=*) - language_doc=$(echo $ac_option | cut -d '=' -f 2) - ;; - --language-man=*) - language_man=$(echo $ac_option | cut -d '=' -f 2) - ;; - --language-msg=*) - language_msg=$(echo $ac_option | cut -d '=' -f 2) - ;; - --language=*) - language=$(echo $ac_option | cut -d '=' -f 2) - ;; --enable-static) _ld_static='-static' @@ -616,8 +576,8 @@ for ac_option do --disable-debug) _debug= ;; - --enable-translation) _translation=yes ;; - --disable-translation) _translation=no ;; + --enable-gettext) _gettext=yes ;; + --disable-gettext) _gettext=no ;; --enable-cross-compile) _cross_compile=yes ;; --disable-cross-compile) _cross_compile=no ;; --enable-encoding) _encoding=yes ;; @@ -785,7 +745,6 @@ test -z "$_bindir" && _bindir="$_prefix/bin" test -z "$_datadir" && _datadir="$_prefix/share/mpv" test -z "$_mandir" && _mandir="$_prefix/share/man" test -z "$_confdir" && _confdir="$_prefix/etc/mpv" -test -z "$_libdir" && _libdir="$_prefix/lib" test -z "$_localedir" && _localedir="$_prefix/share/locale" for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do @@ -1271,54 +1230,13 @@ else fi -echocheck "translation support" -if test "$_translation" = yes; then - def_translation="#define CONFIG_TRANSLATION 1" +echocheck "gettext support" +if test "$_gettext" = yes; then + def_gettext="#define CONFIG_GETTEXT 1" else - def_translation="#undef CONFIG_TRANSLATION" + def_gettext="#undef CONFIG_GETTEXT" fi -echores "$_translation" - -echocheck "language" -# Set preferred languages, "all" uses English as main language. -test -z "$language" && language=$LINGUAS -test -z "$language_doc" && language_doc=$language -test -z "$language_man" && language_man=$language -test -z "$language_msg" && language_msg=$language -test -z "$language_msg" && language_msg="all" -language_doc=$(echo $language_doc | tr , " ") -language_man=$(echo $language_man | tr , " ") -language_msg=$(echo $language_msg | tr , " ") - -test "$language_doc" = "all" && language_doc=$doc_lang_all -test "$language_man" = "all" && language_man=$man_lang_all -test "$language_msg" = "all" && language_msg=$msg_lang_all - -if test "$_translation" != yes ; then - language_msg="" -fi - -# Prune non-existing translations from language lists. -# Set message translation to the first available language. -# Fall back on English. -for lang in $language_doc ; do - test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang" -done -language_doc=$tmp_language_doc -test -z "$language_doc" && language_doc=en - -for lang in $language_man ; do - test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang" -done -language_man=$tmp_language_man -test -z "$language_man" && language_man=en - -for lang in $language_msg ; do - test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang" -done -language_msg=$tmp_language_msg - -echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc" +echores "$_gettext" echocheck "__builtin_expect" @@ -2910,22 +2828,6 @@ test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1" echores "$_libbs2b" -if test -z "$_codecsdir" ; then - for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \ - /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do - if test -d "$dir" ; then - _codecsdir="$dir" - break; - fi; - done -fi -# Fall back on default directory. -if test -z "$_codecsdir" ; then - _codecsdir="$_libdir/codecs" - mingw32 && _codecsdir="codecs" -fi - - echocheck "LCMS2 support" if test "$_lcms2" = auto ; then _lcms2=no @@ -3304,17 +3206,9 @@ export LC_ALL = C CONFIGURATION = $configuration -DOC_LANGS = $language_doc -DOC_LANG_ALL = $doc_lang_all -MAN_LANGS = $language_man -MAN_LANG_ALL = $man_lang_all -MSG_LANGS = $language_msg -MSG_LANG_ALL = $msg_lang_all - prefix = \$(DESTDIR)$_prefix BINDIR = \$(DESTDIR)$_bindir DATADIR = \$(DESTDIR)$_datadir -LIBDIR = \$(DESTDIR)$_libdir MANDIR = \$(DESTDIR)$_mandir CONFDIR = \$(DESTDIR)$_confdir LOCALEDIR = \$(DESTDIR)$_localedir @@ -3457,7 +3351,7 @@ cat > $TMPH << EOF #define MPLAYER_CONFDIR "$_confdir" #define MPLAYER_LOCALEDIR "$_localedir" -$def_translation +$def_gettext /* system headers */ @@ -3659,11 +3553,6 @@ Config files successfully generated by ./configure $configuration ! Data directory: $_datadir Config direct.: $_confdir - Languages: - Messages (in addition to English): $language_msg - Manual pages: $language_man - Documentation: $language_doc - Enabled optional drivers: Input: $inputmodules Codecs: libavcodecs $codecmodules diff --git a/core/mp_msg.c b/core/mp_msg.c index d0cce8e064..2e6f148438 100644 --- a/core/mp_msg.c +++ b/core/mp_msg.c @@ -26,7 +26,7 @@ #include "osdep/getch2.h" #include "osdep/io.h" -#ifdef CONFIG_TRANSLATION +#ifdef CONFIG_GETTEXT #include #include #endif @@ -86,7 +86,7 @@ void mp_msg_init(void){ for(i=0;i