# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python from cerbero.tools.libtool import LibtoolLibrary class Recipe(recipe.Recipe): version = '20161218-2245' name = 'x264' licenses = [License.GPL] stype = SourceType.TARBALL configure_tpl = "%(config-sh)s --prefix=%(prefix)s "\ "--libdir=%(libdir)s" configure_options = '--enable-shared --enable-static --enable-pic ' \ '--disable-strip --disable-lavf' url = 'http://download.videolan.org/pub/x264/snapshots/x264-snapshot-20161218-2245-stable.tar.bz2' tarball_dirname= 'x264-snapshot-20161218-2245-stable' new_env = {'AS': 'yasm'} files_libs = ['libx264'] files_bins = ['x264'] files_devel = ['lib/pkgconfig/x264.pc', 'include/x264.h', 'include/x264_config.h'] def prepare(self): # clang x86-32 fails at generating proper asm PIC code # See bug https://bugzilla.gnome.org/show_bug.cgi?id=727079 enable_asm = True arch = self.config.target_arch if self.config.target_arch == Architecture.X86: arch = 'i686' if self.config.target_platform == Platform.DARWIN: if self.config.target_arch == Architecture.X86: self.new_env = {'AS': 'yasm -O2 -f macho -DPREFIX'} enable_asm = False if self.config.target_platform == Platform.WINDOWS: self.configure_options += ' --enable-win32thread' self.configure_options += ' --host=%s-pc-%s' % (arch, self.config.target_platform) if self.config.target_arch == Architecture.ARM: # FIXME : Is disabling asm on ARM (< v7) still needed ? enable_asm = False elif Architecture.is_arm(self.config.target_arch): self.new_env = {'AS': os.environ.get('CC', '')} if self.config.target_platform == Platform.IOS: if Architecture.is_arm(self.config.target_arch): if 'GAS' in os.environ: self.new_env = {'AS': os.environ['GAS']} if self.config.target_arch != Architecture.ARM64: # -no-integrated-as is only required for 32bit arm self.new_env['AS'] += ' -no-integrated-as ' elif self.config.target_arch == Architecture.X86: enable_asm = False if enable_asm is False: self.configure_options += ' --disable-asm ' def post_install(self): libtool_la = LibtoolLibrary('x264', 148, None, None, self.config.libdir, self.config.target_platform) libtool_la.save()