commit b50af2ae351605754b0067e69754254960c015db
Author: Christopher Szymczyk <cszymczyk@supra-elektronik.com>
Date:   Tue Feb 16 07:30:00 2016 -0800

    lol

diff --git a/cerbero/__init__.pyc b/cerbero/__init__.pyc
new file mode 100644
index 0000000..d262fc6
Binary files /dev/null and b/cerbero/__init__.pyc differ
diff --git a/cerbero/bootstrap/__init__.pyc b/cerbero/bootstrap/__init__.pyc
new file mode 100644
index 0000000..ce1fbc4
Binary files /dev/null and b/cerbero/bootstrap/__init__.pyc differ
diff --git a/cerbero/bootstrap/android.pyc b/cerbero/bootstrap/android.pyc
new file mode 100644
index 0000000..aed28d6
Binary files /dev/null and b/cerbero/bootstrap/android.pyc differ
diff --git a/cerbero/bootstrap/bootstrapper.pyc b/cerbero/bootstrap/bootstrapper.pyc
new file mode 100644
index 0000000..efb4340
Binary files /dev/null and b/cerbero/bootstrap/bootstrapper.pyc differ
diff --git a/cerbero/bootstrap/build_tools.pyc b/cerbero/bootstrap/build_tools.pyc
new file mode 100644
index 0000000..7702792
Binary files /dev/null and b/cerbero/bootstrap/build_tools.pyc differ
diff --git a/cerbero/bootstrap/ios.pyc b/cerbero/bootstrap/ios.pyc
new file mode 100644
index 0000000..0953d06
Binary files /dev/null and b/cerbero/bootstrap/ios.pyc differ
diff --git a/cerbero/bootstrap/linux.pyc b/cerbero/bootstrap/linux.pyc
new file mode 100644
index 0000000..7ac0d2b
Binary files /dev/null and b/cerbero/bootstrap/linux.pyc differ
diff --git a/cerbero/bootstrap/osx.pyc b/cerbero/bootstrap/osx.pyc
new file mode 100644
index 0000000..c1ebb7c
Binary files /dev/null and b/cerbero/bootstrap/osx.pyc differ
diff --git a/cerbero/bootstrap/windows.pyc b/cerbero/bootstrap/windows.pyc
new file mode 100644
index 0000000..3a119f5
Binary files /dev/null and b/cerbero/bootstrap/windows.pyc differ
diff --git a/cerbero/build/__init__.pyc b/cerbero/build/__init__.pyc
new file mode 100644
index 0000000..10e5e4c
Binary files /dev/null and b/cerbero/build/__init__.pyc differ
diff --git a/cerbero/build/build.pyc b/cerbero/build/build.pyc
new file mode 100644
index 0000000..a8a4926
Binary files /dev/null and b/cerbero/build/build.pyc differ
diff --git a/cerbero/build/cookbook.pyc b/cerbero/build/cookbook.pyc
new file mode 100644
index 0000000..2f879bb
Binary files /dev/null and b/cerbero/build/cookbook.pyc differ
diff --git a/cerbero/build/filesprovider.pyc b/cerbero/build/filesprovider.pyc
new file mode 100644
index 0000000..388f9b5
Binary files /dev/null and b/cerbero/build/filesprovider.pyc differ
diff --git a/cerbero/build/oven.pyc b/cerbero/build/oven.pyc
new file mode 100644
index 0000000..208d966
Binary files /dev/null and b/cerbero/build/oven.pyc differ
diff --git a/cerbero/build/recipe.pyc b/cerbero/build/recipe.pyc
new file mode 100644
index 0000000..a3a2a58
Binary files /dev/null and b/cerbero/build/recipe.pyc differ
diff --git a/cerbero/build/source.pyc b/cerbero/build/source.pyc
new file mode 100644
index 0000000..9e91d32
Binary files /dev/null and b/cerbero/build/source.pyc differ
diff --git a/cerbero/commands/__init__.pyc b/cerbero/commands/__init__.pyc
new file mode 100644
index 0000000..fff6072
Binary files /dev/null and b/cerbero/commands/__init__.pyc differ
diff --git a/cerbero/commands/add_package.pyc b/cerbero/commands/add_package.pyc
new file mode 100644
index 0000000..7a7d1cd
Binary files /dev/null and b/cerbero/commands/add_package.pyc differ
diff --git a/cerbero/commands/add_recipe.pyc b/cerbero/commands/add_recipe.pyc
new file mode 100644
index 0000000..01f7622
Binary files /dev/null and b/cerbero/commands/add_recipe.pyc differ
diff --git a/cerbero/commands/bootstrap.pyc b/cerbero/commands/bootstrap.pyc
new file mode 100644
index 0000000..d2c170c
Binary files /dev/null and b/cerbero/commands/bootstrap.pyc differ
diff --git a/cerbero/commands/build.pyc b/cerbero/commands/build.pyc
new file mode 100644
index 0000000..e42abaa
Binary files /dev/null and b/cerbero/commands/build.pyc differ
diff --git a/cerbero/commands/bundlesource.pyc b/cerbero/commands/bundlesource.pyc
new file mode 100644
index 0000000..e0600d3
Binary files /dev/null and b/cerbero/commands/bundlesource.pyc differ
diff --git a/cerbero/commands/check.pyc b/cerbero/commands/check.pyc
new file mode 100644
index 0000000..2593654
Binary files /dev/null and b/cerbero/commands/check.pyc differ
diff --git a/cerbero/commands/checkpackage.pyc b/cerbero/commands/checkpackage.pyc
new file mode 100644
index 0000000..f5d408a
Binary files /dev/null and b/cerbero/commands/checkpackage.pyc differ
diff --git a/cerbero/commands/cleanone.pyc b/cerbero/commands/cleanone.pyc
new file mode 100644
index 0000000..193daa0
Binary files /dev/null and b/cerbero/commands/cleanone.pyc differ
diff --git a/cerbero/commands/debugpackages.pyc b/cerbero/commands/debugpackages.pyc
new file mode 100644
index 0000000..6d02b67
Binary files /dev/null and b/cerbero/commands/debugpackages.pyc differ
diff --git a/cerbero/commands/deps.pyc b/cerbero/commands/deps.pyc
new file mode 100644
index 0000000..3042847
Binary files /dev/null and b/cerbero/commands/deps.pyc differ
diff --git a/cerbero/commands/fetch.pyc b/cerbero/commands/fetch.pyc
new file mode 100644
index 0000000..62d212e
Binary files /dev/null and b/cerbero/commands/fetch.pyc differ
diff --git a/cerbero/commands/genlibfiles.pyc b/cerbero/commands/genlibfiles.pyc
new file mode 100644
index 0000000..326953f
Binary files /dev/null and b/cerbero/commands/genlibfiles.pyc differ
diff --git a/cerbero/commands/gensdkshell.pyc b/cerbero/commands/gensdkshell.pyc
new file mode 100644
index 0000000..ab2a667
Binary files /dev/null and b/cerbero/commands/gensdkshell.pyc differ
diff --git a/cerbero/commands/genvsprops.pyc b/cerbero/commands/genvsprops.pyc
new file mode 100644
index 0000000..97d3565
Binary files /dev/null and b/cerbero/commands/genvsprops.pyc differ
diff --git a/cerbero/commands/genxcconfig.pyc b/cerbero/commands/genxcconfig.pyc
new file mode 100644
index 0000000..3d4bf47
Binary files /dev/null and b/cerbero/commands/genxcconfig.pyc differ
diff --git a/cerbero/commands/info.pyc b/cerbero/commands/info.pyc
new file mode 100644
index 0000000..52e267e
Binary files /dev/null and b/cerbero/commands/info.pyc differ
diff --git a/cerbero/commands/list.pyc b/cerbero/commands/list.pyc
new file mode 100644
index 0000000..a35434c
Binary files /dev/null and b/cerbero/commands/list.pyc differ
diff --git a/cerbero/commands/package.pyc b/cerbero/commands/package.pyc
new file mode 100644
index 0000000..21a4eae
Binary files /dev/null and b/cerbero/commands/package.pyc differ
diff --git a/cerbero/commands/rdeps.pyc b/cerbero/commands/rdeps.pyc
new file mode 100644
index 0000000..2f4b94d
Binary files /dev/null and b/cerbero/commands/rdeps.pyc differ
diff --git a/cerbero/commands/runit.pyc b/cerbero/commands/runit.pyc
new file mode 100644
index 0000000..bb3389c
Binary files /dev/null and b/cerbero/commands/runit.pyc differ
diff --git a/cerbero/commands/shell.pyc b/cerbero/commands/shell.pyc
new file mode 100644
index 0000000..0aff725
Binary files /dev/null and b/cerbero/commands/shell.pyc differ
diff --git a/cerbero/commands/tag.pyc b/cerbero/commands/tag.pyc
new file mode 100644
index 0000000..b693538
Binary files /dev/null and b/cerbero/commands/tag.pyc differ
diff --git a/cerbero/commands/wipe.pyc b/cerbero/commands/wipe.pyc
new file mode 100644
index 0000000..7ca35dd
Binary files /dev/null and b/cerbero/commands/wipe.pyc differ
diff --git a/cerbero/config.pyc b/cerbero/config.pyc
new file mode 100644
index 0000000..dc91329
Binary files /dev/null and b/cerbero/config.pyc differ
diff --git a/cerbero/enums (copy).py b/cerbero/enums (copy).py
new file mode 100644
index 0000000..f1fcfd2
--- /dev/null
+++ b/cerbero/enums (copy).py	
@@ -0,0 +1,190 @@
+# cerbero - a multi-platform build system for Open Source software
+# Copyright (C) 2012 Andoni Morales Alastruey <ylatuya@gmail.com>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+
+class Platform:
+    ''' Enumeration of supported platforms '''
+    LINUX = 'linux'
+    WINDOWS = 'windows'
+    DARWIN = 'darwin'
+    ANDROID = 'android'
+    IOS = 'ios'
+
+
+class Architecture:
+    ''' Enumeration of supported acrchitectures '''
+    X86 = 'x86'
+    X86_64 = 'x86_64'
+    UNIVERSAL = 'universal'
+    ARM = 'arm'
+    ARMv7 = 'armv7'
+    ARMv7S = 'armv7s'
+    ARM64 = 'arm64'
+
+    @staticmethod
+    def is_arm(arch):
+        '''Returns whether the architecture is an ARM based one.
+        Note that it will include 32bit *and* 64bit ARM targets. If you
+        wish to do something special for 64bit you should first check for
+        that before calling this method.'''
+        return arch in [Architecture.ARM, Architecture.ARMv7,
+                Architecture.ARMv7S, Architecture.ARM64]
+
+
+class Distro:
+    ''' Enumeration of supported distributions '''
+    DEBIAN = 'debian'
+    REDHAT = 'redhat'
+    SUSE = 'suse'
+    WINDOWS = 'windows'
+    ARCH = 'arch'
+    OS_X = 'osx'
+    IOS = 'ios'
+    ANDROID = 'android'
+    NONE = 'none'
+
+
+class DistroVersion:
+    ''' Enumeration of supported distribution versions '''
+    DEBIAN_SQUEEZE = 'debian_squeeze'
+    DEBIAN_WHEEZY = 'debian_wheezy'
+    DEBIAN_JESSIE = 'debian_jessy'
+    DEBIAN_STRETCH = 'debian_stretch'
+    UBUNTU_MAVERICK = 'ubuntu_maverick'
+    UBUNTU_LUCID = 'ubuntu_lucid'
+    UBUNTU_NATTY = 'ubuntu_natty'
+    UBUNTU_ONEIRIC = 'ubuntu_oneiric'
+    UBUNTU_PRECISE = 'ubuntu_precise'
+    UBUNTU_QUANTAL = 'ubuntu_quantal'
+    UBUNTU_RARING = 'ubuntu_raring'
+    UBUNTU_SAUCY = 'ubuntu_saucy'
+    UBUNTU_TRUSTY = 'ubuntu_trusty'
+    UBUNTU_UTOPIC = 'ubuntu_utopic'
+    UBUNTU_VIVID = 'ubuntu_vivid'
+    UBUNTU_WILY = 'ubuntu_wily'
+    FEDORA_16 = 'fedora_16'
+    FEDORA_17 = 'fedora_17'
+    FEDORA_18 = 'fedora_18'
+    FEDORA_19 = 'fedora_19'
+    FEDORA_20 = 'fedora_20'
+    FEDORA_21 = 'fedora_21'
+    FEDORA_22 = 'fedora_22'
+    FEDORA_23 = 'fedora_23'
+    REDHAT_6 = 'redhat_6'
+    REDHAT_7 = 'redhat_7'
+    ARCH_ROLLING = 'rolling'
+    OPENSUSE_12_1 = 'opensuse_12_1'
+    OPENSUSE_12_2 = 'opensuse_12_2'
+    OPENSUSE_12_3 = 'opensuse_12_3'
+    WINDOWS_XP = 'windows_xp'
+    WINDOWS_VISTA = 'windows_vista'
+    WINDOWS_7 = 'windows_7'
+    WINDOWS_8 = 'windows_8'
+    WINDOWS_10 = 'windows_10'
+    OS_X_MAVERICKS = 'osx_mavericks'
+    OS_X_MOUNTAIN_LION = 'osx_mountain_lion'
+    OS_X_YOSEMITE = 'osx_yosemite'
+    OS_X_EL_CAPITAN = 'osx_el_capitan'
+    IOS_6_0 = 'ios_6_0'
+    IOS_6_1 = 'ios_6_1'
+    IOS_7_0 = 'ios_7_0'
+    IOS_7_1 = 'ios_7_1'
+    IOS_8_0 = 'ios_8_0'
+    IOS_8_1 = 'ios_8_1'
+    IOS_8_2 = 'ios_8_2'
+    IOS_8_3 = 'ios_8_3'
+    IOS_8_4 = 'ios_8_4'
+    IOS_9_0 = 'ios_9_0'
+    IOS_9_1 = 'ios_9_1'
+    IOS_9_2 = 'ios_9_2'
+    ANDROID_GINGERBREAD = 'android_gingerbread'  # API Level 9
+    ANDROID_ICE_CREAM_SANDWICH = 'android_ice_cream_sandwich'  # API Level 14
+    ANDROID_JELLY_BEAN = 'android_jelly_bean'  # API Level 16
+    ANDROID_KITKAT = 'android_kitkat'  # API Level 19
+    ANDROID_LOLLIPOP = 'android_lollipop' # API Level 21
+    NONE_UCLIBC = 'none_uclibc'
+    NONE_GLIBC = 'none_glibc'
+
+
+class LicenseDescription:
+
+    def __init__(self, acronym, pretty_name):
+        self.acronym = acronym
+        self.pretty_name = pretty_name
+
+
+class License:
+    ''' Enumeration of licensesversions '''
+    AFLv2_1 = LicenseDescription('AFL-2.1',
+            'Academic Free License, version 2.1')
+    Apachev2 = LicenseDescription('Apache-2.0',
+            'Apache License, version 2.0')
+    BSD = LicenseDescription('BSD',
+            'BSD License')
+    BSD_like = LicenseDescription('BSD-like',
+            'BSD-like License')
+    CC_BY_SA = LicenseDescription('CC-BY-SA',
+            'Creative Commons Attribution-ShareAlike')
+    FreeType = LicenseDescription('FreeType',
+            'FreeType License')
+    Jasperv2 = LicenseDescription('Jasper-2.0',
+            'JasPer LicenseVersion 2.0')
+    JPEG = LicenseDescription('JPEG',
+            'JasPer LicenseVersion 2.0')
+    GFDL = LicenseDescription('GFDL',
+            'GNU Free Documentation License')
+    GPL = LicenseDescription('GPL',
+            'GNU General Public License')
+    GPLv1 = LicenseDescription('GPL-1',
+            'GNU General Public License, version 1')
+    GPLv1Plus = LicenseDescription('GPL-1+',
+            'GNU General Public License, version 1 or later')
+    GPLv2 = LicenseDescription('GPL-2',
+            'GNU General Public License, version 2')
+    GPLv2Plus = LicenseDescription('GPL-2+',
+            'GNU General Public License, version 2 or later')
+    GPLv3 = LicenseDescription('GPL-3',
+            'GNU General Public License, version 3')
+    GPLv3Plus = LicenseDescription('GPL-3+',
+            'GNU General Public License, version 3 or later')
+    LGPL = LicenseDescription('LGPL',
+            'GNU Lesser General Public License')
+    LGPLv2 = LicenseDescription('LGPL-2',
+            'GNU Lesser General Public License, version 2')
+    LGPLv2Plus = LicenseDescription('LGPL-2+',
+            'GNU Lesser General Public License, version 2 or later')
+    LGPLv2_1 = LicenseDescription('LGPL-2.1',
+            'GNU Lesser General Public License, version 2.1')
+    LGPLv2_1Plus = LicenseDescription('LGPL-2.1+',
+            'GNU Lesser General Public License, version 2.1 or later')
+    LGPLv3 = LicenseDescription('LGPL-3',
+            'GNU Lesser General Public License, version 3')
+    LGPLv3Plus = LicenseDescription('LGPL-3+',
+            'GNU Lesser General Public License, version 3 or later')
+    MPLv1_1 = LicenseDescription('MPL-1.1',
+            'Mozilla Public License Version 1.1')
+    MPLv2 = LicenseDescription('MPL-2',
+            'Mozilla Public License Version 2.0')
+    LibPNG = LicenseDescription('LibPNG',
+            'LibPNG License')
+    MIT = LicenseDescription('MIT',
+            'MIT License')
+    PUBLIC_DOMAIN = LicenseDescription('PublicDomain',
+            'Public domain')
+    Proprietary = LicenseDescription('Proprietary',
+            'Proprietary License')
diff --git a/cerbero/enums.py b/cerbero/enums.py
index f1fcfd2..bdff6ba 100644
--- a/cerbero/enums.py
+++ b/cerbero/enums.py
@@ -35,6 +35,7 @@ class Architecture:
     ARMv7 = 'armv7'
     ARMv7S = 'armv7s'
     ARM64 = 'arm64'
+    MIPS = 'mips'
 
     @staticmethod
     def is_arm(arch):
diff --git a/cerbero/enums.pyc b/cerbero/enums.pyc
new file mode 100644
index 0000000..468c04f
Binary files /dev/null and b/cerbero/enums.pyc differ
diff --git a/cerbero/enums.py~ b/cerbero/enums.py~
new file mode 100644
index 0000000..f1fcfd2
--- /dev/null
+++ b/cerbero/enums.py~
@@ -0,0 +1,190 @@
+# cerbero - a multi-platform build system for Open Source software
+# Copyright (C) 2012 Andoni Morales Alastruey <ylatuya@gmail.com>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+
+class Platform:
+    ''' Enumeration of supported platforms '''
+    LINUX = 'linux'
+    WINDOWS = 'windows'
+    DARWIN = 'darwin'
+    ANDROID = 'android'
+    IOS = 'ios'
+
+
+class Architecture:
+    ''' Enumeration of supported acrchitectures '''
+    X86 = 'x86'
+    X86_64 = 'x86_64'
+    UNIVERSAL = 'universal'
+    ARM = 'arm'
+    ARMv7 = 'armv7'
+    ARMv7S = 'armv7s'
+    ARM64 = 'arm64'
+
+    @staticmethod
+    def is_arm(arch):
+        '''Returns whether the architecture is an ARM based one.
+        Note that it will include 32bit *and* 64bit ARM targets. If you
+        wish to do something special for 64bit you should first check for
+        that before calling this method.'''
+        return arch in [Architecture.ARM, Architecture.ARMv7,
+                Architecture.ARMv7S, Architecture.ARM64]
+
+
+class Distro:
+    ''' Enumeration of supported distributions '''
+    DEBIAN = 'debian'
+    REDHAT = 'redhat'
+    SUSE = 'suse'
+    WINDOWS = 'windows'
+    ARCH = 'arch'
+    OS_X = 'osx'
+    IOS = 'ios'
+    ANDROID = 'android'
+    NONE = 'none'
+
+
+class DistroVersion:
+    ''' Enumeration of supported distribution versions '''
+    DEBIAN_SQUEEZE = 'debian_squeeze'
+    DEBIAN_WHEEZY = 'debian_wheezy'
+    DEBIAN_JESSIE = 'debian_jessy'
+    DEBIAN_STRETCH = 'debian_stretch'
+    UBUNTU_MAVERICK = 'ubuntu_maverick'
+    UBUNTU_LUCID = 'ubuntu_lucid'
+    UBUNTU_NATTY = 'ubuntu_natty'
+    UBUNTU_ONEIRIC = 'ubuntu_oneiric'
+    UBUNTU_PRECISE = 'ubuntu_precise'
+    UBUNTU_QUANTAL = 'ubuntu_quantal'
+    UBUNTU_RARING = 'ubuntu_raring'
+    UBUNTU_SAUCY = 'ubuntu_saucy'
+    UBUNTU_TRUSTY = 'ubuntu_trusty'
+    UBUNTU_UTOPIC = 'ubuntu_utopic'
+    UBUNTU_VIVID = 'ubuntu_vivid'
+    UBUNTU_WILY = 'ubuntu_wily'
+    FEDORA_16 = 'fedora_16'
+    FEDORA_17 = 'fedora_17'
+    FEDORA_18 = 'fedora_18'
+    FEDORA_19 = 'fedora_19'
+    FEDORA_20 = 'fedora_20'
+    FEDORA_21 = 'fedora_21'
+    FEDORA_22 = 'fedora_22'
+    FEDORA_23 = 'fedora_23'
+    REDHAT_6 = 'redhat_6'
+    REDHAT_7 = 'redhat_7'
+    ARCH_ROLLING = 'rolling'
+    OPENSUSE_12_1 = 'opensuse_12_1'
+    OPENSUSE_12_2 = 'opensuse_12_2'
+    OPENSUSE_12_3 = 'opensuse_12_3'
+    WINDOWS_XP = 'windows_xp'
+    WINDOWS_VISTA = 'windows_vista'
+    WINDOWS_7 = 'windows_7'
+    WINDOWS_8 = 'windows_8'
+    WINDOWS_10 = 'windows_10'
+    OS_X_MAVERICKS = 'osx_mavericks'
+    OS_X_MOUNTAIN_LION = 'osx_mountain_lion'
+    OS_X_YOSEMITE = 'osx_yosemite'
+    OS_X_EL_CAPITAN = 'osx_el_capitan'
+    IOS_6_0 = 'ios_6_0'
+    IOS_6_1 = 'ios_6_1'
+    IOS_7_0 = 'ios_7_0'
+    IOS_7_1 = 'ios_7_1'
+    IOS_8_0 = 'ios_8_0'
+    IOS_8_1 = 'ios_8_1'
+    IOS_8_2 = 'ios_8_2'
+    IOS_8_3 = 'ios_8_3'
+    IOS_8_4 = 'ios_8_4'
+    IOS_9_0 = 'ios_9_0'
+    IOS_9_1 = 'ios_9_1'
+    IOS_9_2 = 'ios_9_2'
+    ANDROID_GINGERBREAD = 'android_gingerbread'  # API Level 9
+    ANDROID_ICE_CREAM_SANDWICH = 'android_ice_cream_sandwich'  # API Level 14
+    ANDROID_JELLY_BEAN = 'android_jelly_bean'  # API Level 16
+    ANDROID_KITKAT = 'android_kitkat'  # API Level 19
+    ANDROID_LOLLIPOP = 'android_lollipop' # API Level 21
+    NONE_UCLIBC = 'none_uclibc'
+    NONE_GLIBC = 'none_glibc'
+
+
+class LicenseDescription:
+
+    def __init__(self, acronym, pretty_name):
+        self.acronym = acronym
+        self.pretty_name = pretty_name
+
+
+class License:
+    ''' Enumeration of licensesversions '''
+    AFLv2_1 = LicenseDescription('AFL-2.1',
+            'Academic Free License, version 2.1')
+    Apachev2 = LicenseDescription('Apache-2.0',
+            'Apache License, version 2.0')
+    BSD = LicenseDescription('BSD',
+            'BSD License')
+    BSD_like = LicenseDescription('BSD-like',
+            'BSD-like License')
+    CC_BY_SA = LicenseDescription('CC-BY-SA',
+            'Creative Commons Attribution-ShareAlike')
+    FreeType = LicenseDescription('FreeType',
+            'FreeType License')
+    Jasperv2 = LicenseDescription('Jasper-2.0',
+            'JasPer LicenseVersion 2.0')
+    JPEG = LicenseDescription('JPEG',
+            'JasPer LicenseVersion 2.0')
+    GFDL = LicenseDescription('GFDL',
+            'GNU Free Documentation License')
+    GPL = LicenseDescription('GPL',
+            'GNU General Public License')
+    GPLv1 = LicenseDescription('GPL-1',
+            'GNU General Public License, version 1')
+    GPLv1Plus = LicenseDescription('GPL-1+',
+            'GNU General Public License, version 1 or later')
+    GPLv2 = LicenseDescription('GPL-2',
+            'GNU General Public License, version 2')
+    GPLv2Plus = LicenseDescription('GPL-2+',
+            'GNU General Public License, version 2 or later')
+    GPLv3 = LicenseDescription('GPL-3',
+            'GNU General Public License, version 3')
+    GPLv3Plus = LicenseDescription('GPL-3+',
+            'GNU General Public License, version 3 or later')
+    LGPL = LicenseDescription('LGPL',
+            'GNU Lesser General Public License')
+    LGPLv2 = LicenseDescription('LGPL-2',
+            'GNU Lesser General Public License, version 2')
+    LGPLv2Plus = LicenseDescription('LGPL-2+',
+            'GNU Lesser General Public License, version 2 or later')
+    LGPLv2_1 = LicenseDescription('LGPL-2.1',
+            'GNU Lesser General Public License, version 2.1')
+    LGPLv2_1Plus = LicenseDescription('LGPL-2.1+',
+            'GNU Lesser General Public License, version 2.1 or later')
+    LGPLv3 = LicenseDescription('LGPL-3',
+            'GNU Lesser General Public License, version 3')
+    LGPLv3Plus = LicenseDescription('LGPL-3+',
+            'GNU Lesser General Public License, version 3 or later')
+    MPLv1_1 = LicenseDescription('MPL-1.1',
+            'Mozilla Public License Version 1.1')
+    MPLv2 = LicenseDescription('MPL-2',
+            'Mozilla Public License Version 2.0')
+    LibPNG = LicenseDescription('LibPNG',
+            'LibPNG License')
+    MIT = LicenseDescription('MIT',
+            'MIT License')
+    PUBLIC_DOMAIN = LicenseDescription('PublicDomain',
+            'Public domain')
+    Proprietary = LicenseDescription('Proprietary',
+            'Proprietary License')
diff --git a/cerbero/errors.pyc b/cerbero/errors.pyc
new file mode 100644
index 0000000..b6fb2b8
Binary files /dev/null and b/cerbero/errors.pyc differ
diff --git a/cerbero/hacks.pyc b/cerbero/hacks.pyc
new file mode 100644
index 0000000..5e71539
Binary files /dev/null and b/cerbero/hacks.pyc differ
diff --git a/cerbero/ide/__init__.pyc b/cerbero/ide/__init__.pyc
new file mode 100644
index 0000000..4d00a6a
Binary files /dev/null and b/cerbero/ide/__init__.pyc differ
diff --git a/cerbero/ide/pkgconfig.pyc b/cerbero/ide/pkgconfig.pyc
new file mode 100644
index 0000000..db61f3c
Binary files /dev/null and b/cerbero/ide/pkgconfig.pyc differ
diff --git a/cerbero/ide/vs/__init__.pyc b/cerbero/ide/vs/__init__.pyc
new file mode 100644
index 0000000..fe09d21
Binary files /dev/null and b/cerbero/ide/vs/__init__.pyc differ
diff --git a/cerbero/ide/vs/genlib.pyc b/cerbero/ide/vs/genlib.pyc
new file mode 100644
index 0000000..ac8ab60
Binary files /dev/null and b/cerbero/ide/vs/genlib.pyc differ
diff --git a/cerbero/ide/vs/pkgconfig2vsprops.pyc b/cerbero/ide/vs/pkgconfig2vsprops.pyc
new file mode 100644
index 0000000..8ce6fff
Binary files /dev/null and b/cerbero/ide/vs/pkgconfig2vsprops.pyc differ
diff --git a/cerbero/ide/vs/props.pyc b/cerbero/ide/vs/props.pyc
new file mode 100644
index 0000000..9507154
Binary files /dev/null and b/cerbero/ide/vs/props.pyc differ
diff --git a/cerbero/ide/vs/vsprops.pyc b/cerbero/ide/vs/vsprops.pyc
new file mode 100644
index 0000000..be643f7
Binary files /dev/null and b/cerbero/ide/vs/vsprops.pyc differ
diff --git a/cerbero/ide/xcode/__init__.pyc b/cerbero/ide/xcode/__init__.pyc
new file mode 100644
index 0000000..9afe814
Binary files /dev/null and b/cerbero/ide/xcode/__init__.pyc differ
diff --git a/cerbero/ide/xcode/fwlib.pyc b/cerbero/ide/xcode/fwlib.pyc
new file mode 100644
index 0000000..3ef6d08
Binary files /dev/null and b/cerbero/ide/xcode/fwlib.pyc differ
diff --git a/cerbero/ide/xcode/xcconfig.pyc b/cerbero/ide/xcode/xcconfig.pyc
new file mode 100644
index 0000000..b84ef5c
Binary files /dev/null and b/cerbero/ide/xcode/xcconfig.pyc differ
diff --git a/cerbero/main.pyc b/cerbero/main.pyc
new file mode 100644
index 0000000..e7772d7
Binary files /dev/null and b/cerbero/main.pyc differ
diff --git a/cerbero/packages/__init__.pyc b/cerbero/packages/__init__.pyc
new file mode 100644
index 0000000..079c004
Binary files /dev/null and b/cerbero/packages/__init__.pyc differ
diff --git a/cerbero/packages/android.pyc b/cerbero/packages/android.pyc
new file mode 100644
index 0000000..1a3ea98
Binary files /dev/null and b/cerbero/packages/android.pyc differ
diff --git a/cerbero/packages/debian.pyc b/cerbero/packages/debian.pyc
new file mode 100644
index 0000000..40620e2
Binary files /dev/null and b/cerbero/packages/debian.pyc differ
diff --git a/cerbero/packages/disttarball.pyc b/cerbero/packages/disttarball.pyc
new file mode 100644
index 0000000..f7a42ab
Binary files /dev/null and b/cerbero/packages/disttarball.pyc differ
diff --git a/cerbero/packages/linux.pyc b/cerbero/packages/linux.pyc
new file mode 100644
index 0000000..740d7c9
Binary files /dev/null and b/cerbero/packages/linux.pyc differ
diff --git a/cerbero/packages/linux_bundle.pyc b/cerbero/packages/linux_bundle.pyc
new file mode 100644
index 0000000..b859717
Binary files /dev/null and b/cerbero/packages/linux_bundle.pyc differ
diff --git a/cerbero/packages/osx/__init__.pyc b/cerbero/packages/osx/__init__.pyc
new file mode 100644
index 0000000..e061a7e
Binary files /dev/null and b/cerbero/packages/osx/__init__.pyc differ
diff --git a/cerbero/packages/osx/buildtools.pyc b/cerbero/packages/osx/buildtools.pyc
new file mode 100644
index 0000000..947a786
Binary files /dev/null and b/cerbero/packages/osx/buildtools.pyc differ
diff --git a/cerbero/packages/osx/bundles.pyc b/cerbero/packages/osx/bundles.pyc
new file mode 100644
index 0000000..2cee7be
Binary files /dev/null and b/cerbero/packages/osx/bundles.pyc differ
diff --git a/cerbero/packages/osx/distribution.pyc b/cerbero/packages/osx/distribution.pyc
new file mode 100644
index 0000000..068a402
Binary files /dev/null and b/cerbero/packages/osx/distribution.pyc differ
diff --git a/cerbero/packages/osx/info_plist.pyc b/cerbero/packages/osx/info_plist.pyc
new file mode 100644
index 0000000..b8a6c38
Binary files /dev/null and b/cerbero/packages/osx/info_plist.pyc differ
diff --git a/cerbero/packages/osx/packager.pyc b/cerbero/packages/osx/packager.pyc
new file mode 100644
index 0000000..5c1ae1c
Binary files /dev/null and b/cerbero/packages/osx/packager.pyc differ
diff --git a/cerbero/packages/package.pyc b/cerbero/packages/package.pyc
new file mode 100644
index 0000000..013d9fc
Binary files /dev/null and b/cerbero/packages/package.pyc differ
diff --git a/cerbero/packages/packager.pyc b/cerbero/packages/packager.pyc
new file mode 100644
index 0000000..4eb2f8a
Binary files /dev/null and b/cerbero/packages/packager.pyc differ
diff --git a/cerbero/packages/packagesstore.pyc b/cerbero/packages/packagesstore.pyc
new file mode 100644
index 0000000..d74ee4a
Binary files /dev/null and b/cerbero/packages/packagesstore.pyc differ
diff --git a/cerbero/packages/rpm.pyc b/cerbero/packages/rpm.pyc
new file mode 100644
index 0000000..3949ee0
Binary files /dev/null and b/cerbero/packages/rpm.pyc differ
diff --git a/cerbero/packages/wix.pyc b/cerbero/packages/wix.pyc
new file mode 100644
index 0000000..0d8ad2d
Binary files /dev/null and b/cerbero/packages/wix.pyc differ
diff --git a/cerbero/packages/wix_packager.pyc b/cerbero/packages/wix_packager.pyc
new file mode 100644
index 0000000..45e85cc
Binary files /dev/null and b/cerbero/packages/wix_packager.pyc differ
diff --git a/cerbero/tools/__init__.pyc b/cerbero/tools/__init__.pyc
new file mode 100644
index 0000000..1ac58d9
Binary files /dev/null and b/cerbero/tools/__init__.pyc differ
diff --git a/cerbero/tools/libtool.pyc b/cerbero/tools/libtool.pyc
new file mode 100644
index 0000000..da7cdef
Binary files /dev/null and b/cerbero/tools/libtool.pyc differ
diff --git a/cerbero/tools/osxrelocator.pyc b/cerbero/tools/osxrelocator.pyc
new file mode 100644
index 0000000..fb56451
Binary files /dev/null and b/cerbero/tools/osxrelocator.pyc differ
diff --git a/cerbero/tools/osxuniversalgenerator.pyc b/cerbero/tools/osxuniversalgenerator.pyc
new file mode 100644
index 0000000..42f6813
Binary files /dev/null and b/cerbero/tools/osxuniversalgenerator.pyc differ
diff --git a/cerbero/tools/pkgconfig.pyc b/cerbero/tools/pkgconfig.pyc
new file mode 100644
index 0000000..6150679
Binary files /dev/null and b/cerbero/tools/pkgconfig.pyc differ
diff --git a/cerbero/tools/strip.pyc b/cerbero/tools/strip.pyc
new file mode 100644
index 0000000..592da72
Binary files /dev/null and b/cerbero/tools/strip.pyc differ
diff --git a/cerbero/utils/__init__.pyc b/cerbero/utils/__init__.pyc
new file mode 100644
index 0000000..e3f594e
Binary files /dev/null and b/cerbero/utils/__init__.pyc differ
diff --git a/cerbero/utils/git.pyc b/cerbero/utils/git.pyc
new file mode 100644
index 0000000..457233f
Binary files /dev/null and b/cerbero/utils/git.pyc differ
diff --git a/cerbero/utils/messages.pyc b/cerbero/utils/messages.pyc
new file mode 100644
index 0000000..3541663
Binary files /dev/null and b/cerbero/utils/messages.pyc differ
diff --git a/cerbero/utils/shell.pyc b/cerbero/utils/shell.pyc
new file mode 100644
index 0000000..e22c841
Binary files /dev/null and b/cerbero/utils/shell.pyc differ
diff --git a/cerbero/utils/svn.pyc b/cerbero/utils/svn.pyc
new file mode 100644
index 0000000..b85652c
Binary files /dev/null and b/cerbero/utils/svn.pyc differ
diff --git a/cerbero_mips_patch_20160216.patch b/cerbero_mips_patch_20160216.patch
new file mode 100644
index 0000000..bf819c8
--- /dev/null
+++ b/cerbero_mips_patch_20160216.patch
@@ -0,0 +1,27 @@
+commit ac9241217adc9dadcc3068a64d7ffb7c79d830f4
+Author: Edward Hervey <bilboed@bilboed.com>
+Date:   Tue Feb 9 09:23:51 2016 +0100
+
+    enums: ARM64 is an arm
+    
+    Note that if one wants to do something different with 64 bit arm, one
+    should first check for that architecture before using this method.
+
+diff --git a/cerbero/enums.py b/cerbero/enums.py
+index 1372cc1..f1fcfd2 100644
+--- a/cerbero/enums.py
++++ b/cerbero/enums.py
+@@ -38,8 +38,12 @@ class Architecture:
+ 
+     @staticmethod
+     def is_arm(arch):
++        '''Returns whether the architecture is an ARM based one.
++        Note that it will include 32bit *and* 64bit ARM targets. If you
++        wish to do something special for 64bit you should first check for
++        that before calling this method.'''
+         return arch in [Architecture.ARM, Architecture.ARMv7,
+-                Architecture.ARMv7S]
++                Architecture.ARMv7S, Architecture.ARM64]
+ 
+ 
+ class Distro:
diff --git a/config/android.config b/config/android.config
index 82227db..65b3d9c 100644
--- a/config/android.config
+++ b/config/android.config
@@ -47,6 +47,20 @@ elif target_arch == Architecture.ARM64:
                 break
         if toolchain_path:
             break
+elif target_arch == Architecture.MIPS:
+    tools_prefix = 'mipsel-linux-android'
+    host = "mipsel-linux-android"
+    _arch = 'mips'
+
+    for tc_version in ['4.9', '4.8', '4.7', '4.6']:
+        for tc_arch in ['linux-x86', 'linux-x86_64']:
+            tmp = '%s/toolchains/mipsel-linux-android-%s/prebuilt/%s/bin' % (toolchain_prefix, tc_version, tc_arch)
+            if os.path.exists(tmp):
+                toolchain_path = tmp
+		toolchain_version = tc_version
+                break
+        if toolchain_path:
+            break
 elif target_arch == Architecture.X86:
     tools_prefix = 'i686-linux-android'
     host = "i686-linux-android"
@@ -128,7 +142,9 @@ if target_arch in [Architecture.ARM, Architecture.ARMv7, Architecture.ARM64]:
         ldflags += "-march=armv7-a -Wl,--fix-cortex-a8 "
 elif target_arch == Architecture.X86:
     cflags += ' -march=i686 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300'
-
+elif target_arch == Architecture.MIPS:
+    cflags += ' -march=mips32r2 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300'
+    ldflags += ' -march=mips32r2 '
 
 # Toolchain environment
 os.environ['CPPFLAGS'] = '--sysroot=%s -I%s/usr/include %s' % (sysroot, sysroot, defines)
@@ -140,10 +156,15 @@ def cmd(command):
     return '%s-%s' % (tools_prefix, command)
 
 os.environ['CC']= '%s%s' % (ccache, cmd('gcc'))
-os.environ['CC'] += ' -fuse-ld=%s' % ldvariant
+if target_arch != Architecture.MIPS:
+	os.environ['CC'] += ' -fuse-ld=%s' % ldvariant
 os.environ['CXX']= '%s%s' % (ccache, cmd('g++'))
-os.environ['CXX'] += ' -fuse-ld=%s' % ldvariant
-os.environ['LD']= cmd('ld.%s' % ldvariant)
+if target_arch != Architecture.MIPS:
+	os.environ['CXX'] += ' -fuse-ld=%s' % ldvariant
+if target_arch == Architecture.MIPS:
+	os.environ['LD']= cmd('ld')
+else:
+	os.environ['LD']= cmd('ld.%s' % ldvariant)
 os.environ['CPP']= cmd('cpp')
 os.environ['RANLIB']= cmd('ranlib')
 os.environ['AR']= cmd('ar')
diff --git a/config/android.config~ b/config/android.config~
new file mode 100644
index 0000000..20b57f4
--- /dev/null
+++ b/config/android.config~
@@ -0,0 +1,197 @@
+# This file contains the default configuration to compile for Android
+# platforms. It contains sensitive enviroment configuration that
+# shouldn't be modified unless you know what you are doing.
+# PLEASE, DO NOT EDIT THIS FILE
+
+import os
+from cerbero.config import Architecture, DistroVersion
+from cerbero.errors import FatalError
+import cerbero.utils.messages as m
+
+variants += ['nogtk3', 'noclutter', 'nopython', 'notestspackage']
+
+# We don't want anything from linux system to be used on android :)
+allow_system_libs=False
+
+if not toolchain_prefix:
+    toolchain_prefix = os.path.join(home_dir, 'android-ndk-r10e')
+
+toolchain_path = None
+toolchain_version = None
+
+if target_arch == Architecture.ARM or target_arch == Architecture.ARMv7:
+    tools_prefix = 'arm-linux-androideabi'
+    host = "arm-linux-androideabi"
+    _arch = 'arm'
+
+    for tc_version in ['4.9', '4.8', '4.7', '4.6']:
+        for tc_arch in ['darwin-x86', 'darwin-x86_64', 'linux-x86', 'linux-x86_64']:
+            tmp = '%s/toolchains/arm-linux-androideabi-%s/prebuilt/%s/bin' % (toolchain_prefix, tc_version, tc_arch)
+            if os.path.exists(tmp):
+                toolchain_path = tmp
+                toolchain_version = tc_version
+                break
+        if toolchain_path:
+            break
+elif target_arch == Architecture.ARM64:
+    tools_prefix = 'aarch64-linux-android'
+    host = "aarch64-linux-android"
+    _arch = 'arm64'
+
+    for tc_version in ['4.9', '4.8', '4.7', '4.6']:
+        for tc_arch in ['darwin-x86', 'darwin-x86_64', 'linux-x86', 'linux-x86_64']:
+            tmp = '%s/toolchains/aarch64-linux-android-%s/prebuilt/%s/bin' % (toolchain_prefix, tc_version, tc_arch)
+            if os.path.exists(tmp):
+                toolchain_path = tmp
+                toolchain_version = tc_version
+                break
+        if toolchain_path:
+            break
+elif target_arch == Architecture.MIPS:
+    tools_prefix = 'mipsel-linux-android'
+    host = "mipsel-linux-android"
+    _arch = 'mips'
+
+    for tc_version in ['4.9', '4.8', '4.7', '4.6']:
+        for tc_arch in ['linux-x86', 'linux-x86_64']:
+            tmp = '%s/toolchains/mipsel-linux-android-%s/prebuilt/%s/bin' % (toolchain_prefix, tc_version, tc_arch)
+            if os.path.exists(tmp):
+                toolchain_path = tmp
+		toolchain_version = tc_version
+                break
+        if toolchain_path:
+            break
+elif target_arch == Architecture.X86:
+    tools_prefix = 'i686-linux-android'
+    host = "i686-linux-android"
+    _arch = 'x86'
+    for tc_version in ['4.9', '4.8', '4.7', '4.6']:
+        for tc_arch in ['darwin-x86', 'darwin-x86_64', 'linux-x86', 'linux-x86_64']:
+            tmp = '%s/toolchains/x86-%s/prebuilt/%s/bin' % (toolchain_prefix, tc_version, tc_arch)
+            if os.path.exists(tmp):
+                toolchain_path = tmp
+                toolchain_version = tc_version
+                break
+        if toolchain_path:
+            break
+elif target_arch == Architecture.X86_64:
+    tools_prefix = 'x86_64-linux-android'
+    host = "x86_64-linux-android"
+    _arch = 'x86_64'
+    for tc_version in ['4.9', '4.8', '4.7', '4.6']:
+        for tc_arch in ['darwin-x86', 'darwin-x86_64', 'linux-x86', 'linux-x86_64']:
+            tmp = '%s/toolchains/x86_64-%s/prebuilt/%s/bin' % (toolchain_prefix, tc_version, tc_arch)
+            if os.path.exists(tmp):
+                toolchain_path = tmp
+                toolchain_version = tc_version
+                break
+        if toolchain_path:
+            break
+elif target_arch == Architecture.UNIVERSAL:
+    _arch = ''
+    tools_prefix = ''
+    toolchain_path = '.'
+else:
+  raise FatalError("Arch %s not supported" % target_arch)
+
+if not toolchain_path:
+  m.warning ("Android NDK not found")
+
+if target_distro_version == DistroVersion.ANDROID_GINGERBREAD:
+    v = '9'
+elif target_distro_version == DistroVersion.ANDROID_ICE_CREAM_SANDWICH:
+    v = '14'
+elif target_distro_version == DistroVersion.ANDROID_JELLY_BEAN:
+    v = '16'
+elif target_distro_version == DistroVersion.ANDROID_KITKAT:
+    v = '19'
+elif target_distro_version == DistroVersion.ANDROID_LOLLIPOP:
+    v = '21'
+else:
+  raise FatalError("DistroVersion not supported")
+
+sysroot = "%s/platforms/android-%s/arch-%s" % (toolchain_prefix, v, _arch)
+
+# Default compiler flags
+os.environ['CFLAGS'] = '-Wall -g -Os '
+os.environ['CXXFLAGS'] = '-Wall -g -Os '
+os.environ['OBJCFLAGS'] = '-Wall -g -Os '
+
+ccache = use_ccache and 'ccache ' or ''
+defines = '-DANDROID -DPIC'
+cflags = '--sysroot=%s -I%s/usr/include -ffunction-sections -funwind-tables -fstack-protector -no-canonical-prefixes -fPIC' % (sysroot, sysroot)
+ldflags = '--sysroot=%s -fPIC -no-canonical-prefixes -Wl,-no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--gc-sections -Wl,-dynamic-linker,/system/bin/linker ' % (sysroot)
+if not target_arch in [Architecture.ARM64, Architecture.X86_64]:
+   # nocopyreloc causes broken linking on arm64
+   ldflags += ' -Wl,-z,nocopyreloc '
+if target_arch in [Architecture.X86_64]:
+   ldflags += ' -L%s/usr/lib64 ' % sysroot
+else:
+   ldflags += ' -L%s/usr/lib ' % sysroot
+
+ldvariant = 'gold'
+# from android-ndk-r8b/toolchains/$NAME-$VERSION/setup.mk
+if target_arch in [Architecture.ARM, Architecture.ARMv7, Architecture.ARM64]:
+    cflags += ' -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 '
+    if target_arch == Architecture.ARM:
+        defines += ' -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ '
+        cflags += ' -mthumb -march=armv5te -mtune=xscale -msoft-float'
+    elif target_arch == Architecture.ARMv7:
+        defines += ' -D__ARM_ARCH_7A__ '
+        cflags += ' -mthumb -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16'
+        ldflags += "-march=armv7-a -Wl,--fix-cortex-a8 "
+elif target_arch == Architecture.X86:
+    cflags += ' -march=i686 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300'
+elif target_arch == Architecture.MIPS:
+    cflags += ' -march=mips32 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300'
+    ldflags += ' -march=mips32 '
+
+# Toolchain environment
+os.environ['CPPFLAGS'] = '--sysroot=%s -I%s/usr/include %s' % (sysroot, sysroot, defines)
+os.environ['CFLAGS'] += "%s %s -Wa,--noexecstack" % (cflags, defines)
+os.environ['CXXFLAGS'] = os.environ['CFLAGS']
+os.environ['LDFLAGS'] = '%s' % (ldflags,)
+
+def cmd(command):
+    return '%s-%s' % (tools_prefix, command)
+
+os.environ['CC']= '%s%s' % (ccache, cmd('gcc'))
+if target_arch != Architecture.MIPS:
+	os.environ['CC'] += ' -fuse-ld=%s' % ldvariant
+os.environ['CXX']= '%s%s' % (ccache, cmd('g++'))
+if target_arch != Architecture.MIPS:
+	os.environ['CXX'] += ' -fuse-ld=%s' % ldvariant
+if target_arch == Architecture.MIPS:
+	os.environ['LD']= cmd('ld')
+else:
+	os.environ['LD']= cmd('ld.%s' % ldvariant)
+os.environ['CPP']= cmd('cpp')
+os.environ['RANLIB']= cmd('ranlib')
+os.environ['AR']= cmd('ar')
+os.environ['AS']= cmd('as')
+os.environ['NM']= cmd('nm')
+os.environ['STRIP']= cmd('strip')
+os.environ['OBJCOPY']= cmd('objcopy')
+
+os.environ['PATH'] = '%s:%s:%s' % (toolchain_prefix, toolchain_path, os.environ['PATH'])
+# For the libc.so dependency in i686-linux-android-as
+if target_arch == Architecture.X86:
+    extra_lib_path = '%s/usr/lib' % (sysroot)
+elif target_arch == Architecture.X86_64:
+    extra_lib_path = '%s/usr/lib64' % (sysroot)
+
+
+# For GLib
+os.environ['glib_cv_stack_grows'] = 'yes'
+os.environ['glib_cv_uscore'] = 'no'
+os.environ['ac_cv_func_posix_getpwuid_r'] = 'no'
+os.environ['ac_cv_func_nonposix_getpwuid_r'] = 'no'
+os.environ['ac_cv_func_posix_getgrgid_r'] = 'no'
+os.environ['ac_cv_func_nonposix_getgrgid_r'] = 'no'
+
+# For cairo
+# FIXME : IF WE ADD BIG-ENDIAN PLATFORMS, FIX THIS !
+os.environ['ax_cv_c_float_words_bigendian'] = 'no'
+
+#No, really, it doesn't have uselocale
+os.environ['ac_cv_func_uselocale'] = 'no'
diff --git a/config/cross-android-mips.cbc b/config/cross-android-mips.cbc
new file mode 100644
index 0000000..cf7d023
--- /dev/null
+++ b/config/cross-android-mips.cbc
@@ -0,0 +1,9 @@
+import os
+from cerbero.config import Platform, Architecture, Distro, DistroVersion
+
+target_platform = Platform.ANDROID
+target_distro = Distro.ANDROID
+target_distro_version = DistroVersion.ANDROID_GINGERBREAD
+target_arch = Architecture.MIPS
+
+#variants = ['nodebug']
diff --git a/config/cross-android-mips.cbc~ b/config/cross-android-mips.cbc~
new file mode 100644
index 0000000..e69de29
diff --git a/installpatch b/installpatch
new file mode 100644
index 0000000..201596a
--- /dev/null
+++ b/installpatch
@@ -0,0 +1,172 @@
+diff --git a/recipes/libmad/0005-imp_constraint.patch b/recipes/libmad/0005-imp_constraint.patch
+new file mode 100644
+index 0000000..903ae03
+--- /dev/null
++++ b/recipes/libmad/0005-imp_constraint.patch
+@@ -0,0 +1,34 @@
++diff -u -r a/apps/codecs/libmad/fixed.h b/apps/codecs/libmad/fixed.h
++--- a/fixed.h
+++++ b/fixed.h
++@@ -292,6 +292,21 @@
++ 
++ # elif defined(FPM_MIPS)
++ 
+++#if defined (__GNUC__) && defined (__GNUC_MINOR__) 
+++#define __GNUC_PREREQ(maj, min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) 
+++#else 
+++#define __GNUC_PREREQ(maj, min)  0 
+++#endif 
+++
+++#if __GNUC_PREREQ(4,4) 
+++typedef unsigned int u64_di_t __attribute__ ((mode (DI))); 
+++# define MAD_F_MLX(hi, lo, x, y) \
+++do { \
+++   u64_di_t __ll = (u64_di_t) (x) * (y); \
+++   hi = __ll >> 32; \
+++   lo = __ll; \
+++}while(0)
+++#else
++ /*
++  * This MIPS version is fast and accurate; the disposition of the least
++  * significant bit depends on OPT_ACCURACY via mad_f_scale64().
++@@ -321,6 +336,8 @@
++          : "%r" ((x) >> 12), "r" ((y) >> 16))
++ #  define MAD_F_MLZ(hi, lo)  ((mad_fixed_t) (lo))
++ # endif
+++
+++#endif /* __GNU_PREREQ(4,4) */ 
++ 
++ # if defined(OPT_SPEED)
++ #  define mad_f_scale64(hi, lo)  \
+diff --git a/recipes/libvpx/0009-configure-mips.patch b/recipes/libvpx/0009-configure-mips.patch
+new file mode 100644
+index 0000000..fa33b61
+--- /dev/null
++++ b/recipes/libvpx/0009-configure-mips.patch
+@@ -0,0 +1,11 @@
++--- a/configure
+++++ b/configure
++@@ -102,6 +102,7 @@ all_platforms="${all_platforms} mips32-android-gcc"
++ all_platforms="${all_platforms} armv7-win32-vs11"
++ all_platforms="${all_platforms} armv7-win32-vs12"
++ all_platforms="${all_platforms} mips32-linux-gcc"
+++all_platforms="${all_platforms} mips32-android-gcc"
++ all_platforms="${all_platforms} ppc32-darwin8-gcc"
++ all_platforms="${all_platforms} ppc32-darwin9-gcc"
++ all_platforms="${all_platforms} ppc32-linux-gcc"-- 
++
+diff --git a/recipes/libvpx/0010-androidmk-mips.patch b/recipes/libvpx/0010-androidmk-mips.patch
+new file mode 100644
+index 0000000..5e9eb02
+--- /dev/null
++++ b/recipes/libvpx/0010-androidmk-mips.patch
+@@ -0,0 +1,106 @@
++diff --git a/build/make/Android.mk b/build/make/Android.mk
++index 48a0dd7..369c2a5 100644
++--- a/build/make/Android.mk
+++++ b/build/make/Android.mk
++@@ -53,12 +53,20 @@
++ ASM_CNV_PATH_LOCAL := $(TARGET_ARCH_ABI)/ads2gas
++ ASM_CNV_PATH := $(LOCAL_PATH)/$(ASM_CNV_PATH_LOCAL)
++ 
++-# Makefiles created by the libvpx configure process
++-# This will need to be fixed to handle x86.
+++# Use the makefiles generated by upstream configure to determine which files to
+++# build. Also set any architecture-specific flags.
++ ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
++   include $(CONFIG_DIR)libs-armv7-android-gcc.mk
++-else
+++  LOCAL_ARM_MODE := arm
+++else ifeq  ($(TARGET_ARCH_ABI),armeabi)
++   include $(CONFIG_DIR)libs-armv5te-android-gcc.mk
+++  LOCAL_ARM_MODE := arm
+++else ifeq ($(TARGET_ARCH_ABI),x86)
+++  include $(CONFIG_DIR)libs-x86-android-gcc.mk
+++else ifeq ($(TARGET_ARCH_ABI),mips)
+++  include $(CONFIG_DIR)libs-mips-android-gcc.mk
+++else
+++  $(error Not a supported TARGET_ARCH_ABI: $(TARGET_ARCH_ABI))
++ endif
++ 
++ # Rule that is normally in Makefile created by libvpx
++@@ -72,9 +80,12 @@
++ # Include the list of files to be built
++ include $(LIBVPX_PATH)/libs.mk
++ 
++-# Want arm, not thumb, optimized
++-LOCAL_ARM_MODE := arm
+++# Optimise the code. May want to revisit this setting in the future.
++ LOCAL_CFLAGS := -O3
+++
+++# For x86, include the source code in the search path so it will find files
+++# like x86inc.asm and x86_abi_support.asm
+++LOCAL_ASMFLAGS := -I$(LIBVPX_PATH)
++ 
++ # -----------------------------------------------------------------------------
++ # Template  : asm_offsets_template
++@@ -109,7 +120,7 @@
++ 	@grep $(OFFSET_PATTERN) $$< | tr -d '\#' | $(CONFIG_DIR)$(ASM_CONVERSION) > $$@
++ endef
++ 
++-# Use ads2gas script to convert from RVCT format to GAS format.  This passes
+++# Use ads2gas script to convert from RVCT format to GAS format.  This
++ #  puts the processed file under $(ASM_CNV_PATH).  Local clean rule
++ #  to handle removing these
++ ifeq ($(CONFIG_VP8_ENCODER), yes)
++@@ -146,18 +157,26 @@
++ 
++ # Pull out assembly files, splitting NEON from the rest.  This is
++ # done to specify that the NEON assembly files use NEON assembler flags.
++-CODEC_SRCS_ASM_ALL = $(filter %.asm.s, $(CODEC_SRCS_UNIQUE))
++-CODEC_SRCS_ASM = $(foreach v, \
++-                 $(CODEC_SRCS_ASM_ALL), \
++-                 $(if $(findstring neon,$(v)),,$(v)))
+++# x86 assembly matches %.asm, arm matches %.asm.s
+++
+++# x86:
+++
+++CODEC_SRCS_ASM_X86 = $(filter %.asm, $(CODEC_SRCS_UNIQUE))
+++LOCAL_SRC_FILES += $(foreach file, $(CODEC_SRCS_ASM_X86), libvpx/$(file))
+++
+++# arm:
+++CODEC_SRCS_ASM_ARM_ALL = $(filter %.asm.s, $(CODEC_SRCS_UNIQUE))
+++CODEC_SRCS_ASM_ARM = $(foreach v, \
+++                     $(CODEC_SRCS_ASM_ARM_ALL), \
+++                     $(if $(findstring neon,$(v)),,$(v)))
++ CODEC_SRCS_ASM_ADS2GAS = $(patsubst %.s, \
++                          $(ASM_CNV_PATH_LOCAL)/libvpx/%.s, \
++-                         $(CODEC_SRCS_ASM))
+++                         $(CODEC_SRCS_ASM_ARM))
++ LOCAL_SRC_FILES += $(CODEC_SRCS_ASM_ADS2GAS)
++ 
++ ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
++   CODEC_SRCS_ASM_NEON = $(foreach v, \
++-                        $(CODEC_SRCS_ASM_ALL),\
+++                        $(CODEC_SRCS_ASM_ARM_ALL),\
++                         $(if $(findstring neon,$(v)),$(v),))
++   CODEC_SRCS_ASM_NEON_ADS2GAS = $(patsubst %.s, \
++                                 $(ASM_CNV_PATH_LOCAL)/libvpx/%.s, \
++@@ -189,6 +208,10 @@
++ endif
++ $(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vpx_scale_rtcd.h
++ 
+++ifeq ($(TARGET_ARCH_ABI),x86)
+++$(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vpx_config.asm
+++endif
+++
++ .PHONY: clean
++ clean:
++ 	@echo "Clean: ads2gas files [$(TARGET_ARCH_ABI)]"
++diff --git a/test/android/README b/test/android/README
++index 6840d91..4a1adcf 100644
++--- a/test/android/README
+++++ b/test/android/README
++@@ -3,7 +3,7 @@
++ ./libvpx/configure --target=armv7-android-gcc --enable-external-build \
++   --enable-postproc --disable-install-srcs --enable-multi-res-encoding \
++   --enable-temporal-denoising --disable-unit-tests --disable-install-docs \
++-  --disable-examples --disable-runtime-cpu-detect --sdk=$NDK
+++  --disable-examples --disable-runtime-cpu-detect --sdk-path=$NDK
+Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
+Status API Training Shop Blog About Pricing
+© 2016 GitHub, Inc. Terms Privacy Security Contact Help
diff --git a/installpatch~ b/installpatch~
new file mode 100644
index 0000000..e69de29
diff --git a/recipes/custom.pyc b/recipes/custom.pyc
new file mode 100644
index 0000000..251499b
Binary files /dev/null and b/recipes/custom.pyc differ
diff --git a/recipes/gnustl.recipe b/recipes/gnustl.recipe
index 7276fe0..dc71b0f 100644
--- a/recipes/gnustl.recipe
+++ b/recipes/gnustl.recipe
@@ -3,6 +3,7 @@ import shutil
 
 from cerbero.tools.libtool import LibtoolLibrary
 from cerbero.tools.pkgconfig import PkgConfigWritter
+from cerbero.utils import messages as m
 
 class Recipe(recipe.Recipe):
     name = 'gnustl'
@@ -24,6 +25,10 @@ class Recipe(recipe.Recipe):
     def prepare(self):
         if self.config.target_platform != Platform.ANDROID:
             raise InvalidRecipeError(self, "Invalid platform")
+        else:
+            m.message(_("Building the following recipes: *********************"))
+            m.message(_("Building the following recipes: %s") % self.config.toolchain_prefix)
+            m.message(_("Building the following recipes: %s") % self.config.toolchain_version)
 
     def install(self):
         stl_prefix = os.path.join(self.config.toolchain_prefix, 'sources',
@@ -38,6 +43,8 @@ class Recipe(recipe.Recipe):
             stl_libdir = os.path.join(stl_prefix, 'libs', 'arm64-v8a')
         elif self.config.target_arch == Architecture.ARM:
             stl_libdir = os.path.join(stl_prefix, 'libs', 'armeabi')
+        elif self.config.target_arch == Architecture.MIPS:
+            stl_libdir = os.path.join(stl_prefix, 'libs', 'mips')
         else:
             raise FatalError("Unsupported Android architecture %s" % self.config.target_arch)
         libdir = os.path.join(self.config.prefix, 'lib')
diff --git a/recipes/gnustl.recipe~ b/recipes/gnustl.recipe~
new file mode 100644
index 0000000..98b4f6b
--- /dev/null
+++ b/recipes/gnustl.recipe~
@@ -0,0 +1,78 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+import shutil
+
+from cerbero.tools.libtool import LibtoolLibrary
+from cerbero.tools.pkgconfig import PkgConfigWritter
+from cerbero.utils import messages as m
+
+class Recipe(recipe.Recipe):
+    name = 'gnustl'
+    version = '0.1'
+    licenses = [License.LGPLv2_1]
+    stype = SourceType.CUSTOM
+    btype = BuildType.CUSTOM
+    runtime_dep = True
+
+    files_stl = [
+            'lib/libgnustl.so']
+    files_devel= [
+            'lib/pkgconfig/gnustl.pc',
+            'lib/libgnustl.la',
+            'lib/libgnustl.a',
+            'lib/libsupc++.a',
+            ]
+
+    def prepare(self):
+        if self.config.target_platform != Platform.ANDROID:
+            raise InvalidRecipeError(self, "Invalid platform")
+        else
+            m.message(_("Building the following recipes: *********************"))
+            m.message(_("Building the following recipes: %s") % self.config.toolchain_prefix)
+            m.message(_("Building the following recipes: %s") % self.config.toolchain_version)
+
+    def install(self):
+        stl_prefix = os.path.join(self.config.toolchain_prefix, 'sources',
+                  'cxx-stl', 'gnu-libstdc++', self.config.toolchain_version)
+        if self.config.target_arch == Architecture.X86:
+            stl_libdir = os.path.join(stl_prefix, 'libs', 'x86')
+        elif self.config.target_arch == Architecture.X86_64:
+            stl_libdir = os.path.join(stl_prefix, 'libs', 'x86_64')
+        elif self.config.target_arch == Architecture.ARMv7:
+            stl_libdir = os.path.join(stl_prefix, 'libs', 'armeabi-v7a')
+        elif self.config.target_arch == Architecture.ARM64:
+            stl_libdir = os.path.join(stl_prefix, 'libs', 'arm64-v8a')
+        elif self.config.target_arch == Architecture.ARM:
+            stl_libdir = os.path.join(stl_prefix, 'libs', 'armeabi')
+        elif self.config.target_arch == Architecture.MIPS:
+            stl_libdir = os.path.join(stl_prefix, 'libs', 'mips')
+        else:
+            raise FatalError("Unsupported Android architecture %s" % self.config.target_arch)
+        libdir = os.path.join(self.config.prefix, 'lib')
+        if not os.path.exists(libdir):
+            os.makedirs(libdir)
+
+        # Copies libraries to the prefix
+        shutil.copy(os.path.join(stl_libdir, 'libgnustl_shared.so'),
+                    os.path.join(libdir, 'libgnustl.so'))
+        shutil.copy(os.path.join(stl_libdir, 'libgnustl_static.a'),
+                    os.path.join(libdir, 'libgnustl.a'))
+        shutil.copy(os.path.join(stl_libdir, 'libsupc++.a'),
+                    os.path.join(libdir, 'libsupc++.a'))
+
+
+        # Create a libtool library for gnustl (libgnustl.la)
+        lib = LibtoolLibrary('gnustl', None, None, None, libdir,
+                self.config.target_platform)
+        lib.change_value('dependency_libs', ' -lstdc++')
+        lib.save()
+
+        # Create pkg-config file (gnustl.pc)
+        pkgdir = os.path.join(self.config.prefix, 'lib', 'pkgconfig')
+        if not os.path.exists(pkgdir):
+            os.makedirs(pkgdir)
+        stl_pc = PkgConfigWritter('gnustl', 'gnustl', '1.0',
+                '', '-L${libdir} -lgnustl -lsupc++ -lstdc++ ',
+                '-I%s/include -I%s/libs/armeabi/include' % (stl_prefix, stl_prefix), self.config.prefix)
+        stl_pc.libs_priv = '${libdir}/libgnustl.a ${libdir}/libsupc++.a'
+        stl_pc.rel_incldir = 'include'
+        stl_pc.save('gnustl', pkgdir)
diff --git a/recipes/libmad.recipe b/recipes/libmad.recipe
index 7d326c0..e7dd618 100644
--- a/recipes/libmad.recipe
+++ b/recipes/libmad.recipe
@@ -26,7 +26,8 @@ class Recipe(recipe.Recipe):
             self.patches += ['libmad/0004-Remove-clang-unsupported-compiler-flags.patch']
         elif self.config.target_platform == Platform.ANDROID:
             if Architecture.is_arm(self.config.target_arch):
-                # Disable thumb mode to get the optimizations compiled properly
+               # Disable thumb mode to get the optimizations compiled properly
                 self.new_env['CFLAGS'] = os.environ['CFLAGS'].replace('-mthumb', '')
             if self.config.target_arch == Architecture.X86:
                 self.new_env['CFLAGS'] = os.environ['CFLAGS'] + ' -fno-stack-protector'
+
diff --git a/recipes/libmad.recipe~ b/recipes/libmad.recipe~
new file mode 100644
index 0000000..5a6fd5d
--- /dev/null
+++ b/recipes/libmad.recipe~
@@ -0,0 +1,34 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+class Recipe(recipe.Recipe):
+    name = 'libmad'
+    version = '0.15.1b'
+    licenses = [License.GPLv2]
+    stype = SourceType.TARBALL
+    url = 'http://downloads.sourceforge.net/project/mad/libmad/0.15.1b/libmad-0.15.1b.tar.gz'
+    patches = ['libmad/0001-Delete-invalid-compile-option.patch',
+               'libmad/0002-fix-autoreconf.patch',
+               'libmad/0003-ARM-Fix-build-without-the-Thumb-mode.patch',
+              ]
+    autoreconf = True
+
+    files_libs = ['libmad']
+    files_devel = ['include/mad.h']
+
+    def prepare(self):
+        if self.config.target_platform == Platform.IOS:
+            self.configure_options += ' --enable-fpm=default '
+            if 'GAS' in os.environ:
+                self.new_env = {'CCAS': os.environ['GAS']}
+                self.new_env['CCAS'] += ' -no-integrated-as '
+            self.patches += ['libmad/0004-Remove-clang-unsupported-compiler-flags.patch']
+        elif self.config.target_platform == Platform.DARWIN:
+            self.patches += ['libmad/0004-Remove-clang-unsupported-compiler-flags.patch']
+        elif self.config.target_platform == Platform.ANDROID:
+            #if Architecture.is_arm(self.config.target_arch):
+             if self.config.target_arch == Architecture.ARM or self.config.target_arch == Architecture.ARMv7 or self.config.target_arch == Architecture.MIPS:
+               # Disable thumb mode to get the optimizations compiled properly
+                self.new_env['CFLAGS'] = os.environ['CFLAGS'].replace('-mthumb', '')
+            if self.config.target_arch == Architecture.X86:
+                self.new_env['CFLAGS'] = os.environ['CFLAGS'] + ' -fno-stack-protector'
+
diff --git a/recipes/libmad/0005-imp_constraint.patch b/recipes/libmad/0005-imp_constraint.patch
new file mode 100644
index 0000000..903ae03
--- /dev/null
+++ b/recipes/libmad/0005-imp_constraint.patch
@@ -0,0 +1,34 @@
+diff -u -r a/apps/codecs/libmad/fixed.h b/apps/codecs/libmad/fixed.h
+--- a/fixed.h
++++ b/fixed.h
+@@ -292,6 +292,21 @@
+ 
+ # elif defined(FPM_MIPS)
+ 
++#if defined (__GNUC__) && defined (__GNUC_MINOR__) 
++#define __GNUC_PREREQ(maj, min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) 
++#else 
++#define __GNUC_PREREQ(maj, min)  0 
++#endif 
++
++#if __GNUC_PREREQ(4,4) 
++typedef unsigned int u64_di_t __attribute__ ((mode (DI))); 
++# define MAD_F_MLX(hi, lo, x, y) \
++do { \
++   u64_di_t __ll = (u64_di_t) (x) * (y); \
++   hi = __ll >> 32; \
++   lo = __ll; \
++}while(0)
++#else
+ /*
+  * This MIPS version is fast and accurate; the disposition of the least
+  * significant bit depends on OPT_ACCURACY via mad_f_scale64().
+@@ -321,6 +336,8 @@
+          : "%r" ((x) >> 12), "r" ((y) >> 16))
+ #  define MAD_F_MLZ(hi, lo)  ((mad_fixed_t) (lo))
+ # endif
++
++#endif /* __GNU_PREREQ(4,4) */ 
+ 
+ # if defined(OPT_SPEED)
+ #  define mad_f_scale64(hi, lo)  \
diff --git a/recipes/libvpx.recipe b/recipes/libvpx.recipe
index 966822a..0a2182b 100644
--- a/recipes/libvpx.recipe
+++ b/recipes/libvpx.recipe
@@ -15,7 +15,8 @@ class Recipe(recipe.Recipe):
                     "--libdir=%(libdir)s %(options)s"
     configure_options = "--enable-pic --as=yasm --disable-unit-tests --size-limit=16384x16384 "\
                         "--enable-postproc --enable-multi-res-encoding --enable-temporal-denoising "\
-                        "--enable-vp9-temporal-denoising --enable-vp9-postproc "
+                        "--enable-vp9-temporal-denoising --enable-vp9-postproc "\
+                        "--disable-examples --disable-docs"
     add_host_build_target = False
     supports_cache_variables = False
     can_use_configure_cache = False
@@ -27,6 +28,8 @@ class Recipe(recipe.Recipe):
                'libvpx/0005-build-Remove-broken-custom-android-toolchain-usage.patch',
                'libvpx/0006-configure-Add-Android-ARM64-support.patch',
                'libvpx/0006-Don-t-embed-bitcode-on-iOS-until-we-support-that-pro.patch',
+               'libvpx/0009-configure-mips.patch',
+               'libvpx/0010-androidmk-mips.patch',
                ]
 
     files_libs = ['libvpx']
@@ -50,6 +53,8 @@ class Recipe(recipe.Recipe):
             arch = 'armv7s'
         elif self.config.target_arch == Architecture.ARM64:
             arch = 'arm64'
+        elif self.config.target_arch == Architecture.MIPS:
+            arch = 'mips'
 
         self.new_env['LD'] = os.environ.get('CC', 'gcc')
         if self.config.target_platform == Platform.DARWIN:
@@ -88,6 +93,8 @@ class Recipe(recipe.Recipe):
                 self.new_env['CFLAGS'] = os.environ['CFLAGS'].replace('-mthumb', '')
             elif self.config.target_arch in [Architecture.ARMv7, Architecture.X86, Architecture.ARM64, Architecture.X86_64]:
                 pass
+            elif self.config.target_arch == Architecture.MIPS:
+                arch = 'mips32'
             else:
                 raise FatalError("Unsupported Android architecture %s" % self.config.target_arch)
             self.config_sh = 'LD=$CC ./configure'
diff --git a/recipes/libvpx.recipe~ b/recipes/libvpx.recipe~
new file mode 100644
index 0000000..1d118a3
--- /dev/null
+++ b/recipes/libvpx.recipe~
@@ -0,0 +1,129 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+from cerbero.errors import FatalError
+from cerbero.utils import shell
+from cerbero.utils import messages as m
+import shutil
+
+class Recipe(recipe.Recipe):
+    name = 'libvpx'
+    version = 'v1.5.0'
+    licenses = [License.BSD]
+    btype = BuildType.MAKEFILE
+    remotes = {'origin': 'https://github.com/webmproject/libvpx.git'}
+    commit = 'v1.5.0'
+    configure_tpl = "./configure --prefix=%(prefix)s "\
+                    "--libdir=%(libdir)s %(options)s"
+    configure_options = "--enable-pic --as=yasm --disable-unit-tests --size-limit=16384x16384 "\
+                        "--enable-postproc --enable-multi-res-encoding --enable-temporal-denoising "\
+                        "--enable-vp9-temporal-denoising --enable-vp9-postproc "\
+                        "--disable-examples --disable-docs"
+    add_host_build_target = False
+    supports_cache_variables = False
+    can_use_configure_cache = False
+    make = 'make HAVE_GNU_STRIP=no'
+
+    patches = ['libvpx/0001-build-Fix-the-min-version-flag-for-iOS-simulator-bui.patch',
+               'libvpx/0002-Include-Android-cpu-features.c-instead-of-.h.patch',
+               'libvpx/0003-configure-Add-back-the-armv5te-android-gcc-target.patch',
+               'libvpx/0005-build-Remove-broken-custom-android-toolchain-usage.patch',
+               'libvpx/0006-configure-Add-Android-ARM64-support.patch',
+               'libvpx/0006-Don-t-embed-bitcode-on-iOS-until-we-support-that-pro.patch',
+               'libvpx/0009-configure-mips.patch',
+               'libvpx/0010-androidmk-mips.patch',
+               ]
+
+    files_libs = ['libvpx']
+    files_bins = ['vpxenc', 'vpxdec']
+    files_devel = ['include/vpx', 'lib/pkgconfig/vpx.pc']
+
+    # libvpx does not have check target
+    make_check = None
+
+
+    def prepare (self):
+        if self.config.target_arch == Architecture.X86_64:
+            arch = 'x86_64'
+        elif self.config.target_arch == Architecture.X86:
+            arch = 'x86'
+        elif self.config.target_arch == Architecture.ARM:
+            arch = 'arm'
+        elif self.config.target_arch == Architecture.ARMv7:
+            arch = 'armv7'
+        elif self.config.target_arch == Architecture.ARMv7S:
+            arch = 'armv7s'
+        elif self.config.target_arch == Architecture.ARM64:
+            arch = 'arm64'
+        elif self.config.target_arch == Architecture.MIPS:
+            arch = 'mips'
+
+        self.new_env['LD'] = os.environ.get('CC', 'gcc')
+        if self.config.target_platform == Platform.DARWIN:
+            platform = 'darwin12'
+        elif self.config.target_platform == Platform.IOS:
+            if self.config.target_arch == Architecture.X86 or self.config.target_arch == Architecture.X86_64:
+                platform = 'iphonesimulator'
+            else:
+                platform = 'darwin'
+            if self.config.target_arch == Architecture.ARM:
+                arch = 'armv6'
+        elif self.config.target_platform == Platform.WINDOWS:
+            if self.config.target_arch == Architecture.X86_64:
+                platform = 'win64'
+            else:
+                platform = 'win32'
+        # FIXME:
+        elif self.config.target_platform == Platform.ANDROID:
+            platform = 'android'
+            self.append_env['CFLAGS'] = " -Dandroid_getCpuFamily=vpx_android_getCpuFamily "\
+                "-Dandroid_getCpuFeatures=vpx_android_getCpuFeatures "\
+                "-Dandroid_getCpuCount=vpx_android_getCpuCount " \
+                "-Dandroid_cpuInit=vpx_android_cpuInit " \
+                "-Dandroid_cpuInitDummy=vpx_android_cpuInitDummy " \
+                "-Dandroid_getCpuIdArm=vpx_android_getCpuIdArm " \
+                "-Dandroid_setCpu=vpx_android_setCpu " \
+                "-Dandroid_setCpuArm=vpx_android_setCpuArm "
+
+            if self.config.target_arch == Architecture.X86:
+                self.append_env['ASFLAGS'] = " -D__ANDROID__ "
+                self.append_env['CFLAGS'] += " -D__ANDROID__ "
+
+            if self.config.target_arch == Architecture.ARM:
+                arch = 'armv5te'
+                # Fix compiler error with -mthumb
+                self.new_env['CFLAGS'] = os.environ['CFLAGS'].replace('-mthumb', '')
+            elif self.config.target_arch in [Architecture.ARMv7, Architecture.X86, Architecture.ARM64, Architecture.X86_64]:
+                pass
+            else:
+                raise FatalError("Unsupported Android architecture %s" % self.config.target_arch)
+            self.config_sh = 'LD=$CC ./configure'
+            self.configure_options.replace('--as=yasm', '')
+            self.configure_options += ' --sdk-path=%s ' % self.config.toolchain_prefix
+        else:
+            self.configure_options += '--enable-shared '
+            platform = 'linux'
+
+        self.configure_options += ' --disable-examples '
+
+        self.configure_options += '--target=%s-%s-gcc ' % (arch, platform)
+
+    def configure(self):
+        if self.config.target_platform == Platform.ANDROID:
+            cpufeatures_path = os.path.join(self.config.toolchain_prefix, 'sources', 'android', 'cpufeatures')
+            o = os.path.join(cpufeatures_path, 'cpu-features.h')
+            f = os.path.join(self.make_dir, 'vpx_ports')
+            m.action("copying %s to %s" % (o, f))
+            shutil.copy(o, f)
+            f = self.make_dir
+            m.action("copying %s to %s" % (o, f))
+            shutil.copy(o, f)
+            o = os.path.join(cpufeatures_path, 'cpu-features.c')
+            f = os.path.join(self.make_dir, 'vpx_ports')
+            m.action("copying %s to %s" % (o, f))
+            shutil.copy(o, f)
+        super(recipe.Recipe, self).configure()
+
+    def install(self):
+        if self.config.target_platform in [Platform.DARWIN, Platform.IOS]:
+            for f in ['vpxenc', 'vpxdec', 'libvpx.a']:
+                shell.touch(os.path.join(self.build_dir, f))
+        super(Recipe, self).install()
diff --git a/recipes/libvpx/0009-configure-mips.patch b/recipes/libvpx/0009-configure-mips.patch
new file mode 100644
index 0000000..fa33b61
--- /dev/null
+++ b/recipes/libvpx/0009-configure-mips.patch
@@ -0,0 +1,11 @@
+--- a/configure
++++ b/configure
+@@ -102,6 +102,7 @@ all_platforms="${all_platforms} mips32-android-gcc"
+ all_platforms="${all_platforms} armv7-win32-vs11"
+ all_platforms="${all_platforms} armv7-win32-vs12"
+ all_platforms="${all_platforms} mips32-linux-gcc"
++all_platforms="${all_platforms} mips32-android-gcc"
+ all_platforms="${all_platforms} ppc32-darwin8-gcc"
+ all_platforms="${all_platforms} ppc32-darwin9-gcc"
+ all_platforms="${all_platforms} ppc32-linux-gcc"-- 
+
diff --git a/recipes/libvpx/0010-androidmk-mips.patch b/recipes/libvpx/0010-androidmk-mips.patch
new file mode 100644
index 0000000..5e9eb02
--- /dev/null
+++ b/recipes/libvpx/0010-androidmk-mips.patch
@@ -0,0 +1,106 @@
+diff --git a/build/make/Android.mk b/build/make/Android.mk
+index 48a0dd7..369c2a5 100644
+--- a/build/make/Android.mk
++++ b/build/make/Android.mk
+@@ -53,12 +53,20 @@
+ ASM_CNV_PATH_LOCAL := $(TARGET_ARCH_ABI)/ads2gas
+ ASM_CNV_PATH := $(LOCAL_PATH)/$(ASM_CNV_PATH_LOCAL)
+ 
+-# Makefiles created by the libvpx configure process
+-# This will need to be fixed to handle x86.
++# Use the makefiles generated by upstream configure to determine which files to
++# build. Also set any architecture-specific flags.
+ ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
+   include $(CONFIG_DIR)libs-armv7-android-gcc.mk
+-else
++  LOCAL_ARM_MODE := arm
++else ifeq  ($(TARGET_ARCH_ABI),armeabi)
+   include $(CONFIG_DIR)libs-armv5te-android-gcc.mk
++  LOCAL_ARM_MODE := arm
++else ifeq ($(TARGET_ARCH_ABI),x86)
++  include $(CONFIG_DIR)libs-x86-android-gcc.mk
++else ifeq ($(TARGET_ARCH_ABI),mips)
++  include $(CONFIG_DIR)libs-mips-android-gcc.mk
++else
++  $(error Not a supported TARGET_ARCH_ABI: $(TARGET_ARCH_ABI))
+ endif
+ 
+ # Rule that is normally in Makefile created by libvpx
+@@ -72,9 +80,12 @@
+ # Include the list of files to be built
+ include $(LIBVPX_PATH)/libs.mk
+ 
+-# Want arm, not thumb, optimized
+-LOCAL_ARM_MODE := arm
++# Optimise the code. May want to revisit this setting in the future.
+ LOCAL_CFLAGS := -O3
++
++# For x86, include the source code in the search path so it will find files
++# like x86inc.asm and x86_abi_support.asm
++LOCAL_ASMFLAGS := -I$(LIBVPX_PATH)
+ 
+ # -----------------------------------------------------------------------------
+ # Template  : asm_offsets_template
+@@ -109,7 +120,7 @@
+ 	@grep $(OFFSET_PATTERN) $$< | tr -d '\#' | $(CONFIG_DIR)$(ASM_CONVERSION) > $$@
+ endef
+ 
+-# Use ads2gas script to convert from RVCT format to GAS format.  This passes
++# Use ads2gas script to convert from RVCT format to GAS format.  This
+ #  puts the processed file under $(ASM_CNV_PATH).  Local clean rule
+ #  to handle removing these
+ ifeq ($(CONFIG_VP8_ENCODER), yes)
+@@ -146,18 +157,26 @@
+ 
+ # Pull out assembly files, splitting NEON from the rest.  This is
+ # done to specify that the NEON assembly files use NEON assembler flags.
+-CODEC_SRCS_ASM_ALL = $(filter %.asm.s, $(CODEC_SRCS_UNIQUE))
+-CODEC_SRCS_ASM = $(foreach v, \
+-                 $(CODEC_SRCS_ASM_ALL), \
+-                 $(if $(findstring neon,$(v)),,$(v)))
++# x86 assembly matches %.asm, arm matches %.asm.s
++
++# x86:
++
++CODEC_SRCS_ASM_X86 = $(filter %.asm, $(CODEC_SRCS_UNIQUE))
++LOCAL_SRC_FILES += $(foreach file, $(CODEC_SRCS_ASM_X86), libvpx/$(file))
++
++# arm:
++CODEC_SRCS_ASM_ARM_ALL = $(filter %.asm.s, $(CODEC_SRCS_UNIQUE))
++CODEC_SRCS_ASM_ARM = $(foreach v, \
++                     $(CODEC_SRCS_ASM_ARM_ALL), \
++                     $(if $(findstring neon,$(v)),,$(v)))
+ CODEC_SRCS_ASM_ADS2GAS = $(patsubst %.s, \
+                          $(ASM_CNV_PATH_LOCAL)/libvpx/%.s, \
+-                         $(CODEC_SRCS_ASM))
++                         $(CODEC_SRCS_ASM_ARM))
+ LOCAL_SRC_FILES += $(CODEC_SRCS_ASM_ADS2GAS)
+ 
+ ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
+   CODEC_SRCS_ASM_NEON = $(foreach v, \
+-                        $(CODEC_SRCS_ASM_ALL),\
++                        $(CODEC_SRCS_ASM_ARM_ALL),\
+                         $(if $(findstring neon,$(v)),$(v),))
+   CODEC_SRCS_ASM_NEON_ADS2GAS = $(patsubst %.s, \
+                                 $(ASM_CNV_PATH_LOCAL)/libvpx/%.s, \
+@@ -189,6 +208,10 @@
+ endif
+ $(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vpx_scale_rtcd.h
+ 
++ifeq ($(TARGET_ARCH_ABI),x86)
++$(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vpx_config.asm
++endif
++
+ .PHONY: clean
+ clean:
+ 	@echo "Clean: ads2gas files [$(TARGET_ARCH_ABI)]"
+diff --git a/test/android/README b/test/android/README
+index 6840d91..4a1adcf 100644
+--- a/test/android/README
++++ b/test/android/README
+@@ -3,7 +3,7 @@
+ ./libvpx/configure --target=armv7-android-gcc --enable-external-build \
+   --enable-postproc --disable-install-srcs --enable-multi-res-encoding \
+   --enable-temporal-denoising --disable-unit-tests --disable-install-docs \
+-  --disable-examples --disable-runtime-cpu-detect --sdk=$NDK
++  --disable-examples --disable-runtime-cpu-detect --sdk-path=$NDK
