Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Side by Side Diff: third_party/ffmpeg/ffmpeg.gyp

Issue 387023: Building FFmpeg in tree for arm (Closed)
Patch Set: moved dependencies Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/common.gypi ('k') | third_party/ffmpeg/source/config/Chromium/linux/arm/config.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 # TODO(ajwong): Determine if we want to statically link libz. 5 # TODO(ajwong): Determine if we want to statically link libz.
6 6
7 { 7 {
8 'target_defaults': { 8 'target_defaults': {
9 'conditions': [ 9 'conditions': [
10 ['OS!="linux" and OS!="freebsd"', {'sources/': [['exclude', '/linux/']]}], 10 ['OS!="linux" and OS!="freebsd"', {'sources/': [['exclude', '/linux/']]}],
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 # determine if in-tree build in Windows is tractable. 42 # determine if in-tree build in Windows is tractable.
43 ['(OS!="linux" and OS!="freebsd" and OS!="mac") or use_system_ffmpeg!=0', { 43 ['(OS!="linux" and OS!="freebsd" and OS!="mac") or use_system_ffmpeg!=0', {
44 'variables': { 44 'variables': {
45 'target_for_binaries': 'ffmpeg_binaries', 45 'target_for_binaries': 'ffmpeg_binaries',
46 'ffmpeg_include_root': 'include', 46 'ffmpeg_include_root': 'include',
47 }, 47 },
48 },{ # else OS=="linux" 48 },{ # else OS=="linux"
49 'variables': { 49 'variables': {
50 'target_for_binaries': 'ffmpegsumo_nolink', 50 'target_for_binaries': 'ffmpegsumo_nolink',
51 'ffmpeg_include_root': 'source/patched-ffmpeg-mt', 51 'ffmpeg_include_root': 'source/patched-ffmpeg-mt',
52 'conditions': [
53 ['target_arch=="x64" or target_arch=="ia32"', {
54 'ffmpeg_asm_lib': 1,
55 }],
56 ['target_arch=="arm"', {
57 'ffmpeg_asm_lib': 0,
58 }],
59 ],
52 }, 60 },
53 'targets': [ 61 'targets': [
54 { 62 {
55 'target_name': 'ffmpegsumo', 63 'target_name': 'ffmpegsumo',
56 'product_name': 'libffmpegsumo', 64 'product_name': 'libffmpegsumo',
57 'type': 'shared_library', 65 'type': 'shared_library',
58 'dependencies': [
59 'make_ffmpeg_asm_lib',
60 ],
61 'sources': [ 66 'sources': [
62 'source/patched-ffmpeg-mt/libavcodec/aac.c', 67 'source/patched-ffmpeg-mt/libavcodec/aac.c',
63 'source/patched-ffmpeg-mt/libavcodec/aac_ac3_parser.c', 68 'source/patched-ffmpeg-mt/libavcodec/aac_ac3_parser.c',
64 'source/patched-ffmpeg-mt/libavcodec/aac_parser.c', 69 'source/patched-ffmpeg-mt/libavcodec/aac_parser.c',
65 'source/patched-ffmpeg-mt/libavcodec/aactab.c', 70 'source/patched-ffmpeg-mt/libavcodec/aactab.c',
66 'source/patched-ffmpeg-mt/libavcodec/allcodecs.c', 71 'source/patched-ffmpeg-mt/libavcodec/allcodecs.c',
67 'source/patched-ffmpeg-mt/libavcodec/audioconvert.c', 72 'source/patched-ffmpeg-mt/libavcodec/audioconvert.c',
68 'source/patched-ffmpeg-mt/libavcodec/avpacket.c', 73 'source/patched-ffmpeg-mt/libavcodec/avpacket.c',
69 'source/patched-ffmpeg-mt/libavcodec/bitstream.c', 74 'source/patched-ffmpeg-mt/libavcodec/bitstream.c',
70 'source/patched-ffmpeg-mt/libavcodec/bitstream_filter.c', 75 'source/patched-ffmpeg-mt/libavcodec/bitstream_filter.c',
(...skipping 25 matching lines...) Expand all
96 'source/patched-ffmpeg-mt/libavcodec/raw.c', 101 'source/patched-ffmpeg-mt/libavcodec/raw.c',
97 'source/patched-ffmpeg-mt/libavcodec/resample.c', 102 'source/patched-ffmpeg-mt/libavcodec/resample.c',
98 'source/patched-ffmpeg-mt/libavcodec/resample2.c', 103 'source/patched-ffmpeg-mt/libavcodec/resample2.c',
99 'source/patched-ffmpeg-mt/libavcodec/simple_idct.c', 104 'source/patched-ffmpeg-mt/libavcodec/simple_idct.c',
100 'source/patched-ffmpeg-mt/libavcodec/utils.c', 105 'source/patched-ffmpeg-mt/libavcodec/utils.c',
101 'source/patched-ffmpeg-mt/libavcodec/vorbis.c', 106 'source/patched-ffmpeg-mt/libavcodec/vorbis.c',
102 'source/patched-ffmpeg-mt/libavcodec/vorbis_data.c', 107 'source/patched-ffmpeg-mt/libavcodec/vorbis_data.c',
103 'source/patched-ffmpeg-mt/libavcodec/vorbis_dec.c', 108 'source/patched-ffmpeg-mt/libavcodec/vorbis_dec.c',
104 'source/patched-ffmpeg-mt/libavcodec/vp3.c', 109 'source/patched-ffmpeg-mt/libavcodec/vp3.c',
105 'source/patched-ffmpeg-mt/libavcodec/vp3dsp.c', 110 'source/patched-ffmpeg-mt/libavcodec/vp3dsp.c',
106 'source/patched-ffmpeg-mt/libavcodec/x86/cpuid.c',
107 'source/patched-ffmpeg-mt/libavcodec/x86/dnxhd_mmx.c',
108 'source/patched-ffmpeg-mt/libavcodec/x86/dsputil_mmx.c',
109 'source/patched-ffmpeg-mt/libavcodec/x86/fdct_mmx.c',
110 'source/patched-ffmpeg-mt/libavcodec/x86/fft_3dn.c',
111 'source/patched-ffmpeg-mt/libavcodec/x86/fft_3dn2.c',
112 'source/patched-ffmpeg-mt/libavcodec/x86/fft_sse.c',
113 'source/patched-ffmpeg-mt/libavcodec/x86/idct_mmx_xvid.c',
114 'source/patched-ffmpeg-mt/libavcodec/x86/idct_sse2_xvid.c',
115 'source/patched-ffmpeg-mt/libavcodec/x86/motion_est_mmx.c',
116 'source/patched-ffmpeg-mt/libavcodec/x86/mpegvideo_mmx.c',
117 'source/patched-ffmpeg-mt/libavcodec/x86/simple_idct_mmx.c',
118 'source/patched-ffmpeg-mt/libavcodec/x86/vp3dsp_mmx.c',
119 'source/patched-ffmpeg-mt/libavcodec/x86/vp3dsp_sse2.c',
120 'source/patched-ffmpeg-mt/libavcodec/xiph.c', 111 'source/patched-ffmpeg-mt/libavcodec/xiph.c',
121 'source/patched-ffmpeg-mt/libavformat/allformats.c', 112 'source/patched-ffmpeg-mt/libavformat/allformats.c',
122 'source/patched-ffmpeg-mt/libavformat/avio.c', 113 'source/patched-ffmpeg-mt/libavformat/avio.c',
123 'source/patched-ffmpeg-mt/libavformat/aviobuf.c', 114 'source/patched-ffmpeg-mt/libavformat/aviobuf.c',
124 'source/patched-ffmpeg-mt/libavformat/cutils.c', 115 'source/patched-ffmpeg-mt/libavformat/cutils.c',
125 'source/patched-ffmpeg-mt/libavformat/id3v2.c', 116 'source/patched-ffmpeg-mt/libavformat/id3v2.c',
126 'source/patched-ffmpeg-mt/libavformat/isom.c', 117 'source/patched-ffmpeg-mt/libavformat/isom.c',
127 'source/patched-ffmpeg-mt/libavformat/metadata.c', 118 'source/patched-ffmpeg-mt/libavformat/metadata.c',
128 'source/patched-ffmpeg-mt/libavformat/metadata_compat.c', 119 'source/patched-ffmpeg-mt/libavformat/metadata_compat.c',
129 'source/patched-ffmpeg-mt/libavformat/mov.c', 120 'source/patched-ffmpeg-mt/libavformat/mov.c',
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 'source/patched-ffmpeg-mt/libavcodec/mpegaudiodata.c', 172 'source/patched-ffmpeg-mt/libavcodec/mpegaudiodata.c',
182 'source/patched-ffmpeg-mt/libavcodec/mpegaudiodec.c', 173 'source/patched-ffmpeg-mt/libavcodec/mpegaudiodec.c',
183 'source/patched-ffmpeg-mt/libavcodec/mpegaudiodecheader.c', 174 'source/patched-ffmpeg-mt/libavcodec/mpegaudiodecheader.c',
184 'source/patched-ffmpeg-mt/libavcodec/mpegvideo.c', 175 'source/patched-ffmpeg-mt/libavcodec/mpegvideo.c',
185 'source/patched-ffmpeg-mt/libavformat/id3v2.c', 176 'source/patched-ffmpeg-mt/libavformat/id3v2.c',
186 'source/patched-ffmpeg-mt/libavformat/isom.c', 177 'source/patched-ffmpeg-mt/libavformat/isom.c',
187 'source/patched-ffmpeg-mt/libavformat/mov.c', 178 'source/patched-ffmpeg-mt/libavformat/mov.c',
188 'source/patched-ffmpeg-mt/libavformat/mp3.c', 179 'source/patched-ffmpeg-mt/libavformat/mp3.c',
189 ], 180 ],
190 }], # ffmpeg_branding 181 }], # ffmpeg_branding
182 ['target_arch=="ia32" or target_arch=="x64"', {
183 'dependencies': [
184 'make_ffmpeg_asm_lib',
185 ],
186 'sources': [
187 'source/patched-ffmpeg-mt/libavcodec/x86/cpuid.c',
188 'source/patched-ffmpeg-mt/libavcodec/x86/dnxhd_mmx.c',
189 'source/patched-ffmpeg-mt/libavcodec/x86/dsputil_mmx.c',
190 'source/patched-ffmpeg-mt/libavcodec/x86/fdct_mmx.c',
191 'source/patched-ffmpeg-mt/libavcodec/x86/fft_3dn.c',
192 'source/patched-ffmpeg-mt/libavcodec/x86/fft_3dn2.c',
193 'source/patched-ffmpeg-mt/libavcodec/x86/fft_sse.c',
194 'source/patched-ffmpeg-mt/libavcodec/x86/idct_mmx_xvid.c',
195 'source/patched-ffmpeg-mt/libavcodec/x86/idct_sse2_xvid.c',
196 'source/patched-ffmpeg-mt/libavcodec/x86/motion_est_mmx.c',
197 'source/patched-ffmpeg-mt/libavcodec/x86/mpegvideo_mmx.c',
198 'source/patched-ffmpeg-mt/libavcodec/x86/simple_idct_mmx.c',
199 'source/patched-ffmpeg-mt/libavcodec/x86/vp3dsp_mmx.c',
200 'source/patched-ffmpeg-mt/libavcodec/x86/vp3dsp_sse2.c',
201 ],
202 }],
191 ['target_arch=="x64"', { 203 ['target_arch=="x64"', {
192 # x64 requires PIC for shared libraries. This is opposite 204 # x64 requires PIC for shared libraries. This is opposite
193 # of ia32 where due to a slew of inline assembly using ebx, 205 # of ia32 where due to a slew of inline assembly using ebx,
194 # FFmpeg CANNOT be built with PIC. 206 # FFmpeg CANNOT be built with PIC.
195 'defines': [ 207 'defines': [
196 'PIC', 208 'PIC',
197 ], 209 ],
198 'cflags': [ 210 'cflags': [
199 '-fPIC', 211 '-fPIC',
200 ], 212 ],
201 }], # target_arch 213 }], # target_arch=="x64"
214 ['target_arch=="arm"', {
215 'defines': [
216 'PIC',
217 ],
218 'cflags': [
219 '-fPIC',
220 '-march=armv7-a',
221 '-mtune=cortex-a8',
222 '-mfpu=neon',
223 '-mfloat-abi=softfp',
224 ],
225 'sources': [
226 'source/patched-ffmpeg-mt/libavcodec/arm/dsputil_arm.c',
227 'source/patched-ffmpeg-mt/libavcodec/arm/dsputil_arm_s.S',
228 'source/patched-ffmpeg-mt/libavcodec/arm/dsputil_vfp.S',
229 'source/patched-ffmpeg-mt/libavcodec/arm/float_arm_vfp.c',
230 'source/patched-ffmpeg-mt/libavcodec/arm/jrevdct_arm.S',
231 'source/patched-ffmpeg-mt/libavcodec/arm/simple_idct_arm.S',
232 'source/patched-ffmpeg-mt/libavcodec/arm/simple_idct_armv5te.S',
233 'source/patched-ffmpeg-mt/libavcodec/arm/simple_idct_armv6.S',
234 'source/patched-ffmpeg-mt/libavcodec/arm/simple_idct_neon.S',
235 ],
236 }], # target_arch=="arm"
202 ['OS=="linux" or OS=="freebsd"', { 237 ['OS=="linux" or OS=="freebsd"', {
203 'defines': [ 238 'defines': [
204 '_ISOC99_SOURCE', 239 '_ISOC99_SOURCE',
205 '_LARGEFILE_SOURCE', 240 '_LARGEFILE_SOURCE',
206 ], 241 ],
207 'cflags': [ 242 'cflags': [
208 '-std=c99', 243 '-std=c99',
209 '-pthread', 244 '-pthread',
210 '-fno-math-errno', 245 '-fno-math-errno',
211 ], 246 ],
212 'cflags!': [ 247 'cflags!': [
213 # Ensure the symbols are exported. 248 # Ensure the symbols are exported.
214 # 249 #
215 # TODO(ajwong): Fix common.gypi to only add this flag for 250 # TODO(ajwong): Fix common.gypi to only add this flag for
216 # _type != shared_library. 251 # _type != shared_library.
217 '-fvisibility=hidden', 252 '-fvisibility=hidden',
218 ], 253 ],
219 'link_settings': { 254 'link_settings': {
220 'ldflags': [ 255 'ldflags': [
221 '-Wl,-Bsymbolic', 256 '-Wl,-Bsymbolic',
222 '-L<(shared_generated_dir)', 257 '-L<(shared_generated_dir)',
223 ], 258 ],
224 'libraries': [ 259 'libraries': [
225 # TODO(ajwong): When scons is dead, collapse this with the
226 # absolute path entry inside the OS="mac" conditional, and
227 # move it out of the conditionals block altogether.
228 '-l<(asm_library)',
229
230 '-lz', 260 '-lz',
231 ], 261 ],
262 'conditions': [
263 ['ffmpeg_asm_lib==1', {
264 'libraries': [
265 # TODO(ajwong): When scons is dead, collapse this with the
266 # absolute path entry inside the OS="mac" conditional, and
267 # move it out of the conditionals block altogether.
268 '-l<(asm_library)',
269 ],
270 }],
271 ],
232 }, 272 },
233 }], # OS=="linux" or OS=="freebsd" 273 }], # OS=="linux" or OS=="freebsd"
234 ['OS=="mac"', { 274 ['OS=="mac"', {
235 'libraries': [ 275 'libraries': [
236 # TODO(ajwong): Move into link_settings when this is fixed: 276 # TODO(ajwong): Move into link_settings when this is fixed:
237 # 277 #
238 # http://code.google.com/p/gyp/issues/detail?id=108 278 # http://code.google.com/p/gyp/issues/detail?id=108
239 '<(shared_generated_dir)/<(STATIC_LIB_PREFIX)<(asm_library)<(STA TIC_LIB_SUFFIX)', 279 '<(shared_generated_dir)/<(STATIC_LIB_PREFIX)<(asm_library)<(STA TIC_LIB_SUFFIX)',
240 ], 280 ],
241 'link_settings': { 281 'link_settings': {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 ], 326 ],
287 'process_outputs_as_sources': 0, 327 'process_outputs_as_sources': 0,
288 'message': 'Serializing build of <(asm_library).', 328 'message': 'Serializing build of <(asm_library).',
289 }, 329 },
290 ], 330 ],
291 }, 331 },
292 { 332 {
293 'target_name': 'assemble_ffmpeg_asm', 333 'target_name': 'assemble_ffmpeg_asm',
294 'type': 'none', 334 'type': 'none',
295 'dependencies': [ 335 'dependencies': [
296 '../yasm/yasm.gyp:yasm', 336 '../yasm/yasm.gyp:yasm#host',
297 ], 337 ],
298 'sources': [ 338 'sources': [
299 # The FFmpeg yasm files. 339 # The FFmpeg yasm files.
300 'source/patched-ffmpeg-mt/libavcodec/x86/dsputil_yasm.asm', 340 'source/patched-ffmpeg-mt/libavcodec/x86/dsputil_yasm.asm',
301 'source/patched-ffmpeg-mt/libavcodec/x86/fft_mmx.asm', 341 'source/patched-ffmpeg-mt/libavcodec/x86/fft_mmx.asm',
302 ], 342 ],
303 'rules': [ 343 'rules': [
304 { 344 {
305 'conditions': [ 345 'conditions': [
306 ['OS=="linux" or OS=="freebsd"', { 346 ['OS=="linux" or OS=="freebsd"', {
(...skipping 11 matching lines...) Expand all
318 }], 358 }],
319 ['target_arch=="x64"', { 359 ['target_arch=="x64"', {
320 'variables': { 360 'variables': {
321 'yasm_flags': [ 361 'yasm_flags': [
322 '-DARCH_X86_64', 362 '-DARCH_X86_64',
323 '-m', 'amd64', 363 '-m', 'amd64',
324 '-DPIC', 364 '-DPIC',
325 ], 365 ],
326 }, 366 },
327 }], 367 }],
368 ['target_arch=="arm"', {
369 'variables': {
370 'yasm_flags': [],
371 },
372 }],
328 ], 373 ],
329 }], ['OS=="mac"', { 374 }], ['OS=="mac"', {
330 'variables': { 375 'variables': {
331 'obj_format': 'macho', 376 'obj_format': 'macho',
332 'yasm_flags': [ '-DPREFIX', ], 377 'yasm_flags': [ '-DPREFIX', ],
333 }, 378 },
334 'conditions': [ 379 'conditions': [
335 ['target_arch=="ia32"', { 380 ['target_arch=="ia32"', {
336 'variables': { 381 'variables': {
337 'yasm_flags': [ 382 'yasm_flags': [
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 ], 694 ],
650 }, 695 },
651 ], 696 ],
652 } 697 }
653 698
654 # Local Variables: 699 # Local Variables:
655 # tab-width:2 700 # tab-width:2
656 # indent-tabs-mode:nil 701 # indent-tabs-mode:nil
657 # End: 702 # End:
658 # vim: set expandtab tabstop=2 shiftwidth=2: 703 # vim: set expandtab tabstop=2 shiftwidth=2:
OLDNEW
« no previous file with comments | « build/common.gypi ('k') | third_party/ffmpeg/source/config/Chromium/linux/arm/config.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698