Browse Source

build: extend documentation building mechanism

Allow to select specific documentation components, and reliably check for
component dependencies.

In particular, check for perl presence on the system.
Stefano Sabatini 12 years ago
parent
commit
c3da2c19e4
2 changed files with 31 additions and 7 deletions
  1. 26 3
      configure
  2. 5 4
      doc/Makefile

+ 26 - 3
configure

@@ -99,8 +99,14 @@ Configuration options:
   --enable-gray            enable full grayscale support (slower color)
   --disable-swscale-alpha  disable alpha channel support in swscale
 
-Component options:
+Documentation options:
   --disable-doc            do not build documentation
+  --disable-htmlpages      do not build HTML documentation pages
+  --disable-manpages       do not build man documentation pages
+  --disable-podpages       do not build POD documentation pages
+  --disable-txtpages       do not build text documentation pages
+
+Component options:
   --disable-ffmpeg         disable ffmpeg build
   --disable-ffplay         disable ffplay build
   --disable-ffprobe        disable ffprobe build
@@ -1043,6 +1049,14 @@ COMPONENT_LIST="
     protocols
 "
 
+DOCUMENT_LIST="
+    doc
+    htmlpages
+    manpages
+    podpages
+    txtpages
+"
+
 PROGRAM_LIST="
     ffplay
     ffprobe
@@ -1052,6 +1066,7 @@ PROGRAM_LIST="
 
 CONFIG_LIST="
     $COMPONENT_LIST
+    $DOCUMENT_LIST
     $PROGRAM_LIST
     avcodec
     avdevice
@@ -1062,7 +1077,6 @@ CONFIG_LIST="
     bzlib
     crystalhd
     dct
-    doc
     dwt
     dxva2
     fast_unaligned
@@ -1285,6 +1299,7 @@ HAVE_LIST="
     mmap
     nanosleep
     PeekNamedPipe
+    perl
     pod2man
     poll_h
     posix_memalign
@@ -1848,7 +1863,12 @@ ffprobe_deps="avcodec avformat"
 ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer"
 ffserver_extralibs='$ldl'
 
-doc_deps_any="texi2html makeinfo pod2man"
+# documentation
+podpages_deps="perl"
+manpages_deps="perl pod2man"
+htmlpages_deps="texi2html"
+txtpages_deps="makeinfo"
+doc_deps_any="manpages htmlpages podpages txtpages"
 
 # tests
 colormatrix1_test_deps="colormatrix_filter"
@@ -1951,6 +1971,7 @@ ALT_PP_VER=$ALT_PP_VER_MAJOR.$ALT_PP_VER_MINOR.$ALT_PP_VER_MICRO
 
 # configurable options
 enable $PROGRAM_LIST
+enable $DOCUMENT_LIST
 
 enable avcodec
 enable avdevice
@@ -3525,6 +3546,7 @@ enabled sdl && add_cflags $sdl_cflags && add_extralibs $sdl_libs
 
 texi2html --help 2> /dev/null | grep -q 'init-file' && enable texi2html || disable texi2html
 makeinfo --version > /dev/null 2>&1 && enable makeinfo  || disable makeinfo
+perl --version > /dev/null 2>&1 && enable perl || disable perl
 pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man
 
 check_header linux/fb.h
@@ -3867,6 +3889,7 @@ echo "openssl enabled           ${openssl-no}"
 echo "zlib enabled              ${zlib-no}"
 echo "bzlib enabled             ${bzlib-no}"
 echo "texi2html enabled         ${texi2html-no}"
+echo "perl enabled              ${perl-no}"
 echo "pod2man enabled           ${pod2man-no}"
 echo "makeinfo enabled          ${makeinfo-no}"
 test -n "$random_seed" &&

+ 5 - 4
doc/Makefile

@@ -12,9 +12,10 @@ HTMLPAGES   = $(PROGS-yes:%=doc/%.html)                                 \
 TXTPAGES    = doc/fate.txt                                              \
 
 
-DOCS-$(HAVE_TEXI2HTML)  += $(HTMLPAGES)
-DOCS-$(HAVE_POD2MAN)    += $(MANPAGES) $(PODPAGES)
-DOCS-$(HAVE_MAKEINFO)   += $(TXTPAGES)
+DOCS-$(CONFIG_HTMLPAGES) += $(HTMLPAGES)
+DOCS-$(CONFIG_PODPAGES)  += $(PODPAGES)
+DOCS-$(CONFIG_MANPAGES)  += $(MANPAGES)
+DOCS-$(CONFIG_TXTPAGES)  += $(TXTPAGES)
 DOCS = $(DOCS-yes)
 
 all-$(CONFIG_DOC): documentation
@@ -53,7 +54,7 @@ $(DOCS): | doc/
 
 install-man:
 
-ifdef HAVE_POD2MAN
+ifdef CONFIG_MANPAGES
 install-progs-$(CONFIG_DOC): install-man
 
 install-man: $(MANPAGES)