--- This is what a moderately clean integration of complex examples into the build system could look like. The naming is clearly suboptimal, there may be further kinks I overlooked. Possibly some more refactoring could be done beforehand.
Makefile | 11 ++++++++--- configure | 11 ++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 906bd86..a8f3ac2 100644 --- a/Makefile +++ b/Makefile @@ -56,11 +56,15 @@ COMPILE_S = $(call COMPILE,AS) %.c %.h: TAG = GEN +DOC_EXAMPLES-$(CONFIG_MP3_AAC) += doc/examples/mp3_aac +ALL_DOC_EXAMPLES += doc/examples/mp3_aac + PROGS-$(CONFIG_AVCONV) += avconv PROGS-$(CONFIG_AVPLAY) += avplay PROGS-$(CONFIG_AVPROBE) += avprobe PROGS-$(CONFIG_AVSERVER) += avserver +DOC_EXAMPLES := $(DOC_EXAMPLES-yes:%=%$(EXESUF)) PROGS := $(PROGS-yes:%=%$(EXESUF)) OBJS-avconv = avconv_opt.o avconv_filter.o TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64 @@ -93,6 +97,7 @@ FF_EXTRALIBS := $(FFEXTRALIBS) FF_DEP_LIBS := $(DEP_LIBS) all: $(PROGS) +examples: $(DOC_EXAMPLES) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS) $(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS) @@ -136,9 +141,9 @@ $(1)$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1)) -include $$(OBJS-$(1):.o=.d) endef -$(foreach P,$(PROGS-yes),$(eval $(call DOPROG,$(P)))) +$(foreach P,$(DOC_EXAMPLES-yes) $(PROGS-yes),$(eval $(call DOPROG,$(P)))) -$(PROGS): %$(EXESUF): %.o $(FF_DEP_LIBS) +$(DOC_EXAMPLES) $(PROGS): %$(EXESUF): %.o $(FF_DEP_LIBS) $(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) OBJDIRS += tools @@ -186,7 +191,7 @@ uninstall-data: $(RM) -r "$(DATADIR)" clean:: - $(RM) $(ALLPROGS) + $(RM) $(ALLPROGS) $(ALL_DOC_EXAMPLES) $(RM) $(CLEANSUFFIXES) $(RM) $(CLEANSUFFIXES:%=tools/%) $(RM) -rf coverage.info lcov diff --git a/configure b/configure index 4aa66c0..5fd2f28 100755 --- a/configure +++ b/configure @@ -1041,6 +1041,10 @@ COMPONENT_LIST=" protocols " +EXAMPLE_LIST=" + mp3_aac +" + EXTERNAL_LIBRARY_LIST=" avisynth bzlib @@ -1102,6 +1106,7 @@ PROGRAM_LIST=" CONFIG_LIST=" $COMPONENT_LIST + $EXAMPLE_LIST $EXTERNAL_LIBRARY_LIST $HWACCEL_LIST $LIBRARY_LIST @@ -1959,6 +1964,10 @@ avserver_deps="avformat fork !shared" avserver_select="ffm_muxer rtp_protocol rtsp_demuxer" avserver_extralibs='$ldl' +# examples + +mp3_aac_deps="avcodec avformat avresample" + doc_deps="texi2html" # default parameters @@ -1999,7 +2008,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 -- 1.7.9.5 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel