Perl script that implements a subset of the GNU as preprocessor that Apple's as doesn't
Clone or download
Pull request Compare This branch is 112 commits ahead of yuvi:master.
Michael Niedermayer
Michael Niedermayer Merge commit 'ee12830'
* commit 'ee12830':
  Consistently use 4 space indentation
  Conditionally work around an armasm64 bug in the scale operand to fcvtzs/scvtf
  Convert ldr/str/ldrb/strb etc into ldurb, when the offset is negative
  Support converting uxtl into ushll on a line that starts with a local label
  Add support for MS armasm64
  Correctly fix labels for armasm even if the lines start with leading space
  Define _WIN32 while preprocessing for armasm
  Operate on the right variable instead of the implicit variable
  Require boundaries around local labels in handle_local_label
  Correctly check for arm condition codes when trying to filter out 'bic'
  Strip out lines starting with '#' even if they have leading spaces
  Pass -undef to cpp instead of undefining __ELF__ and __MACH__
  Support converting more instructions to their thumb equivalent
  Fix inconsistent indentation
Latest commit cbe8847 Dec 2, 2017

README

To configure FFmpeg for iOS:

./configure --enable-cross-compile --arch=arm --target-os=darwin --cc='clang -arch armv7' --sysroot=$(xcrun --sdk iphoneos --show-sdk-path) --cpu=cortex-a8 --enable-pic

If deploying to all generations, it's recommended to do separate out-of-tree
builds for each architecture, then lipo together the resulting libs. For
instance, assuming separate builds in armv6 and armv7:

lipo -create -arch armv6 armv6/libavcodec/libavcodec.a -arch armv7 armv7/libavcodec/libavcodec.a -output universal/libavcodec.a

and similar for each library. Then in XCode, make sure to build for both armv6
and armv7. If you only care about one generation (since the armv6 devices are
too slow for instance), then lipo is unnecessary of course.