1
mirror of https://github.com/mpv-player/mpv synced 2025-01-05 03:06:28 +01:00

build: build manpage by default if rst2man is detected

Add building the manpage to the all target (which is also the default
target). This fixes the behavior that "make install" tried to build the
manpage if it wasn't built yet.

Add rst2man detection to configure, and disable rst2man usage in the all
and install targets if it hasn't been found. You can still build or
install the man page manually (by using the install-mpv-man target),
but the all and install targets won't attempt to use rst2man.

Additionally, building/installing the manpage by default can be
explicitly inhibited using the --disable-manpage configure option.
It's possible to avoid rst2man by using "make mpv install-no-man" as
well.
This commit is contained in:
wm4 2012-11-14 00:43:55 +01:00
parent 1b8ef407eb
commit 94fc9f7558
2 changed files with 24 additions and 9 deletions

View File

@ -282,13 +282,15 @@ OBJECTS += $(OBJECTS-yes)
DEP_FILES = $(patsubst %.S,%.d,$(patsubst %.cpp,%.d,$(patsubst %.c,%.d,$(SOURCES:.m=.d) $(SOURCES:.m=.d)))) DEP_FILES = $(patsubst %.S,%.d,$(patsubst %.cpp,%.d,$(patsubst %.c,%.d,$(SOURCES:.m=.d) $(SOURCES:.m=.d))))
ALL_PRG += mpv$(EXESUF) ALL_TARGETS += mpv$(EXESUF)
INSTALL_TARGETS += check_rst2man \
install-mpv \
install-mpv-man
INSTALL_NO_MAN_TARGETS += install-mpv INSTALL_NO_MAN_TARGETS += install-mpv
INSTALL_TARGETS = $(INSTALL_NO_MAN_TARGETS)
ifeq ($(BUILD_MAN),yes)
INSTALL_TARGETS += install-mpv-man
ALL_TARGETS += DOCS/man/en/mpv.1
endif
DIRS = . \ DIRS = . \
audio \ audio \
@ -321,7 +323,7 @@ endif
###### generic rules ####### ###### generic rules #######
all: $(ALL_PRG) all: $(ALL_TARGETS)
%.1: %.rst %.1: %.rst
$(RST2MAN) $< $@ $(RST2MAN) $< $@
@ -407,9 +409,6 @@ DOCS/man/en/mpv.1: DOCS/man/en/af.rst \
###### installation / clean / generic rules ####### ###### installation / clean / generic rules #######
check_rst2man:
@which $(RST2MAN) > /dev/null 2>&1 || (printf "\n\trst2man not found. You need the docutils (>= 0.7) to generate the manpages. Alternatively you can use 'install-no-man' rule.\n\n" && exit 1)
install: $(INSTALL_TARGETS) install: $(INSTALL_TARGETS)
install-no-man: $(INSTALL_NO_MAN_TARGETS) install-no-man: $(INSTALL_NO_MAN_TARGETS)

16
configure vendored
View File

@ -382,6 +382,7 @@ Miscellaneous options:
--target=PLATFORM target platform (i386-linux, arm-linux, etc) --target=PLATFORM target platform (i386-linux, arm-linux, etc)
--enable-static build a statically linked binary --enable-static build a statically linked binary
--with-install=PATH path to a custom install program --with-install=PATH path to a custom install program
--disable-manpage do not build and install manpage [auto]
Advanced options: Advanced options:
--enable-shm enable shm [autodetect] --enable-shm enable shm [autodetect]
@ -499,6 +500,7 @@ def_stream_cache="#define CONFIG_STREAM_CACHE 1"
def_priority="#undef CONFIG_PRIORITY" def_priority="#undef CONFIG_PRIORITY"
def_pthread_cache="#undef PTHREAD_CACHE" def_pthread_cache="#undef PTHREAD_CACHE"
need_shmem=yes need_shmem=yes
_build_man=auto
for ac_option do for ac_option do
case "$ac_option" in case "$ac_option" in
--help|-help|-h) --help|-help|-h)
@ -732,6 +734,9 @@ for ac_option do
--enable-sortsub) _sortsub=yes ;; --enable-sortsub) _sortsub=yes ;;
--disable-sortsub) _sortsub=no ;; --disable-sortsub) _sortsub=no ;;
--enable-manpage) _build_man=yes ;;
--disable-manpage) _build_man=no ;;
*) *)
echo "Unknown parameter: $ac_option" >&2 echo "Unknown parameter: $ac_option" >&2
exit 1 exit 1
@ -917,6 +922,16 @@ if [ -f "$(which rst2man.py)" ] ; then
_rst2man=rst2man.py _rst2man=rst2man.py
fi fi
echocheck "whether to build manpages with rst2man"
if test "$_build_man" = auto ; then
_build_man=no
command_check "$_rst2man" --version && _build_man=yes
else
_build_man=no
fi
echores "$_build_man"
TMPC="$mplayer_tmpdir/tmp.c" TMPC="$mplayer_tmpdir/tmp.c"
TMPCPP="$mplayer_tmpdir/tmp.cpp" TMPCPP="$mplayer_tmpdir/tmp.cpp"
TMPEXE="$mplayer_tmpdir/tmp$_exesuf" TMPEXE="$mplayer_tmpdir/tmp$_exesuf"
@ -3228,6 +3243,7 @@ EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs $libs_mplaye
GETCH = $_getch GETCH = $_getch
TIMER = $_timer TIMER = $_timer
RST2MAN = $_rst2man RST2MAN = $_rst2man
BUILD_MAN = $_build_man
EXESUF = $_exesuf EXESUF = $_exesuf
EXESUFS_ALL = .exe EXESUFS_ALL = .exe