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))))
ALL_PRG += mpv$(EXESUF)
INSTALL_TARGETS += check_rst2man \
install-mpv \
install-mpv-man
ALL_TARGETS += mpv$(EXESUF)
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 = . \
audio \
@ -321,7 +323,7 @@ endif
###### generic rules #######
all: $(ALL_PRG)
all: $(ALL_TARGETS)
%.1: %.rst
$(RST2MAN) $< $@
@ -407,9 +409,6 @@ DOCS/man/en/mpv.1: DOCS/man/en/af.rst \
###### 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-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)
--enable-static build a statically linked binary
--with-install=PATH path to a custom install program
--disable-manpage do not build and install manpage [auto]
Advanced options:
--enable-shm enable shm [autodetect]
@ -499,6 +500,7 @@ def_stream_cache="#define CONFIG_STREAM_CACHE 1"
def_priority="#undef CONFIG_PRIORITY"
def_pthread_cache="#undef PTHREAD_CACHE"
need_shmem=yes
_build_man=auto
for ac_option do
case "$ac_option" in
--help|-help|-h)
@ -732,6 +734,9 @@ for ac_option do
--enable-sortsub) _sortsub=yes ;;
--disable-sortsub) _sortsub=no ;;
--enable-manpage) _build_man=yes ;;
--disable-manpage) _build_man=no ;;
*)
echo "Unknown parameter: $ac_option" >&2
exit 1
@ -917,6 +922,16 @@ if [ -f "$(which rst2man.py)" ] ; then
_rst2man=rst2man.py
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"
TMPCPP="$mplayer_tmpdir/tmp.cpp"
TMPEXE="$mplayer_tmpdir/tmp$_exesuf"
@ -3228,6 +3243,7 @@ EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs $libs_mplaye
GETCH = $_getch
TIMER = $_timer
RST2MAN = $_rst2man
BUILD_MAN = $_build_man
EXESUF = $_exesuf
EXESUFS_ALL = .exe