xref: /aosp_15_r20/external/libvpx/examples.mk (revision fb1b10ab9aebc7c7068eedab379b749d7e3900be)
1*fb1b10abSAndroid Build Coastguard Worker##
2*fb1b10abSAndroid Build Coastguard Worker##  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3*fb1b10abSAndroid Build Coastguard Worker##
4*fb1b10abSAndroid Build Coastguard Worker##  Use of this source code is governed by a BSD-style license
5*fb1b10abSAndroid Build Coastguard Worker##  that can be found in the LICENSE file in the root of the source
6*fb1b10abSAndroid Build Coastguard Worker##  tree. An additional intellectual property rights grant can be found
7*fb1b10abSAndroid Build Coastguard Worker##  in the file PATENTS.  All contributing project authors may
8*fb1b10abSAndroid Build Coastguard Worker##  be found in the AUTHORS file in the root of the source tree.
9*fb1b10abSAndroid Build Coastguard Worker##
10*fb1b10abSAndroid Build Coastguard Worker
11*fb1b10abSAndroid Build Coastguard WorkerLIBYUV_SRCS +=  third_party/libyuv/include/libyuv/basic_types.h  \
12*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/include/libyuv/convert.h \
13*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/include/libyuv/convert_argb.h \
14*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/include/libyuv/convert_from.h \
15*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/include/libyuv/cpu_id.h  \
16*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/include/libyuv/planar_functions.h  \
17*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/include/libyuv/rotate.h  \
18*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/include/libyuv/row.h  \
19*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/include/libyuv/scale.h  \
20*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/include/libyuv/scale_row.h  \
21*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/cpu_id.cc \
22*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/planar_functions.cc \
23*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/row_any.cc \
24*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/row_common.cc \
25*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/row_gcc.cc \
26*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/row_msa.cc \
27*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/row_neon.cc \
28*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/row_neon64.cc \
29*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/row_win.cc \
30*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/scale.cc \
31*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/scale_any.cc \
32*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/scale_common.cc \
33*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/scale_gcc.cc \
34*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/scale_msa.cc \
35*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/scale_neon.cc \
36*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/scale_neon64.cc \
37*fb1b10abSAndroid Build Coastguard Worker                third_party/libyuv/source/scale_win.cc \
38*fb1b10abSAndroid Build Coastguard Worker
39*fb1b10abSAndroid Build Coastguard WorkerLIBWEBM_COMMON_SRCS += third_party/libwebm/common/hdr_util.cc \
40*fb1b10abSAndroid Build Coastguard Worker                       third_party/libwebm/common/hdr_util.h \
41*fb1b10abSAndroid Build Coastguard Worker                       third_party/libwebm/common/webmids.h
42*fb1b10abSAndroid Build Coastguard Worker
43*fb1b10abSAndroid Build Coastguard WorkerLIBWEBM_MUXER_SRCS += third_party/libwebm/mkvmuxer/mkvmuxer.cc \
44*fb1b10abSAndroid Build Coastguard Worker                      third_party/libwebm/mkvmuxer/mkvmuxerutil.cc \
45*fb1b10abSAndroid Build Coastguard Worker                      third_party/libwebm/mkvmuxer/mkvwriter.cc \
46*fb1b10abSAndroid Build Coastguard Worker                      third_party/libwebm/mkvmuxer/mkvmuxer.h \
47*fb1b10abSAndroid Build Coastguard Worker                      third_party/libwebm/mkvmuxer/mkvmuxertypes.h \
48*fb1b10abSAndroid Build Coastguard Worker                      third_party/libwebm/mkvmuxer/mkvmuxerutil.h \
49*fb1b10abSAndroid Build Coastguard Worker                      third_party/libwebm/mkvparser/mkvparser.h \
50*fb1b10abSAndroid Build Coastguard Worker                      third_party/libwebm/mkvmuxer/mkvwriter.h
51*fb1b10abSAndroid Build Coastguard Worker
52*fb1b10abSAndroid Build Coastguard WorkerLIBWEBM_PARSER_SRCS = third_party/libwebm/mkvparser/mkvparser.cc \
53*fb1b10abSAndroid Build Coastguard Worker                      third_party/libwebm/mkvparser/mkvreader.cc \
54*fb1b10abSAndroid Build Coastguard Worker                      third_party/libwebm/mkvparser/mkvparser.h \
55*fb1b10abSAndroid Build Coastguard Worker                      third_party/libwebm/mkvparser/mkvreader.h
56*fb1b10abSAndroid Build Coastguard Worker
57*fb1b10abSAndroid Build Coastguard Worker# Add compile flags and include path for libwebm sources.
58*fb1b10abSAndroid Build Coastguard Workerifeq ($(CONFIG_WEBM_IO),yes)
59*fb1b10abSAndroid Build Coastguard Worker  CXXFLAGS     += -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS
60*fb1b10abSAndroid Build Coastguard Worker  $(BUILD_PFX)third_party/libwebm/%.cc.o: CXXFLAGS += $(LIBWEBM_CXXFLAGS)
61*fb1b10abSAndroid Build Coastguard Worker  INC_PATH-yes += $(SRC_PATH_BARE)/third_party/libwebm
62*fb1b10abSAndroid Build Coastguard Workerendif
63*fb1b10abSAndroid Build Coastguard Worker
64*fb1b10abSAndroid Build Coastguard Worker
65*fb1b10abSAndroid Build Coastguard Worker# List of examples to build. UTILS are tools meant for distribution
66*fb1b10abSAndroid Build Coastguard Worker# while EXAMPLES demonstrate specific portions of the API.
67*fb1b10abSAndroid Build Coastguard WorkerUTILS-$(CONFIG_DECODERS)    += vpxdec.c
68*fb1b10abSAndroid Build Coastguard Workervpxdec.SRCS                 += md5_utils.c md5_utils.h
69*fb1b10abSAndroid Build Coastguard Workervpxdec.SRCS                 += vpx_ports/compiler_attributes.h
70*fb1b10abSAndroid Build Coastguard Workervpxdec.SRCS                 += vpx_ports/mem_ops.h
71*fb1b10abSAndroid Build Coastguard Workervpxdec.SRCS                 += vpx_ports/mem_ops_aligned.h
72*fb1b10abSAndroid Build Coastguard Workervpxdec.SRCS                 += vpx_ports/vpx_timer.h
73*fb1b10abSAndroid Build Coastguard Workervpxdec.SRCS                 += vpx/vpx_integer.h
74*fb1b10abSAndroid Build Coastguard Workervpxdec.SRCS                 += args.c args.h
75*fb1b10abSAndroid Build Coastguard Workervpxdec.SRCS                 += ivfdec.c ivfdec.h
76*fb1b10abSAndroid Build Coastguard Workervpxdec.SRCS                 += y4minput.c y4minput.h
77*fb1b10abSAndroid Build Coastguard Workervpxdec.SRCS                 += tools_common.c tools_common.h
78*fb1b10abSAndroid Build Coastguard Workervpxdec.SRCS                 += y4menc.c y4menc.h
79*fb1b10abSAndroid Build Coastguard Workerifeq ($(CONFIG_LIBYUV),yes)
80*fb1b10abSAndroid Build Coastguard Worker  vpxdec.SRCS                 += $(LIBYUV_SRCS)
81*fb1b10abSAndroid Build Coastguard Worker  $(BUILD_PFX)third_party/libyuv/%.cc.o: CXXFLAGS += ${LIBYUV_CXXFLAGS}
82*fb1b10abSAndroid Build Coastguard Workerendif
83*fb1b10abSAndroid Build Coastguard Workerifeq ($(CONFIG_WEBM_IO),yes)
84*fb1b10abSAndroid Build Coastguard Worker  vpxdec.SRCS                 += $(LIBWEBM_PARSER_SRCS)
85*fb1b10abSAndroid Build Coastguard Worker  vpxdec.SRCS                 += webmdec.cc webmdec.h
86*fb1b10abSAndroid Build Coastguard Workerendif
87*fb1b10abSAndroid Build Coastguard Workervpxdec.GUID                  = BA5FE66F-38DD-E034-F542-B1578C5FB950
88*fb1b10abSAndroid Build Coastguard Workervpxdec.DESCRIPTION           = Full featured decoder
89*fb1b10abSAndroid Build Coastguard WorkerUTILS-$(CONFIG_ENCODERS)    += vpxenc.c
90*fb1b10abSAndroid Build Coastguard Workervpxenc.SRCS                 += args.c args.h y4minput.c y4minput.h vpxenc.h
91*fb1b10abSAndroid Build Coastguard Workervpxenc.SRCS                 += ivfdec.c ivfdec.h
92*fb1b10abSAndroid Build Coastguard Workervpxenc.SRCS                 += ivfenc.c ivfenc.h
93*fb1b10abSAndroid Build Coastguard Workervpxenc.SRCS                 += rate_hist.c rate_hist.h
94*fb1b10abSAndroid Build Coastguard Workervpxenc.SRCS                 += tools_common.c tools_common.h
95*fb1b10abSAndroid Build Coastguard Workervpxenc.SRCS                 += warnings.c warnings.h
96*fb1b10abSAndroid Build Coastguard Workervpxenc.SRCS                 += vpx_ports/mem_ops.h
97*fb1b10abSAndroid Build Coastguard Workervpxenc.SRCS                 += vpx_ports/mem_ops_aligned.h
98*fb1b10abSAndroid Build Coastguard Workervpxenc.SRCS                 += vpx_ports/vpx_timer.h
99*fb1b10abSAndroid Build Coastguard Workervpxenc.SRCS                 += vpxstats.c vpxstats.h
100*fb1b10abSAndroid Build Coastguard Workerifeq ($(CONFIG_LIBYUV),yes)
101*fb1b10abSAndroid Build Coastguard Worker  vpxenc.SRCS                 += $(LIBYUV_SRCS)
102*fb1b10abSAndroid Build Coastguard Workerendif
103*fb1b10abSAndroid Build Coastguard Workerifeq ($(CONFIG_WEBM_IO),yes)
104*fb1b10abSAndroid Build Coastguard Worker  vpxenc.SRCS                 += $(LIBWEBM_COMMON_SRCS)
105*fb1b10abSAndroid Build Coastguard Worker  vpxenc.SRCS                 += $(LIBWEBM_MUXER_SRCS)
106*fb1b10abSAndroid Build Coastguard Worker  vpxenc.SRCS                 += $(LIBWEBM_PARSER_SRCS)
107*fb1b10abSAndroid Build Coastguard Worker  vpxenc.SRCS                 += webmenc.cc webmenc.h
108*fb1b10abSAndroid Build Coastguard Workerendif
109*fb1b10abSAndroid Build Coastguard Workervpxenc.GUID                  = 548DEC74-7A15-4B2B-AFC3-AA102E7C25C1
110*fb1b10abSAndroid Build Coastguard Workervpxenc.DESCRIPTION           = Full featured encoder
111*fb1b10abSAndroid Build Coastguard Worker
112*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_VP9_ENCODER)      += vp9_spatial_svc_encoder.c
113*fb1b10abSAndroid Build Coastguard Workervp9_spatial_svc_encoder.SRCS        += args.c args.h
114*fb1b10abSAndroid Build Coastguard Workervp9_spatial_svc_encoder.SRCS        += ivfenc.c ivfenc.h
115*fb1b10abSAndroid Build Coastguard Workervp9_spatial_svc_encoder.SRCS        += y4minput.c y4minput.h
116*fb1b10abSAndroid Build Coastguard Workervp9_spatial_svc_encoder.SRCS        += tools_common.c tools_common.h
117*fb1b10abSAndroid Build Coastguard Workervp9_spatial_svc_encoder.SRCS        += video_common.h
118*fb1b10abSAndroid Build Coastguard Workervp9_spatial_svc_encoder.SRCS        += video_writer.h video_writer.c
119*fb1b10abSAndroid Build Coastguard Workervp9_spatial_svc_encoder.SRCS        += vpxstats.c vpxstats.h
120*fb1b10abSAndroid Build Coastguard Workervp9_spatial_svc_encoder.SRCS        += examples/svc_encodeframe.c
121*fb1b10abSAndroid Build Coastguard Workervp9_spatial_svc_encoder.SRCS        += examples/svc_context.h
122*fb1b10abSAndroid Build Coastguard Workervp9_spatial_svc_encoder.GUID        = 4A38598D-627D-4505-9C7B-D4020C84100D
123*fb1b10abSAndroid Build Coastguard Workervp9_spatial_svc_encoder.DESCRIPTION = VP9 Spatial SVC Encoder
124*fb1b10abSAndroid Build Coastguard Worker
125*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_ENCODERS)          += vpx_temporal_svc_encoder.c
126*fb1b10abSAndroid Build Coastguard Workervpx_temporal_svc_encoder.SRCS        += ivfenc.c ivfenc.h
127*fb1b10abSAndroid Build Coastguard Workervpx_temporal_svc_encoder.SRCS        += y4minput.c y4minput.h
128*fb1b10abSAndroid Build Coastguard Workervpx_temporal_svc_encoder.SRCS        += tools_common.c tools_common.h
129*fb1b10abSAndroid Build Coastguard Workervpx_temporal_svc_encoder.SRCS        += video_common.h
130*fb1b10abSAndroid Build Coastguard Workervpx_temporal_svc_encoder.SRCS        += video_writer.h video_writer.c
131*fb1b10abSAndroid Build Coastguard Workervpx_temporal_svc_encoder.GUID        = B18C08F2-A439-4502-A78E-849BE3D60947
132*fb1b10abSAndroid Build Coastguard Workervpx_temporal_svc_encoder.DESCRIPTION = Temporal SVC Encoder
133*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_DECODERS)        += simple_decoder.c
134*fb1b10abSAndroid Build Coastguard Workersimple_decoder.GUID                 = D3BBF1E9-2427-450D-BBFF-B2843C1D44CC
135*fb1b10abSAndroid Build Coastguard Workersimple_decoder.SRCS                += ivfdec.h ivfdec.c
136*fb1b10abSAndroid Build Coastguard Workersimple_decoder.SRCS                += y4minput.c y4minput.h
137*fb1b10abSAndroid Build Coastguard Workersimple_decoder.SRCS                += tools_common.h tools_common.c
138*fb1b10abSAndroid Build Coastguard Workersimple_decoder.SRCS                += video_common.h
139*fb1b10abSAndroid Build Coastguard Workersimple_decoder.SRCS                += video_reader.h video_reader.c
140*fb1b10abSAndroid Build Coastguard Workersimple_decoder.SRCS                += vpx_ports/mem_ops.h
141*fb1b10abSAndroid Build Coastguard Workersimple_decoder.SRCS                += vpx_ports/mem_ops_aligned.h
142*fb1b10abSAndroid Build Coastguard Workersimple_decoder.DESCRIPTION          = Simplified decoder loop
143*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_DECODERS)        += postproc.c
144*fb1b10abSAndroid Build Coastguard Workerpostproc.SRCS                      += ivfdec.h ivfdec.c
145*fb1b10abSAndroid Build Coastguard Workerpostproc.SRCS                      += y4minput.c y4minput.h
146*fb1b10abSAndroid Build Coastguard Workerpostproc.SRCS                      += tools_common.h tools_common.c
147*fb1b10abSAndroid Build Coastguard Workerpostproc.SRCS                      += video_common.h
148*fb1b10abSAndroid Build Coastguard Workerpostproc.SRCS                      += video_reader.h video_reader.c
149*fb1b10abSAndroid Build Coastguard Workerpostproc.SRCS                      += vpx_ports/mem_ops.h
150*fb1b10abSAndroid Build Coastguard Workerpostproc.SRCS                      += vpx_ports/mem_ops_aligned.h
151*fb1b10abSAndroid Build Coastguard Workerpostproc.GUID                       = 65E33355-F35E-4088-884D-3FD4905881D7
152*fb1b10abSAndroid Build Coastguard Workerpostproc.DESCRIPTION                = Decoder postprocessor control
153*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_DECODERS)        += decode_to_md5.c
154*fb1b10abSAndroid Build Coastguard Workerdecode_to_md5.SRCS                 += md5_utils.h md5_utils.c
155*fb1b10abSAndroid Build Coastguard Workerdecode_to_md5.SRCS                 += ivfdec.h ivfdec.c
156*fb1b10abSAndroid Build Coastguard Workerdecode_to_md5.SRCS                 += y4minput.c y4minput.h
157*fb1b10abSAndroid Build Coastguard Workerdecode_to_md5.SRCS                 += tools_common.h tools_common.c
158*fb1b10abSAndroid Build Coastguard Workerdecode_to_md5.SRCS                 += video_common.h
159*fb1b10abSAndroid Build Coastguard Workerdecode_to_md5.SRCS                 += video_reader.h video_reader.c
160*fb1b10abSAndroid Build Coastguard Workerdecode_to_md5.SRCS                 += vpx_ports/compiler_attributes.h
161*fb1b10abSAndroid Build Coastguard Workerdecode_to_md5.SRCS                 += vpx_ports/mem_ops.h
162*fb1b10abSAndroid Build Coastguard Workerdecode_to_md5.SRCS                 += vpx_ports/mem_ops_aligned.h
163*fb1b10abSAndroid Build Coastguard Workerdecode_to_md5.GUID                  = 59120B9B-2735-4BFE-B022-146CA340FE42
164*fb1b10abSAndroid Build Coastguard Workerdecode_to_md5.DESCRIPTION           = Frame by frame MD5 checksum
165*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_ENCODERS)     += simple_encoder.c
166*fb1b10abSAndroid Build Coastguard Workersimple_encoder.SRCS             += ivfenc.h ivfenc.c
167*fb1b10abSAndroid Build Coastguard Workersimple_encoder.SRCS             += y4minput.c y4minput.h
168*fb1b10abSAndroid Build Coastguard Workersimple_encoder.SRCS             += tools_common.h tools_common.c
169*fb1b10abSAndroid Build Coastguard Workersimple_encoder.SRCS             += video_common.h
170*fb1b10abSAndroid Build Coastguard Workersimple_encoder.SRCS             += video_writer.h video_writer.c
171*fb1b10abSAndroid Build Coastguard Workersimple_encoder.GUID              = 4607D299-8A71-4D2C-9B1D-071899B6FBFD
172*fb1b10abSAndroid Build Coastguard Workersimple_encoder.DESCRIPTION       = Simplified encoder loop
173*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_VP9_ENCODER)  += vp9_lossless_encoder.c
174*fb1b10abSAndroid Build Coastguard Workervp9_lossless_encoder.SRCS       += ivfenc.h ivfenc.c
175*fb1b10abSAndroid Build Coastguard Workervp9_lossless_encoder.SRCS       += y4minput.c y4minput.h
176*fb1b10abSAndroid Build Coastguard Workervp9_lossless_encoder.SRCS       += tools_common.h tools_common.c
177*fb1b10abSAndroid Build Coastguard Workervp9_lossless_encoder.SRCS       += video_common.h
178*fb1b10abSAndroid Build Coastguard Workervp9_lossless_encoder.SRCS       += video_writer.h video_writer.c
179*fb1b10abSAndroid Build Coastguard Workervp9_lossless_encoder.GUID        = B63C7C88-5348-46DC-A5A6-CC151EF93366
180*fb1b10abSAndroid Build Coastguard Workervp9_lossless_encoder.DESCRIPTION = Simplified lossless VP9 encoder
181*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_ENCODERS)     += twopass_encoder.c
182*fb1b10abSAndroid Build Coastguard Workertwopass_encoder.SRCS            += ivfenc.h ivfenc.c
183*fb1b10abSAndroid Build Coastguard Workertwopass_encoder.SRCS            += y4minput.c y4minput.h
184*fb1b10abSAndroid Build Coastguard Workertwopass_encoder.SRCS            += tools_common.h tools_common.c
185*fb1b10abSAndroid Build Coastguard Workertwopass_encoder.SRCS            += video_common.h
186*fb1b10abSAndroid Build Coastguard Workertwopass_encoder.SRCS            += video_writer.h video_writer.c
187*fb1b10abSAndroid Build Coastguard Workertwopass_encoder.GUID             = 73494FA6-4AF9-4763-8FBB-265C92402FD8
188*fb1b10abSAndroid Build Coastguard Workertwopass_encoder.DESCRIPTION      = Two-pass encoder loop
189*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_DECODERS)     += decode_with_drops.c
190*fb1b10abSAndroid Build Coastguard Workerdecode_with_drops.SRCS          += ivfdec.h ivfdec.c
191*fb1b10abSAndroid Build Coastguard Workerdecode_with_drops.SRCS          += y4minput.c y4minput.h
192*fb1b10abSAndroid Build Coastguard Workerdecode_with_drops.SRCS          += tools_common.h tools_common.c
193*fb1b10abSAndroid Build Coastguard Workerdecode_with_drops.SRCS          += video_common.h
194*fb1b10abSAndroid Build Coastguard Workerdecode_with_drops.SRCS          += video_reader.h video_reader.c
195*fb1b10abSAndroid Build Coastguard Workerdecode_with_drops.SRCS          += vpx_ports/mem_ops.h
196*fb1b10abSAndroid Build Coastguard Workerdecode_with_drops.SRCS          += vpx_ports/mem_ops_aligned.h
197*fb1b10abSAndroid Build Coastguard Workerdecode_with_drops.GUID           = CE5C53C4-8DDA-438A-86ED-0DDD3CDB8D26
198*fb1b10abSAndroid Build Coastguard Workerdecode_with_drops.DESCRIPTION    = Drops frames while decoding
199*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_ENCODERS)        += set_maps.c
200*fb1b10abSAndroid Build Coastguard Workerset_maps.SRCS                      += ivfenc.h ivfenc.c
201*fb1b10abSAndroid Build Coastguard Workerset_maps.SRCS                      += y4minput.c y4minput.h
202*fb1b10abSAndroid Build Coastguard Workerset_maps.SRCS                      += tools_common.h tools_common.c
203*fb1b10abSAndroid Build Coastguard Workerset_maps.SRCS                      += video_common.h
204*fb1b10abSAndroid Build Coastguard Workerset_maps.SRCS                      += video_writer.h video_writer.c
205*fb1b10abSAndroid Build Coastguard Workerset_maps.GUID                       = ECB2D24D-98B8-4015-A465-A4AF3DCC145F
206*fb1b10abSAndroid Build Coastguard Workerset_maps.DESCRIPTION                = Set active and ROI maps
207*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_VP8_ENCODER)     += vp8cx_set_ref.c
208*fb1b10abSAndroid Build Coastguard Workervp8cx_set_ref.SRCS                 += ivfenc.h ivfenc.c
209*fb1b10abSAndroid Build Coastguard Workervp8cx_set_ref.SRCS                 += y4minput.c y4minput.h
210*fb1b10abSAndroid Build Coastguard Workervp8cx_set_ref.SRCS                 += tools_common.h tools_common.c
211*fb1b10abSAndroid Build Coastguard Workervp8cx_set_ref.SRCS                 += video_common.h
212*fb1b10abSAndroid Build Coastguard Workervp8cx_set_ref.SRCS                 += video_writer.h video_writer.c
213*fb1b10abSAndroid Build Coastguard Workervp8cx_set_ref.GUID                  = C5E31F7F-96F6-48BD-BD3E-10EBF6E8057A
214*fb1b10abSAndroid Build Coastguard Workervp8cx_set_ref.DESCRIPTION           = VP8 set encoder reference frame
215*fb1b10abSAndroid Build Coastguard Worker
216*fb1b10abSAndroid Build Coastguard Workerifeq ($(CONFIG_VP9_ENCODER),yes)
217*fb1b10abSAndroid Build Coastguard Workerifeq ($(CONFIG_DECODERS),yes)
218*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-yes                       += vp9cx_set_ref.c
219*fb1b10abSAndroid Build Coastguard Workervp9cx_set_ref.SRCS                 += ivfenc.h ivfenc.c
220*fb1b10abSAndroid Build Coastguard Workervp9cx_set_ref.SRCS                 += y4minput.c y4minput.h
221*fb1b10abSAndroid Build Coastguard Workervp9cx_set_ref.SRCS                 += tools_common.h tools_common.c
222*fb1b10abSAndroid Build Coastguard Workervp9cx_set_ref.SRCS                 += video_common.h
223*fb1b10abSAndroid Build Coastguard Workervp9cx_set_ref.SRCS                 += video_writer.h video_writer.c
224*fb1b10abSAndroid Build Coastguard Workervp9cx_set_ref.GUID                  = 65D7F14A-2EE6-4293-B958-AB5107A03B55
225*fb1b10abSAndroid Build Coastguard Workervp9cx_set_ref.DESCRIPTION           = VP9 set encoder reference frame
226*fb1b10abSAndroid Build Coastguard Workerendif
227*fb1b10abSAndroid Build Coastguard Workerendif
228*fb1b10abSAndroid Build Coastguard Worker
229*fb1b10abSAndroid Build Coastguard Workerifeq ($(CONFIG_MULTI_RES_ENCODING),yes)
230*fb1b10abSAndroid Build Coastguard Workerifeq ($(CONFIG_LIBYUV),yes)
231*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES-$(CONFIG_VP8_ENCODER)          += vp8_multi_resolution_encoder.c
232*fb1b10abSAndroid Build Coastguard Workervp8_multi_resolution_encoder.SRCS       += ivfenc.h ivfenc.c
233*fb1b10abSAndroid Build Coastguard Workervp8_multi_resolution_encoder.SRCS       += y4minput.c y4minput.h
234*fb1b10abSAndroid Build Coastguard Workervp8_multi_resolution_encoder.SRCS       += tools_common.h tools_common.c
235*fb1b10abSAndroid Build Coastguard Workervp8_multi_resolution_encoder.SRCS       += video_writer.h video_writer.c
236*fb1b10abSAndroid Build Coastguard Workervp8_multi_resolution_encoder.SRCS       += $(LIBYUV_SRCS)
237*fb1b10abSAndroid Build Coastguard Workervp8_multi_resolution_encoder.GUID        = 04f8738e-63c8-423b-90fa-7c2703a374de
238*fb1b10abSAndroid Build Coastguard Workervp8_multi_resolution_encoder.DESCRIPTION = VP8 Multiple-resolution Encoding
239*fb1b10abSAndroid Build Coastguard Workerendif
240*fb1b10abSAndroid Build Coastguard Workerendif
241*fb1b10abSAndroid Build Coastguard Worker
242*fb1b10abSAndroid Build Coastguard Worker# Handle extra library flags depending on codec configuration
243*fb1b10abSAndroid Build Coastguard Worker
244*fb1b10abSAndroid Build Coastguard Worker# We should not link to math library (libm) on RVCT
245*fb1b10abSAndroid Build Coastguard Worker# when building for bare-metal targets
246*fb1b10abSAndroid Build Coastguard Workerifeq ($(CONFIG_OS_SUPPORT), yes)
247*fb1b10abSAndroid Build Coastguard WorkerCODEC_EXTRA_LIBS-$(CONFIG_VP8)         += m
248*fb1b10abSAndroid Build Coastguard WorkerCODEC_EXTRA_LIBS-$(CONFIG_VP9)         += m
249*fb1b10abSAndroid Build Coastguard Workerelse
250*fb1b10abSAndroid Build Coastguard Worker    ifeq ($(CONFIG_GCC), yes)
251*fb1b10abSAndroid Build Coastguard Worker    CODEC_EXTRA_LIBS-$(CONFIG_VP8)         += m
252*fb1b10abSAndroid Build Coastguard Worker    CODEC_EXTRA_LIBS-$(CONFIG_VP9)         += m
253*fb1b10abSAndroid Build Coastguard Worker    endif
254*fb1b10abSAndroid Build Coastguard Workerendif
255*fb1b10abSAndroid Build Coastguard Worker#
256*fb1b10abSAndroid Build Coastguard Worker# End of specified files. The rest of the build rules should happen
257*fb1b10abSAndroid Build Coastguard Worker# automagically from here.
258*fb1b10abSAndroid Build Coastguard Worker#
259*fb1b10abSAndroid Build Coastguard Worker
260*fb1b10abSAndroid Build Coastguard Worker
261*fb1b10abSAndroid Build Coastguard Worker# Examples need different flags based on whether we're building
262*fb1b10abSAndroid Build Coastguard Worker# from an installed tree or a version controlled tree. Determine
263*fb1b10abSAndroid Build Coastguard Worker# the proper paths.
264*fb1b10abSAndroid Build Coastguard Workerifeq ($(HAVE_ALT_TREE_LAYOUT),yes)
265*fb1b10abSAndroid Build Coastguard Worker    LIB_PATH-yes := $(SRC_PATH_BARE)/../lib
266*fb1b10abSAndroid Build Coastguard Worker    INC_PATH-yes := $(SRC_PATH_BARE)/../include
267*fb1b10abSAndroid Build Coastguard Workerelse
268*fb1b10abSAndroid Build Coastguard Worker    LIB_PATH-yes                     += $(if $(BUILD_PFX),$(BUILD_PFX),.)
269*fb1b10abSAndroid Build Coastguard Worker    INC_PATH-$(CONFIG_VP8_DECODER)   += $(SRC_PATH_BARE)/vp8
270*fb1b10abSAndroid Build Coastguard Worker    INC_PATH-$(CONFIG_VP8_ENCODER)   += $(SRC_PATH_BARE)/vp8
271*fb1b10abSAndroid Build Coastguard Worker    INC_PATH-$(CONFIG_VP9_DECODER)   += $(SRC_PATH_BARE)/vp9
272*fb1b10abSAndroid Build Coastguard Worker    INC_PATH-$(CONFIG_VP9_ENCODER)   += $(SRC_PATH_BARE)/vp9
273*fb1b10abSAndroid Build Coastguard Workerendif
274*fb1b10abSAndroid Build Coastguard WorkerINC_PATH-$(CONFIG_LIBYUV) += $(SRC_PATH_BARE)/third_party/libyuv/include
275*fb1b10abSAndroid Build Coastguard WorkerLIB_PATH := $(call enabled,LIB_PATH)
276*fb1b10abSAndroid Build Coastguard WorkerINC_PATH := $(call enabled,INC_PATH)
277*fb1b10abSAndroid Build Coastguard WorkerINTERNAL_CFLAGS = $(addprefix -I,$(INC_PATH))
278*fb1b10abSAndroid Build Coastguard WorkerINTERNAL_LDFLAGS += $(addprefix -L,$(LIB_PATH))
279*fb1b10abSAndroid Build Coastguard Worker
280*fb1b10abSAndroid Build Coastguard Worker
281*fb1b10abSAndroid Build Coastguard Worker# Expand list of selected examples to build (as specified above)
282*fb1b10abSAndroid Build Coastguard WorkerUTILS           = $(call enabled,UTILS)
283*fb1b10abSAndroid Build Coastguard WorkerEXAMPLES        = $(addprefix examples/,$(call enabled,EXAMPLES))
284*fb1b10abSAndroid Build Coastguard WorkerALL_EXAMPLES    = $(UTILS) $(EXAMPLES)
285*fb1b10abSAndroid Build Coastguard WorkerUTIL_SRCS       = $(foreach ex,$(UTILS),$($(ex:.c=).SRCS))
286*fb1b10abSAndroid Build Coastguard WorkerALL_SRCS        = $(foreach ex,$(ALL_EXAMPLES),$($(notdir $(ex:.c=)).SRCS))
287*fb1b10abSAndroid Build Coastguard WorkerCODEC_EXTRA_LIBS=$(sort $(call enabled,CODEC_EXTRA_LIBS))
288*fb1b10abSAndroid Build Coastguard Worker
289*fb1b10abSAndroid Build Coastguard Worker
290*fb1b10abSAndroid Build Coastguard Worker# Expand all example sources into a variable containing all sources
291*fb1b10abSAndroid Build Coastguard Worker# for that example (not just them main one specified in UTILS/EXAMPLES)
292*fb1b10abSAndroid Build Coastguard Worker# and add this file to the list (for MSVS workspace generation)
293*fb1b10abSAndroid Build Coastguard Worker$(foreach ex,$(ALL_EXAMPLES),$(eval $(notdir $(ex:.c=)).SRCS += $(ex) examples.mk))
294*fb1b10abSAndroid Build Coastguard Worker
295*fb1b10abSAndroid Build Coastguard Worker
296*fb1b10abSAndroid Build Coastguard Worker# Create build/install dependencies for all examples. The common case
297*fb1b10abSAndroid Build Coastguard Worker# is handled here. The MSVS case is handled below.
298*fb1b10abSAndroid Build Coastguard WorkerNOT_MSVS = $(if $(CONFIG_MSVS),,yes)
299*fb1b10abSAndroid Build Coastguard WorkerDIST-BINS-$(NOT_MSVS)      += $(addprefix bin/,$(ALL_EXAMPLES:.c=$(EXE_SFX)))
300*fb1b10abSAndroid Build Coastguard WorkerINSTALL-BINS-$(NOT_MSVS)   += $(addprefix bin/,$(UTILS:.c=$(EXE_SFX)))
301*fb1b10abSAndroid Build Coastguard WorkerDIST-SRCS-yes              += $(ALL_SRCS)
302*fb1b10abSAndroid Build Coastguard WorkerINSTALL-SRCS-yes           += $(UTIL_SRCS)
303*fb1b10abSAndroid Build Coastguard WorkerOBJS-$(NOT_MSVS)           += $(call objs,$(ALL_SRCS))
304*fb1b10abSAndroid Build Coastguard WorkerBINS-$(NOT_MSVS)           += $(addprefix $(BUILD_PFX),$(ALL_EXAMPLES:.c=$(EXE_SFX)))
305*fb1b10abSAndroid Build Coastguard Worker
306*fb1b10abSAndroid Build Coastguard Worker
307*fb1b10abSAndroid Build Coastguard Worker# Instantiate linker template for all examples.
308*fb1b10abSAndroid Build Coastguard WorkerCODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx)
309*fb1b10abSAndroid Build Coastguard Workerifneq ($(filter darwin%,$(TGT_OS)),)
310*fb1b10abSAndroid Build Coastguard WorkerSHARED_LIB_SUF=.dylib
311*fb1b10abSAndroid Build Coastguard Workerelse
312*fb1b10abSAndroid Build Coastguard Workerifneq ($(filter os2%,$(TGT_OS)),)
313*fb1b10abSAndroid Build Coastguard WorkerSHARED_LIB_SUF=_dll.a
314*fb1b10abSAndroid Build Coastguard Workerelse
315*fb1b10abSAndroid Build Coastguard WorkerSHARED_LIB_SUF=.so
316*fb1b10abSAndroid Build Coastguard Workerendif
317*fb1b10abSAndroid Build Coastguard Workerendif
318*fb1b10abSAndroid Build Coastguard WorkerCODEC_LIB_SUF=$(if $(CONFIG_SHARED),$(SHARED_LIB_SUF),.a)
319*fb1b10abSAndroid Build Coastguard Worker$(foreach bin,$(BINS-yes),\
320*fb1b10abSAndroid Build Coastguard Worker    $(eval $(bin):$(LIB_PATH)/lib$(CODEC_LIB)$(CODEC_LIB_SUF))\
321*fb1b10abSAndroid Build Coastguard Worker    $(eval $(call linker_template,$(bin),\
322*fb1b10abSAndroid Build Coastguard Worker        $(call objs,$($(notdir $(bin:$(EXE_SFX)=)).SRCS)) \
323*fb1b10abSAndroid Build Coastguard Worker        -l$(CODEC_LIB) $(addprefix -l,$(CODEC_EXTRA_LIBS))\
324*fb1b10abSAndroid Build Coastguard Worker        )))
325*fb1b10abSAndroid Build Coastguard Worker
326*fb1b10abSAndroid Build Coastguard Worker# The following pairs define a mapping of locations in the distribution
327*fb1b10abSAndroid Build Coastguard Worker# tree to locations in the source/build trees.
328*fb1b10abSAndroid Build Coastguard WorkerINSTALL_MAPS += src/%.c   %.c
329*fb1b10abSAndroid Build Coastguard WorkerINSTALL_MAPS += src/%     $(SRC_PATH_BARE)/%
330*fb1b10abSAndroid Build Coastguard WorkerINSTALL_MAPS += bin/%     %
331*fb1b10abSAndroid Build Coastguard WorkerINSTALL_MAPS += %         %
332*fb1b10abSAndroid Build Coastguard Worker
333*fb1b10abSAndroid Build Coastguard Worker
334*fb1b10abSAndroid Build Coastguard Worker# Set up additional MSVS environment
335*fb1b10abSAndroid Build Coastguard Workerifeq ($(CONFIG_MSVS),yes)
336*fb1b10abSAndroid Build Coastguard WorkerCODEC_LIB=$(if $(CONFIG_SHARED),vpx,$(if $(CONFIG_STATIC_MSVCRT),vpxmt,vpxmd))
337*fb1b10abSAndroid Build Coastguard Worker# This variable uses deferred expansion intentionally, since the results of
338*fb1b10abSAndroid Build Coastguard Worker# $(wildcard) may change during the course of the Make.
339*fb1b10abSAndroid Build Coastguard WorkerVS_PLATFORMS = $(foreach d,$(wildcard */Release/$(CODEC_LIB).lib),$(word 1,$(subst /, ,$(d))))
340*fb1b10abSAndroid Build Coastguard WorkerINSTALL_MAPS += $(foreach p,$(VS_PLATFORMS),bin/$(p)/%  $(p)/Release/%)
341*fb1b10abSAndroid Build Coastguard Workerendif
342*fb1b10abSAndroid Build Coastguard Worker
343*fb1b10abSAndroid Build Coastguard Worker# Build Visual Studio Projects. We use a template here to instantiate
344*fb1b10abSAndroid Build Coastguard Worker# explicit rules rather than using an implicit rule because we want to
345*fb1b10abSAndroid Build Coastguard Worker# leverage make's VPATH searching rather than specifying the paths on
346*fb1b10abSAndroid Build Coastguard Worker# each file in ALL_EXAMPLES. This has the unfortunate side effect that
347*fb1b10abSAndroid Build Coastguard Worker# touching the source files trigger a rebuild of the project files
348*fb1b10abSAndroid Build Coastguard Worker# even though there is no real dependency there (the dependency is on
349*fb1b10abSAndroid Build Coastguard Worker# the makefiles). We may want to revisit this.
350*fb1b10abSAndroid Build Coastguard Workerdefine vcproj_template
351*fb1b10abSAndroid Build Coastguard Worker$(1): $($(1:.$(VCPROJ_SFX)=).SRCS) vpx.$(VCPROJ_SFX)
352*fb1b10abSAndroid Build Coastguard Worker	$(if $(quiet),@echo "    [vcproj] $$@")
353*fb1b10abSAndroid Build Coastguard Worker	$(qexec)$$(GEN_VCPROJ)\
354*fb1b10abSAndroid Build Coastguard Worker            --exe\
355*fb1b10abSAndroid Build Coastguard Worker            --target=$$(TOOLCHAIN)\
356*fb1b10abSAndroid Build Coastguard Worker            --name=$$(@:.$(VCPROJ_SFX)=)\
357*fb1b10abSAndroid Build Coastguard Worker            --ver=$$(CONFIG_VS_VERSION)\
358*fb1b10abSAndroid Build Coastguard Worker            --proj-guid=$$($$(@:.$(VCPROJ_SFX)=).GUID)\
359*fb1b10abSAndroid Build Coastguard Worker            --src-path-bare="$(SRC_PATH_BARE)" \
360*fb1b10abSAndroid Build Coastguard Worker            --as=$$(AS) \
361*fb1b10abSAndroid Build Coastguard Worker            $$(if $$(CONFIG_STATIC_MSVCRT),--static-crt) \
362*fb1b10abSAndroid Build Coastguard Worker            --out=$$@ $$(INTERNAL_CFLAGS) $$(CFLAGS) \
363*fb1b10abSAndroid Build Coastguard Worker            $$(INTERNAL_LDFLAGS) $$(LDFLAGS) -l$$(CODEC_LIB) $$^
364*fb1b10abSAndroid Build Coastguard Workerendef
365*fb1b10abSAndroid Build Coastguard WorkerALL_EXAMPLES_BASENAME := $(notdir $(ALL_EXAMPLES))
366*fb1b10abSAndroid Build Coastguard WorkerPROJECTS-$(CONFIG_MSVS) += $(ALL_EXAMPLES_BASENAME:.c=.$(VCPROJ_SFX))
367*fb1b10abSAndroid Build Coastguard WorkerINSTALL-BINS-$(CONFIG_MSVS) += $(foreach p,$(VS_PLATFORMS),\
368*fb1b10abSAndroid Build Coastguard Worker                               $(addprefix bin/$(p)/,$(ALL_EXAMPLES_BASENAME:.c=.exe)))
369*fb1b10abSAndroid Build Coastguard Worker$(foreach proj,$(call enabled,PROJECTS),\
370*fb1b10abSAndroid Build Coastguard Worker    $(eval $(call vcproj_template,$(proj))))
371*fb1b10abSAndroid Build Coastguard Worker
372*fb1b10abSAndroid Build Coastguard Worker#
373*fb1b10abSAndroid Build Coastguard Worker# Documentation Rules
374*fb1b10abSAndroid Build Coastguard Worker#
375*fb1b10abSAndroid Build Coastguard Worker%.dox: %.c
376*fb1b10abSAndroid Build Coastguard Worker	@echo "    [DOXY] $@"
377*fb1b10abSAndroid Build Coastguard Worker	@mkdir -p $(dir $@)
378*fb1b10abSAndroid Build Coastguard Worker	@echo "/*!\page example_$(@F:.dox=) $(@F:.dox=)" > $@
379*fb1b10abSAndroid Build Coastguard Worker	@echo "   \includelineno $(<F)" >> $@
380*fb1b10abSAndroid Build Coastguard Worker	@echo "*/" >> $@
381*fb1b10abSAndroid Build Coastguard Worker
382*fb1b10abSAndroid Build Coastguard Workersamples.dox: examples.mk
383*fb1b10abSAndroid Build Coastguard Worker	@echo "    [DOXY] $@"
384*fb1b10abSAndroid Build Coastguard Worker	@echo "/*!\page samples Sample Code" > $@
385*fb1b10abSAndroid Build Coastguard Worker	@echo "    This SDK includes a number of sample applications."\
386*fb1b10abSAndroid Build Coastguard Worker	      "Each sample documents a feature of the SDK in both prose"\
387*fb1b10abSAndroid Build Coastguard Worker	      "and the associated C code."\
388*fb1b10abSAndroid Build Coastguard Worker	      "The following samples are included: ">>$@
389*fb1b10abSAndroid Build Coastguard Worker	@$(foreach ex,$(sort $(notdir $(EXAMPLES:.c=))),\
390*fb1b10abSAndroid Build Coastguard Worker	   echo "     - \subpage example_$(ex) $($(ex).DESCRIPTION)" >> $@;)
391*fb1b10abSAndroid Build Coastguard Worker	@echo >> $@
392*fb1b10abSAndroid Build Coastguard Worker	@echo "    In addition, the SDK contains a number of utilities."\
393*fb1b10abSAndroid Build Coastguard Worker              "Since these utilities are built upon the concepts described"\
394*fb1b10abSAndroid Build Coastguard Worker              "in the sample code listed above, they are not documented in"\
395*fb1b10abSAndroid Build Coastguard Worker              "pieces like the samples are. Their source is included here"\
396*fb1b10abSAndroid Build Coastguard Worker              "for reference. The following utilities are included:" >> $@
397*fb1b10abSAndroid Build Coastguard Worker	@$(foreach ex,$(sort $(UTILS:.c=)),\
398*fb1b10abSAndroid Build Coastguard Worker	   echo "     - \subpage example_$(ex) $($(ex).DESCRIPTION)" >> $@;)
399*fb1b10abSAndroid Build Coastguard Worker	@echo "*/" >> $@
400*fb1b10abSAndroid Build Coastguard Worker
401*fb1b10abSAndroid Build Coastguard WorkerCLEAN-OBJS += examples.doxy samples.dox $(ALL_EXAMPLES:.c=.dox)
402*fb1b10abSAndroid Build Coastguard WorkerDOCS-yes += examples.doxy samples.dox
403*fb1b10abSAndroid Build Coastguard Workerexamples.doxy: samples.dox $(ALL_EXAMPLES:.c=.dox)
404*fb1b10abSAndroid Build Coastguard Worker	@echo "INPUT += $^" > $@
405*fb1b10abSAndroid Build Coastguard Worker	@echo "ENABLED_SECTIONS += samples" >> $@
406