[FFmpeg-cvslog] Merge commit 'acb0dea27efff4b35796015b96570b59fd517078'

James Almer git at videolan.org
Fri Sep 29 21:39:51 EEST 2017


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Fri Sep 29 15:09:19 2017 -0300| [b25d6290c67e193b91becab12e6c88df134cee81] | committer: James Almer

Merge commit 'acb0dea27efff4b35796015b96570b59fd517078'

* commit 'acb0dea27efff4b35796015b96570b59fd517078':
  build: Split logic for building examples off into a separate Makefile

We already have a Makefile in doc/examples, but it's separate from the build
system and meant to be installed as part of the documentation to help users
compile the installed .c example files.
Move it to Makefile.example to make place for the new build system Makefile.

Merged-by: James Almer <jamrial at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b25d6290c67e193b91becab12e6c88df134cee81
---

 Makefile                      |  8 ++--
 doc/Makefile                  | 39 +-----------------
 doc/examples/Makefile         | 94 ++++++++++++++++++++-----------------------
 doc/examples/Makefile.example | 50 +++++++++++++++++++++++
 4 files changed, 100 insertions(+), 91 deletions(-)

diff --git a/Makefile b/Makefile
index e4eb050226..43ce03130a 100644
--- a/Makefile
+++ b/Makefile
@@ -56,7 +56,6 @@ FFLIBS-$(CONFIG_SWSCALE)    += swscale
 FFLIBS := avutil
 
 DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.ffpreset) $(SRC_PATH)/doc/ffprobe.xsd
-EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/Makefile $(SRC_PATH)/doc/examples/README
 
 SKIPHEADERS = compat/w32pthreads.h
 
@@ -119,6 +118,7 @@ endef
 $(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
 
 include $(SRC_PATH)/doc/Makefile
+include $(SRC_PATH)/doc/examples/Makefile
 
 define DOPROG
 OBJS-$(1) += $(1).o $(OBJS-$(1)-yes)
@@ -168,10 +168,11 @@ install-progs: install-progs-yes $(AVPROGS)
 	$(Q)mkdir -p "$(BINDIR)"
 	$(INSTALL) -c -m 755 $(INSTPROGS) "$(BINDIR)"
 
-install-data: $(DATA_FILES) $(EXAMPLES_FILES)
+install-data: $(DATA_FILES) $(EXAMPLES_FILES) $(EXAMPLE_MAKEFILE)
 	$(Q)mkdir -p "$(DATADIR)/examples"
 	$(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)"
 	$(INSTALL) -m 644 $(EXAMPLES_FILES) "$(DATADIR)/examples"
+	$(INSTALL) -m 644 -T $(EXAMPLE_MAKEFILE:%=%.example) "$(DATADIR)/examples/Makefile"
 
 uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data
 
@@ -219,5 +220,4 @@ $(sort $(OBJDIRS)):
 # so this saves some time on slow systems.
 .SUFFIXES:
 
-.PHONY: all all-yes alltools check *clean config install*
-.PHONY: testprogs uninstall*
+.PHONY: all all-yes alltools check *clean config install* testprogs uninstall*
diff --git a/doc/Makefile b/doc/Makefile
index ce6ecfaef2..bcde309878 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -36,33 +36,6 @@ DOCS-$(CONFIG_MANPAGES)  += $(MANPAGES)
 DOCS-$(CONFIG_TXTPAGES)  += $(TXTPAGES)
 DOCS = $(DOCS-yes)
 
-DOC_EXAMPLES-$(CONFIG_AVIO_DIR_CMD_EXAMPLE)      += avio_dir_cmd
-DOC_EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE)      += avio_reading
-DOC_EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE)      += decode_audio
-DOC_EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE)      += decode_video
-DOC_EXAMPLES-$(CONFIG_DEMUXING_DECODING_EXAMPLE) += demuxing_decoding
-DOC_EXAMPLES-$(CONFIG_ENCODE_AUDIO_EXAMPLE)      += encode_audio
-DOC_EXAMPLES-$(CONFIG_ENCODE_VIDEO_EXAMPLE)      += encode_video
-DOC_EXAMPLES-$(CONFIG_EXTRACT_MVS_EXAMPLE)       += extract_mvs
-DOC_EXAMPLES-$(CONFIG_FILTER_AUDIO_EXAMPLE)      += filter_audio
-DOC_EXAMPLES-$(CONFIG_FILTERING_AUDIO_EXAMPLE)   += filtering_audio
-DOC_EXAMPLES-$(CONFIG_FILTERING_VIDEO_EXAMPLE)   += filtering_video
-DOC_EXAMPLES-$(CONFIG_HTTP_MULTICLIENT_EXAMPLE)  += http_multiclient
-DOC_EXAMPLES-$(CONFIG_HW_DECODE_EXAMPLE)         += hw_decode
-DOC_EXAMPLES-$(CONFIG_METADATA_EXAMPLE)          += metadata
-DOC_EXAMPLES-$(CONFIG_MUXING_EXAMPLE)            += muxing
-DOC_EXAMPLES-$(CONFIG_QSVDEC_EXAMPLE)            += qsvdec
-DOC_EXAMPLES-$(CONFIG_REMUXING_EXAMPLE)          += remuxing
-DOC_EXAMPLES-$(CONFIG_RESAMPLING_AUDIO_EXAMPLE)  += resampling_audio
-DOC_EXAMPLES-$(CONFIG_SCALING_VIDEO_EXAMPLE)     += scaling_video
-DOC_EXAMPLES-$(CONFIG_TRANSCODE_AAC_EXAMPLE)     += transcode_aac
-DOC_EXAMPLES-$(CONFIG_TRANSCODING_EXAMPLE)       += transcoding
-
-DOC_EXAMPLES       := $(DOC_EXAMPLES-yes:%=doc/examples/%$(PROGSSUF)$(EXESUF))
-ALL_DOC_EXAMPLES   := $(DOC_EXAMPLES) $(DOC_EXAMPLES-:%=doc/examples/%$(PROGSSUF)$(EXESUF))
-ALL_DOC_EXAMPLES_G := $(DOC_EXAMPLES) $(DOC_EXAMPLES-:%=doc/examples/%$(PROGSSUF)_g$(EXESUF))
-PROGS              += $(DOC_EXAMPLES)
-
 all-$(CONFIG_DOC): doc
 
 doc: documentation
@@ -70,8 +43,6 @@ doc: documentation
 apidoc: doc/doxy/html
 documentation: $(DOCS)
 
-examples: $(DOC_EXAMPLES)
-
 TEXIDEP = perl $(SRC_PATH)/doc/texidep.pl $(SRC_PATH) $< $@ >$(@:%=%.d)
 
 doc/%.txt: TAG = TXT
@@ -124,10 +95,8 @@ doc/%.3: doc/%.pod $(GENTEXI)
 	$(M)pod2man --section=3 --center=" " --release=" " --date=" " $< > $@
 
 $(DOCS) doc/doxy/html: | doc/
-$(DOC_EXAMPLES:%$(EXESUF)=%.o): | doc/examples
-OBJDIRS += doc/examples
 
-DOXY_INPUT      = $(INSTHEADERS) $(DOC_EXAMPLES:%$(EXESUF)=%.c)
+DOXY_INPUT      = $(INSTHEADERS)
 DOXY_INPUT_DEPS = $(addprefix $(SRC_PATH)/, $(DOXY_INPUT)) ffbuild/config.mak
 
 doc/doxy/html: TAG = DOXY
@@ -174,11 +143,7 @@ clean:: docclean
 distclean:: docclean
 	$(RM) doc/config.texi
 
-examplesclean:
-	$(RM) $(ALL_DOC_EXAMPLES) $(ALL_DOC_EXAMPLES_G)
-	$(RM) $(CLEANSUFFIXES:%=doc/examples/%)
-
-docclean: examplesclean
+docclean::
 	$(RM) $(CLEANSUFFIXES:%=doc/%)
 	$(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 doc/*.3 doc/avoptions_*.texi
 	$(RM) -r doc/doxy/html
diff --git a/doc/examples/Makefile b/doc/examples/Makefile
index 6428154c51..277d4b0a18 100644
--- a/doc/examples/Makefile
+++ b/doc/examples/Makefile
@@ -1,50 +1,44 @@
-# use pkg-config for getting CFLAGS and LDLIBS
-FFMPEG_LIBS=    libavdevice                        \
-                libavformat                        \
-                libavfilter                        \
-                libavcodec                         \
-                libswresample                      \
-                libswscale                         \
-                libavutil                          \
-
-CFLAGS += -Wall -g
-CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
-LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
-
-EXAMPLES=       avio_dir_cmd                       \
-                avio_reading                       \
-                decode_audio                       \
-                decode_video                       \
-                demuxing_decoding                  \
-                encode_audio                       \
-                encode_video                       \
-                extract_mvs                        \
-                filtering_video                    \
-                filtering_audio                    \
-                http_multiclient                   \
-                hw_decode                          \
-                metadata                           \
-                muxing                             \
-                remuxing                           \
-                resampling_audio                   \
-                scaling_video                      \
-                transcode_aac                      \
-                transcoding                        \
-
-OBJS=$(addsuffix .o,$(EXAMPLES))
-
-# the following examples make explicit use of the math library
-avcodec:           LDLIBS += -lm
-encode_audio:      LDLIBS += -lm
-muxing:            LDLIBS += -lm
-resampling_audio:  LDLIBS += -lm
-
-.phony: all clean-test clean
-
-all: $(OBJS) $(EXAMPLES)
-
-clean-test:
-	$(RM) test*.pgm test.h264 test.mp2 test.sw test.mpg
-
-clean: clean-test
-	$(RM) $(EXAMPLES) $(OBJS)
+DOC_EXAMPLES-$(CONFIG_AVIO_DIR_CMD_EXAMPLE)      += avio_dir_cmd
+DOC_EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE)      += avio_reading
+DOC_EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE)      += decode_audio
+DOC_EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE)      += decode_video
+DOC_EXAMPLES-$(CONFIG_DEMUXING_DECODING_EXAMPLE) += demuxing_decoding
+DOC_EXAMPLES-$(CONFIG_ENCODE_AUDIO_EXAMPLE)      += encode_audio
+DOC_EXAMPLES-$(CONFIG_ENCODE_VIDEO_EXAMPLE)      += encode_video
+DOC_EXAMPLES-$(CONFIG_EXTRACT_MVS_EXAMPLE)       += extract_mvs
+DOC_EXAMPLES-$(CONFIG_FILTER_AUDIO_EXAMPLE)      += filter_audio
+DOC_EXAMPLES-$(CONFIG_FILTERING_AUDIO_EXAMPLE)   += filtering_audio
+DOC_EXAMPLES-$(CONFIG_FILTERING_VIDEO_EXAMPLE)   += filtering_video
+DOC_EXAMPLES-$(CONFIG_HTTP_MULTICLIENT_EXAMPLE)  += http_multiclient
+DOC_EXAMPLES-$(CONFIG_HW_DECODE_EXAMPLE)         += hw_decode
+DOC_EXAMPLES-$(CONFIG_METADATA_EXAMPLE)          += metadata
+DOC_EXAMPLES-$(CONFIG_MUXING_EXAMPLE)            += muxing
+DOC_EXAMPLES-$(CONFIG_QSVDEC_EXAMPLE)            += qsvdec
+DOC_EXAMPLES-$(CONFIG_REMUXING_EXAMPLE)          += remuxing
+DOC_EXAMPLES-$(CONFIG_RESAMPLING_AUDIO_EXAMPLE)  += resampling_audio
+DOC_EXAMPLES-$(CONFIG_SCALING_VIDEO_EXAMPLE)     += scaling_video
+DOC_EXAMPLES-$(CONFIG_TRANSCODE_AAC_EXAMPLE)     += transcode_aac
+DOC_EXAMPLES-$(CONFIG_TRANSCODING_EXAMPLE)       += transcoding
+
+DOC_EXAMPLES       := $(DOC_EXAMPLES-yes:%=doc/examples/%$(PROGSSUF)$(EXESUF))
+ALL_DOC_EXAMPLES   := $(DOC_EXAMPLES) $(DOC_EXAMPLES-:%=doc/examples/%$(PROGSSUF)$(EXESUF))
+ALL_DOC_EXAMPLES_G := $(DOC_EXAMPLES) $(DOC_EXAMPLES-:%=doc/examples/%$(PROGSSUF)_g$(EXESUF))
+PROGS              += $(DOC_EXAMPLES)
+
+EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/README
+EXAMPLE_MAKEFILE := $(SRC_PATH)/doc/examples/Makefile
+
+examples: $(DOC_EXAMPLES)
+
+$(DOC_EXAMPLES:%$(EXESUF)=%.o): | doc/examples
+OBJDIRS += doc/examples
+
+DOXY_INPUT += $(DOC_EXAMPLES:%$(EXESUF)=%.c)
+
+examplesclean:
+	$(RM) $(ALL_DOC_EXAMPLES) $(ALL_DOC_EXAMPLES_G)
+	$(RM) $(CLEANSUFFIXES:%=doc/examples/%)
+
+docclean:: examplesclean
+
+.PHONY: examples
diff --git a/doc/examples/Makefile.example b/doc/examples/Makefile.example
new file mode 100644
index 0000000000..6428154c51
--- /dev/null
+++ b/doc/examples/Makefile.example
@@ -0,0 +1,50 @@
+# use pkg-config for getting CFLAGS and LDLIBS
+FFMPEG_LIBS=    libavdevice                        \
+                libavformat                        \
+                libavfilter                        \
+                libavcodec                         \
+                libswresample                      \
+                libswscale                         \
+                libavutil                          \
+
+CFLAGS += -Wall -g
+CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
+LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
+
+EXAMPLES=       avio_dir_cmd                       \
+                avio_reading                       \
+                decode_audio                       \
+                decode_video                       \
+                demuxing_decoding                  \
+                encode_audio                       \
+                encode_video                       \
+                extract_mvs                        \
+                filtering_video                    \
+                filtering_audio                    \
+                http_multiclient                   \
+                hw_decode                          \
+                metadata                           \
+                muxing                             \
+                remuxing                           \
+                resampling_audio                   \
+                scaling_video                      \
+                transcode_aac                      \
+                transcoding                        \
+
+OBJS=$(addsuffix .o,$(EXAMPLES))
+
+# the following examples make explicit use of the math library
+avcodec:           LDLIBS += -lm
+encode_audio:      LDLIBS += -lm
+muxing:            LDLIBS += -lm
+resampling_audio:  LDLIBS += -lm
+
+.phony: all clean-test clean
+
+all: $(OBJS) $(EXAMPLES)
+
+clean-test:
+	$(RM) test*.pgm test.h264 test.mp2 test.sw test.mpg
+
+clean: clean-test
+	$(RM) $(EXAMPLES) $(OBJS)


======================================================================

diff --cc Makefile
index e4eb050226,c96e07916d..43ce03130a
--- a/Makefile
+++ b/Makefile
@@@ -55,8 -101,7 +55,7 @@@ FFLIBS-$(CONFIG_SWSCALE)    += swscal
  
  FFLIBS := avutil
  
 -DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.avpreset)
 +DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.ffpreset) $(SRC_PATH)/doc/ffprobe.xsd
- EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/Makefile $(SRC_PATH)/doc/examples/README
  
  SKIPHEADERS = compat/w32pthreads.h
  
@@@ -166,12 -197,11 +166,13 @@@ install-progs-$(CONFIG_SHARED): install
  
  install-progs: install-progs-yes $(AVPROGS)
  	$(Q)mkdir -p "$(BINDIR)"
 -	$(INSTALL) -c -m 755 $(AVPROGS) "$(BINDIR)"
 +	$(INSTALL) -c -m 755 $(INSTPROGS) "$(BINDIR)"
  
- install-data: $(DATA_FILES) $(EXAMPLES_FILES)
 -install-data: $(DATA_FILES)
 -	$(Q)mkdir -p "$(DATADIR)"
++install-data: $(DATA_FILES) $(EXAMPLES_FILES) $(EXAMPLE_MAKEFILE)
 +	$(Q)mkdir -p "$(DATADIR)/examples"
  	$(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)"
 +	$(INSTALL) -m 644 $(EXAMPLES_FILES) "$(DATADIR)/examples"
++	$(INSTALL) -m 644 -T $(EXAMPLE_MAKEFILE:%=%.example) "$(DATADIR)/examples/Makefile"
  
  uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data
  
diff --cc doc/Makefile
index ce6ecfaef2,381eca9c01..bcde309878
--- a/doc/Makefile
+++ b/doc/Makefile
@@@ -27,57 -11,17 +27,28 @@@ HTMLPAGES   = $(AVPROGS-yes:%=doc/%.htm
                doc/nut.html                                              \
                doc/platform.html                                         \
  
 -DOCS-$(CONFIG_POD2MAN)                          += $(MANPAGES) $(PODPAGES)
 -DOCS-$(CONFIG_TEXI2HTML)                        += $(HTMLPAGES)
 +TXTPAGES    = doc/fate.txt                                              \
 +
 +
 +DOCS-$(CONFIG_HTMLPAGES) += $(HTMLPAGES)
 +DOCS-$(CONFIG_PODPAGES)  += $(PODPAGES)
 +DOCS-$(CONFIG_MANPAGES)  += $(MANPAGES)
 +DOCS-$(CONFIG_TXTPAGES)  += $(TXTPAGES)
  DOCS = $(DOCS-yes)
  
- DOC_EXAMPLES-$(CONFIG_AVIO_DIR_CMD_EXAMPLE)      += avio_dir_cmd
- DOC_EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE)      += avio_reading
- DOC_EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE)      += decode_audio
- DOC_EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE)      += decode_video
- DOC_EXAMPLES-$(CONFIG_DEMUXING_DECODING_EXAMPLE) += demuxing_decoding
- DOC_EXAMPLES-$(CONFIG_ENCODE_AUDIO_EXAMPLE)      += encode_audio
- DOC_EXAMPLES-$(CONFIG_ENCODE_VIDEO_EXAMPLE)      += encode_video
- DOC_EXAMPLES-$(CONFIG_EXTRACT_MVS_EXAMPLE)       += extract_mvs
- DOC_EXAMPLES-$(CONFIG_FILTER_AUDIO_EXAMPLE)      += filter_audio
- DOC_EXAMPLES-$(CONFIG_FILTERING_AUDIO_EXAMPLE)   += filtering_audio
- DOC_EXAMPLES-$(CONFIG_FILTERING_VIDEO_EXAMPLE)   += filtering_video
- DOC_EXAMPLES-$(CONFIG_HTTP_MULTICLIENT_EXAMPLE)  += http_multiclient
- DOC_EXAMPLES-$(CONFIG_HW_DECODE_EXAMPLE)         += hw_decode
- DOC_EXAMPLES-$(CONFIG_METADATA_EXAMPLE)          += metadata
- DOC_EXAMPLES-$(CONFIG_MUXING_EXAMPLE)            += muxing
- DOC_EXAMPLES-$(CONFIG_QSVDEC_EXAMPLE)            += qsvdec
- DOC_EXAMPLES-$(CONFIG_REMUXING_EXAMPLE)          += remuxing
- DOC_EXAMPLES-$(CONFIG_RESAMPLING_AUDIO_EXAMPLE)  += resampling_audio
- DOC_EXAMPLES-$(CONFIG_SCALING_VIDEO_EXAMPLE)     += scaling_video
- DOC_EXAMPLES-$(CONFIG_TRANSCODE_AAC_EXAMPLE)     += transcode_aac
- DOC_EXAMPLES-$(CONFIG_TRANSCODING_EXAMPLE)       += transcoding
- 
- DOC_EXAMPLES       := $(DOC_EXAMPLES-yes:%=doc/examples/%$(PROGSSUF)$(EXESUF))
- ALL_DOC_EXAMPLES   := $(DOC_EXAMPLES) $(DOC_EXAMPLES-:%=doc/examples/%$(PROGSSUF)$(EXESUF))
- ALL_DOC_EXAMPLES_G := $(DOC_EXAMPLES) $(DOC_EXAMPLES-:%=doc/examples/%$(PROGSSUF)_g$(EXESUF))
- PROGS              += $(DOC_EXAMPLES)
- 
 -all: $(DOCS)
 +all-$(CONFIG_DOC): doc
 +
 +doc: documentation
  
  apidoc: doc/doxy/html
  documentation: $(DOCS)
  
- examples: $(DOC_EXAMPLES)
- 
 -TEXIDEP = awk '/^@include/ { printf "$@: $(@D)/%s\n", $$2 }' <$< >$(@:%=%.d)
 +TEXIDEP = perl $(SRC_PATH)/doc/texidep.pl $(SRC_PATH) $< $@ >$(@:%=%.d)
 +
 +doc/%.txt: TAG = TXT
 +doc/%.txt: doc/%.texi
 +	$(Q)$(TEXIDEP)
 +	$(M)makeinfo --force --no-headers -o $@ $< 2>/dev/null
  
  GENTEXI  = format codec
  GENTEXI := $(GENTEXI:%=doc/avoptions_%.texi)
@@@ -87,69 -33,34 +58,67 @@@ $(GENTEXI): doc/avoptions_%.texi: doc/p
  	$(M)doc/print_options $* > $@
  
  doc/%.html: TAG = HTML
 -doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.init
 +doc/%-all.html: TAG = HTML
 +
 +ifdef HAVE_MAKEINFO_HTML
 +doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.pm $(GENTEXI)
  	$(Q)$(TEXIDEP)
 -	$(M)texi2html -I doc -monolithic --init-file $(SRC_PATH)/doc/t2h.init --output $@ $<
 +	$(M)makeinfo --html -I doc --no-split -D config-not-all --init-file=$(SRC_PATH)/doc/t2h.pm --output $@ $<
 +
 +doc/%-all.html: doc/%.texi $(SRC_PATH)/doc/t2h.pm $(GENTEXI)
 +	$(Q)$(TEXIDEP)
 +	$(M)makeinfo --html -I doc --no-split -D config-all --init-file=$(SRC_PATH)/doc/t2h.pm --output $@ $<
 +else
 +doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.init $(GENTEXI)
 +	$(Q)$(TEXIDEP)
 +	$(M)texi2html -I doc -monolithic --D=config-not-all --init-file $(SRC_PATH)/doc/t2h.init --output $@ $<
 +
 +doc/%-all.html: doc/%.texi $(SRC_PATH)/doc/t2h.init $(GENTEXI)
 +	$(Q)$(TEXIDEP)
 +	$(M)texi2html -I doc -monolithic --D=config-all --init-file $(SRC_PATH)/doc/t2h.init --output $@ $<
 +endif
  
  doc/%.pod: TAG = POD
 -doc/%.pod: doc/%.texi $(SRC_PATH)/doc/texi2pod.pl
 +doc/%.pod: doc/%.texi $(SRC_PATH)/doc/texi2pod.pl $(GENTEXI)
 +	$(Q)$(TEXIDEP)
 +	$(M)perl $(SRC_PATH)/doc/texi2pod.pl -Dconfig-not-all=yes -Idoc $< $@
 +
 +doc/%-all.pod: TAG = POD
 +doc/%-all.pod: doc/%.texi $(SRC_PATH)/doc/texi2pod.pl $(GENTEXI)
  	$(Q)$(TEXIDEP)
 -	$(M)$(SRC_PATH)/doc/texi2pod.pl -Idoc $< $@
 +	$(M)perl $(SRC_PATH)/doc/texi2pod.pl -Dconfig-all=yes -Idoc $< $@
  
 -doc/%.1: TAG = MAN
 -doc/%.1: doc/%.pod
 -	$(M)pod2man --section=1 --center=" " --release=" " $< > $@
 +doc/%.1 doc/%.3: TAG = MAN
 +doc/%.1: doc/%.pod $(GENTEXI)
 +	$(M)pod2man --section=1 --center=" " --release=" " --date=" " $< > $@
 +doc/%.3: doc/%.pod $(GENTEXI)
 +	$(M)pod2man --section=3 --center=" " --release=" " --date=" " $< > $@
  
  $(DOCS) doc/doxy/html: | doc/
- $(DOC_EXAMPLES:%$(EXESUF)=%.o): | doc/examples
- OBJDIRS += doc/examples
  
- DOXY_INPUT      = $(INSTHEADERS) $(DOC_EXAMPLES:%$(EXESUF)=%.c)
 -DOXY_INPUT      = $(addprefix $(SRC_PATH)/, $(INSTHEADERS))
 -DOXY_TEMPLATES  = doxy_stylesheet.css footer.html header.html
 -DOXY_TEMPLATES := $(addprefix $(SRC_PATH)/doc/doxy/, $(DOXY_TEMPLATES))
++DOXY_INPUT      = $(INSTHEADERS)
 +DOXY_INPUT_DEPS = $(addprefix $(SRC_PATH)/, $(DOXY_INPUT)) ffbuild/config.mak
 +
 +doc/doxy/html: TAG = DOXY
 +doc/doxy/html: $(SRC_PATH)/doc/Doxyfile $(SRC_PATH)/doc/doxy-wrapper.sh $(DOXY_INPUT_DEPS)
 +	$(M)OUT_DIR=$$PWD/doc/doxy; cd $(SRC_PATH); ./doc/doxy-wrapper.sh $$OUT_DIR $< $(DOXYGEN) $(DOXY_INPUT);
 +
 +install-doc: install-html install-man
  
 -doc/doxy/html: $(SRC_PATH)/doc/Doxyfile $(DOXY_INPUT) $(DOXY_TEMPLATES)
 -	$(M)$(SRC_PATH)/doc/doxy-wrapper.sh $(SRC_PATH) $< $(DOXY_INPUT)
 +install-html:
  
 -install-progs-$(CONFIG_POD2MAN): install-man
 -install-progs-$(CONFIG_TEXI2HTML): install-doc
 +install-man:
  
 -install-doc: $(HTMLPAGES)
 +ifdef CONFIG_HTMLPAGES
 +install-progs-$(CONFIG_DOC): install-html
 +
 +install-html: $(HTMLPAGES)
  	$(Q)mkdir -p "$(DOCDIR)"
  	$(INSTALL) -m 644 $(HTMLPAGES) "$(DOCDIR)"
 +endif
 +
 +ifdef CONFIG_MANPAGES
 +install-progs-$(CONFIG_DOC): install-man
  
  install-man: $(MANPAGES)
  	$(Q)mkdir -p "$(MANDIR)/man1"
@@@ -166,21 -72,11 +135,17 @@@ uninstall-html
  	$(RM) -r "$(DOCDIR)"
  
  uninstall-man:
 -	$(RM) $(addprefix "$(MANDIR)/man1/",$(ALLMANPAGES))
 +	$(RM) $(addprefix "$(MANDIR)/man1/",$(AVPROGS-yes:%=%.1) $(AVPROGS-yes:%=%-all.1) $(COMPONENTS-yes:%=%.1))
 +	$(RM) $(addprefix "$(MANDIR)/man3/",$(LIBRARIES-yes:%=%.3))
 +
 +clean:: docclean
 +
 +distclean:: docclean
 +	$(RM) doc/config.texi
  
- examplesclean:
- 	$(RM) $(ALL_DOC_EXAMPLES) $(ALL_DOC_EXAMPLES_G)
- 	$(RM) $(CLEANSUFFIXES:%=doc/examples/%)
- 
- docclean: examplesclean
 -clean::
++docclean::
  	$(RM) $(CLEANSUFFIXES:%=doc/%)
 -	$(RM) doc/*.html doc/*.pod doc/*.1 doc/avoptions_*.texi
 +	$(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 doc/*.3 doc/avoptions_*.texi
  	$(RM) -r doc/doxy/html
  
  -include $(wildcard $(DOCS:%=%.d))
diff --cc doc/examples/Makefile
index 6428154c51,b24ca28aff..277d4b0a18
--- a/doc/examples/Makefile
+++ b/doc/examples/Makefile
@@@ -1,50 -1,26 +1,44 @@@
- # use pkg-config for getting CFLAGS and LDLIBS
- FFMPEG_LIBS=    libavdevice                        \
-                 libavformat                        \
-                 libavfilter                        \
-                 libavcodec                         \
-                 libswresample                      \
-                 libswscale                         \
-                 libavutil                          \
- 
- CFLAGS += -Wall -g
- CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
- LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
- 
- EXAMPLES=       avio_dir_cmd                       \
-                 avio_reading                       \
-                 decode_audio                       \
-                 decode_video                       \
-                 demuxing_decoding                  \
-                 encode_audio                       \
-                 encode_video                       \
-                 extract_mvs                        \
-                 filtering_video                    \
-                 filtering_audio                    \
-                 http_multiclient                   \
-                 hw_decode                          \
-                 metadata                           \
-                 muxing                             \
-                 remuxing                           \
-                 resampling_audio                   \
-                 scaling_video                      \
-                 transcode_aac                      \
-                 transcoding                        \
- 
- OBJS=$(addsuffix .o,$(EXAMPLES))
- 
- # the following examples make explicit use of the math library
- avcodec:           LDLIBS += -lm
- encode_audio:      LDLIBS += -lm
- muxing:            LDLIBS += -lm
- resampling_audio:  LDLIBS += -lm
- 
- .phony: all clean-test clean
- 
- all: $(OBJS) $(EXAMPLES)
- 
- clean-test:
- 	$(RM) test*.pgm test.h264 test.mp2 test.sw test.mpg
 -DOC_EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE)     += decode_audio
 -DOC_EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE)     += decode_video
 -DOC_EXAMPLES-$(CONFIG_ENCODE_AUDIO_EXAMPLE)     += encode_audio
 -DOC_EXAMPLES-$(CONFIG_ENCODE_VIDEO_EXAMPLE)     += encode_video
 -DOC_EXAMPLES-$(CONFIG_FILTER_AUDIO_EXAMPLE)     += filter_audio
 -DOC_EXAMPLES-$(CONFIG_METADATA_EXAMPLE)         += metadata
 -DOC_EXAMPLES-$(CONFIG_OUTPUT_EXAMPLE)           += output
 -DOC_EXAMPLES-$(CONFIG_QSVDEC_EXAMPLE)           += qsvdec
 -DOC_EXAMPLES-$(CONFIG_TRANSCODE_AAC_EXAMPLE)    += transcode_aac
--
- clean: clean-test
- 	$(RM) $(EXAMPLES) $(OBJS)
 -DOC_EXAMPLES     := $(DOC_EXAMPLES-yes:%=doc/examples/%$(EXESUF))
 -ALL_DOC_EXAMPLES := $(DOC_EXAMPLES) $(DOC_EXAMPLES-:%=doc/examples/%$(EXESUF))
 -PROGS            += $(DOC_EXAMPLES)
++DOC_EXAMPLES-$(CONFIG_AVIO_DIR_CMD_EXAMPLE)      += avio_dir_cmd
++DOC_EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE)      += avio_reading
++DOC_EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE)      += decode_audio
++DOC_EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE)      += decode_video
++DOC_EXAMPLES-$(CONFIG_DEMUXING_DECODING_EXAMPLE) += demuxing_decoding
++DOC_EXAMPLES-$(CONFIG_ENCODE_AUDIO_EXAMPLE)      += encode_audio
++DOC_EXAMPLES-$(CONFIG_ENCODE_VIDEO_EXAMPLE)      += encode_video
++DOC_EXAMPLES-$(CONFIG_EXTRACT_MVS_EXAMPLE)       += extract_mvs
++DOC_EXAMPLES-$(CONFIG_FILTER_AUDIO_EXAMPLE)      += filter_audio
++DOC_EXAMPLES-$(CONFIG_FILTERING_AUDIO_EXAMPLE)   += filtering_audio
++DOC_EXAMPLES-$(CONFIG_FILTERING_VIDEO_EXAMPLE)   += filtering_video
++DOC_EXAMPLES-$(CONFIG_HTTP_MULTICLIENT_EXAMPLE)  += http_multiclient
++DOC_EXAMPLES-$(CONFIG_HW_DECODE_EXAMPLE)         += hw_decode
++DOC_EXAMPLES-$(CONFIG_METADATA_EXAMPLE)          += metadata
++DOC_EXAMPLES-$(CONFIG_MUXING_EXAMPLE)            += muxing
++DOC_EXAMPLES-$(CONFIG_QSVDEC_EXAMPLE)            += qsvdec
++DOC_EXAMPLES-$(CONFIG_REMUXING_EXAMPLE)          += remuxing
++DOC_EXAMPLES-$(CONFIG_RESAMPLING_AUDIO_EXAMPLE)  += resampling_audio
++DOC_EXAMPLES-$(CONFIG_SCALING_VIDEO_EXAMPLE)     += scaling_video
++DOC_EXAMPLES-$(CONFIG_TRANSCODE_AAC_EXAMPLE)     += transcode_aac
++DOC_EXAMPLES-$(CONFIG_TRANSCODING_EXAMPLE)       += transcoding
++
++DOC_EXAMPLES       := $(DOC_EXAMPLES-yes:%=doc/examples/%$(PROGSSUF)$(EXESUF))
++ALL_DOC_EXAMPLES   := $(DOC_EXAMPLES) $(DOC_EXAMPLES-:%=doc/examples/%$(PROGSSUF)$(EXESUF))
++ALL_DOC_EXAMPLES_G := $(DOC_EXAMPLES) $(DOC_EXAMPLES-:%=doc/examples/%$(PROGSSUF)_g$(EXESUF))
++PROGS              += $(DOC_EXAMPLES)
++
++EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/README
++EXAMPLE_MAKEFILE := $(SRC_PATH)/doc/examples/Makefile
+ 
+ examples: $(DOC_EXAMPLES)
+ 
+ $(DOC_EXAMPLES:%$(EXESUF)=%.o): | doc/examples
+ OBJDIRS += doc/examples
+ 
 -DOXY_INPUT += $(addprefix $(SRC_PATH)/, $(DOC_EXAMPLES:%$(EXESUF)=%.c))
++DOXY_INPUT += $(DOC_EXAMPLES:%$(EXESUF)=%.c)
+ 
 -clean::
 -	$(RM) $(ALL_DOC_EXAMPLES)
++examplesclean:
++	$(RM) $(ALL_DOC_EXAMPLES) $(ALL_DOC_EXAMPLES_G)
+ 	$(RM) $(CLEANSUFFIXES:%=doc/examples/%)
+ 
++docclean:: examplesclean
++
+ .PHONY: examples
diff --cc doc/examples/Makefile.example
index 0000000000,0000000000..6428154c51
new file mode 100644
--- /dev/null
+++ b/doc/examples/Makefile.example
@@@ -1,0 -1,0 +1,50 @@@
++# use pkg-config for getting CFLAGS and LDLIBS
++FFMPEG_LIBS=    libavdevice                        \
++                libavformat                        \
++                libavfilter                        \
++                libavcodec                         \
++                libswresample                      \
++                libswscale                         \
++                libavutil                          \
++
++CFLAGS += -Wall -g
++CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
++LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
++
++EXAMPLES=       avio_dir_cmd                       \
++                avio_reading                       \
++                decode_audio                       \
++                decode_video                       \
++                demuxing_decoding                  \
++                encode_audio                       \
++                encode_video                       \
++                extract_mvs                        \
++                filtering_video                    \
++                filtering_audio                    \
++                http_multiclient                   \
++                hw_decode                          \
++                metadata                           \
++                muxing                             \
++                remuxing                           \
++                resampling_audio                   \
++                scaling_video                      \
++                transcode_aac                      \
++                transcoding                        \
++
++OBJS=$(addsuffix .o,$(EXAMPLES))
++
++# the following examples make explicit use of the math library
++avcodec:           LDLIBS += -lm
++encode_audio:      LDLIBS += -lm
++muxing:            LDLIBS += -lm
++resampling_audio:  LDLIBS += -lm
++
++.phony: all clean-test clean
++
++all: $(OBJS) $(EXAMPLES)
++
++clean-test:
++	$(RM) test*.pgm test.h264 test.mp2 test.sw test.mpg
++
++clean: clean-test
++	$(RM) $(EXAMPLES) $(OBJS)



More information about the ffmpeg-cvslog mailing list