---
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
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel