Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
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@gmail.com>
- Loading branch information
Showing
with
100 additions
and 91 deletions.
- +4 −4 Makefile
- +2 −37 doc/Makefile
- +44 −50 doc/examples/Makefile
- +50 −0 doc/examples/Makefile.example
| @@ -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 |
| @@ -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) |
/usr/bin/install on macOS doesn't support
-T: