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