diff --git a/Makefile b/Makefile index 3c7987ab1e..5b8532a2f5 100644 --- a/Makefile +++ b/Makefile @@ -130,6 +130,8 @@ endef $(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D)))) +include $(SRC_PATH)/doc/Makefile + define DOPROG OBJS-$(1) += $(1).o $(EXEOBJS) $(OBJS-$(1)-yes) $(1)$(EXESUF): $$(OBJS-$(1)) @@ -203,7 +205,6 @@ config: check: all alltools checkheaders examples testprogs fate -include $(SRC_PATH)/doc/Makefile include $(SRC_PATH)/tests/Makefile $(sort $(OBJDIRS)): diff --git a/configure b/configure index c85d64bb3d..ed1c500778 100755 --- a/configure +++ b/configure @@ -1041,6 +1041,10 @@ COMPONENT_LIST=" protocols " +EXAMPLE_LIST=" + output_example +" + EXTERNAL_LIBRARY_LIST=" avisynth bzlib @@ -1102,6 +1106,7 @@ PROGRAM_LIST=" CONFIG_LIST=" $COMPONENT_LIST + $EXAMPLE_LIST $EXTERNAL_LIBRARY_LIST $HWACCEL_LIST $LIBRARY_LIST @@ -1944,6 +1949,9 @@ ocv_filter_deps="libopencv" scale_filter_deps="swscale" yadif_filter_deps="gpl" +# examples +output_example_deps="avcodec avformat avutil swscale" + # libraries avcodec_deps="avutil" avdevice_deps="avutil avcodec avformat" @@ -2002,7 +2010,7 @@ target_os_default=$(tolower $(uname -s)) host_os=$target_os_default # configurable options -enable $LIBRARY_LIST $PROGRAM_LIST +enable $EXAMPLE_LIST $LIBRARY_LIST $PROGRAM_LIST enable asm enable debug diff --git a/doc/Makefile b/doc/Makefile index 3ab09402cf..58fef0b798 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -15,11 +15,20 @@ DOCS-$(CONFIG_PERL) += $(MANPAGES) $(PODPAGES) DOCS-$(CONFIG_TEXI2HTML) += $(HTMLPAGES) DOCS = $(DOCS-yes) +DOC_EXAMPLES-$(CONFIG_OUTPUT_EXAMPLE) += output +ALL_DOC_EXAMPLES = output + +DOC_EXAMPLES := $(DOC_EXAMPLES-yes:%=doc/examples/%$(EXESUF)) +ALL_DOC_EXAMPLES := $(ALL_DOC_EXAMPLES:%=doc/examples/%$(EXESUF)) +PROGS += $(DOC_EXAMPLES) + all: $(DOCS) apidoc: doc/doxy/html documentation: $(DOCS) +examples: $(DOC_EXAMPLES) + TEXIDEP = awk '/^@include/ { printf "$@: $(@D)/%s\n", $$2 }' <$< >$(@:%=%.d) GENTEXI = format codec @@ -44,6 +53,8 @@ doc/%.1: doc/%.pod $(GENTEXI) $(M)pod2man --section=1 --center=" " --release=" " $< > $@ $(DOCS) doc/doxy/html: | doc/ +$(DOC_EXAMPLES:%=%.o): | doc/examples +OBJDIRS += doc/examples doc/doxy/html: $(SRC_PATH)/doc/Doxyfile $(INSTHEADERS) $(M)$(SRC_PATH)/doc/doxy-wrapper.sh $(SRC_PATH) $^ @@ -68,7 +79,9 @@ uninstall-man: $(RM) $(addprefix "$(MANDIR)/man1/",$(ALLMANPAGES)) clean:: - $(RM) doc/*.html doc/*.pod doc/*.1 $(CLEANSUFFIXES:%=doc/%) doc/avoptions_*.texi + $(RM) $(ALL_DOC_EXAMPLES) + $(RM) $(CLEANSUFFIXES:%=doc/%) $(CLEANSUFFIXES:%=doc/examples/%) + $(RM) doc/*.html doc/*.pod doc/*.1 doc/avoptions_*.texi $(RM) -r doc/doxy/html -include $(wildcard $(DOCS:%=%.d)) diff --git a/libavformat/output-example.c b/doc/examples/output.c similarity index 99% rename from libavformat/output-example.c rename to doc/examples/output.c index eb8cb7d8e3..2cd11f2ddc 100644 --- a/libavformat/output-example.c +++ b/doc/examples/output.c @@ -24,7 +24,7 @@ * @file * libavformat API example. * - * @example libavformat/output-example.c + * @example doc/examples/output.c * Output a media file in any supported libavformat format. * The default codecs are used. */ diff --git a/libavformat/Makefile b/libavformat/Makefile index 71350719fb..c66b4c6833 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -392,7 +392,6 @@ SKIPHEADERS-$(CONFIG_FFRTMPCRYPT_PROTOCOL) += rtmpdh.h SKIPHEADERS-$(CONFIG_NETWORK) += network.h rtsp.h EXAMPLES = metadata \ - output \ TESTPROGS = seek \ srtp \ @@ -404,6 +403,3 @@ TOOLS = aviocat \ ismindex \ pktdumper \ probetest \ - -$(SUBDIR)output-example$(EXESUF): ELIBS = $(patsubst %,$(LD_LIB),swscale avutil) -$(SUBDIR)output-example$(EXESUF): $(call PATH_LIBNAME,swscale)