[FFmpeg-devel] [HOWTO] Building FFmpeg for iPhone
Måns Rullgård
mans
Sat Oct 3 00:47:25 CEST 2009
David Conrad <lessen42 at gmail.com> writes:
> On Oct 2, 2009, at 6:19 PM, M?ns Rullg?rd wrote:
>
>> David Conrad <lessen42 at gmail.com> writes:
>>
>>> On Oct 2, 2009, at 4:58 PM, M?ns Rullg?rd wrote:
>>>
>>>> 4a. For iPhone 3GS or iPod Touch 3G 32GB/64GB, use this command:
>>>> ./configure
>>>> --cc=/Developer/Platforms/iPhoneOS.platform/Developer/
>>>> usr/bin/arm-apple-darwin9-gcc-4.2.1 --as='gas-preprocessor.pl /
>>>> Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-
>>>> darwin9-gcc-4.2.1' --sysroot=/Developer/Platforms/iPhoneOS.platform/
>>>> Developer/SDKs/iPhoneOS3.1.sdk --enable-cross-compile --target-
>>>> os=darwin --arch=arm --cpu=cortex-a8 --enable-pic
>>>> 4b. For other iPhone or iPod Touch models, use this command:
>>>> ./configure
>>>> --cc=/Developer/Platforms/iPhoneOS.platform/Developer/
>>>> usr/bin/arm-apple-darwin9-gcc-4.2.1 --as='gas-preprocessor.pl /
>>>> Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-
>>>> darwin9-gcc-4.2.1' --sysroot=/Developer/Platforms/iPhoneOS.platform/
>>>> Developer/SDKs/iPhoneOS3.1.sdk --enable-cross-compile --target-
>>>> os=darwin --arch=arm --cpu=arm1176jzf-s
>>>> 5. Run make.
>>>>
>>>> It is important to specify a correct --cpu option, and not merely an
>>>> architecture version. Failure to specify the exact CPU will give a
>>>> broken build.
>>>
>>> You should add -arch armv7 to cflags and ldflags for 4a and -arch
>>> armv6 for 4b (the warning about -force_cpusubtype_ALL indicates that
>>> this will be required in the future.) This sets a specific cpu
>>> subtype
>>> for the mach-o file, which allows you lipo together binaries.
>>
>> I tried that, and got this error:
>>
>> cc1: error: unrecognized command line option "-arch"
>>
>> The warning is harmless, and only shows that Apple's compiler team are
>> a bunch of idiots, but we knew that already.
>
> Oops, -arch is only recognized by "gcc" not "arm-apple-darwin9-
> gcc-4.2.1". So you'd need --cc=/Developer/Platforms/iPhoneOS.platform/
> Developer/usr/bin/gcc
Oh, is that how it works. Is this documented somewhere, or are you
supposed to run "strings" on the binaries and guess?
> The advantage of specifying it is that you can have a single binary
> that has full NEON opts, but still works on the older devices.
I never think in such terms.
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list